11from datetime import datetime
2+ from django .core .exceptions import ValidationError
23from recurrence import Recurrence , Rule
34from tests .models import EventWithNoNulls
45import pytest
@@ -59,16 +60,27 @@ def test_recurrence_object_is_saved():
5960 ) == instances
6061
6162
63+ @pytest .mark .django_db
64+ @pytest .mark .parametrize ('value' , [
65+ ' ' , 'invalid' , 'RRULE:' , 'RRULE:FREQ=' , 'RRULE:FREQ=invalid'
66+ ])
67+ def test_recurrence_text_pattern_invalid (value ):
68+ with pytest .raises (ValidationError ):
69+ EventWithNoNulls .objects .create (
70+ recurs = value
71+ )
72+
73+
6274@pytest .mark .django_db
6375def test_invalid_frequency_recurrence_object_raises ():
64- with pytest .raises (recurrence . SerializationError ):
76+ with pytest .raises (ValidationError ):
6577 EventWithNoNulls .objects .create (
6678 recurs = Recurrence (
6779 rrules = [Rule ('fish' )]
6880 )
6981 )
7082
71- with pytest .raises (recurrence . SerializationError ):
83+ with pytest .raises (ValidationError ):
7284 EventWithNoNulls .objects .create (
7385 recurs = Recurrence (
7486 rrules = [Rule (42 )]
@@ -78,14 +90,14 @@ def test_invalid_frequency_recurrence_object_raises():
7890
7991@pytest .mark .django_db
8092def test_invalid_interval_recurrence_object_raises ():
81- with pytest .raises (recurrence . SerializationError ):
93+ with pytest .raises (ValidationError ):
8294 EventWithNoNulls .objects .create (
8395 recurs = Recurrence (
8496 rrules = [Rule (recurrence .DAILY , interval = 0 )]
8597 )
8698 )
8799
88- with pytest .raises (recurrence . SerializationError ):
100+ with pytest .raises (ValidationError ):
89101 EventWithNoNulls .objects .create (
90102 recurs = Recurrence (
91103 rrules = [Rule (recurrence .DAILY , interval = 'cat' )]
@@ -95,7 +107,7 @@ def test_invalid_interval_recurrence_object_raises():
95107
96108@pytest .mark .django_db
97109def test_invalid_wkst_recurrence_object_raises ():
98- with pytest .raises (recurrence . SerializationError ):
110+ with pytest .raises (ValidationError ):
99111 EventWithNoNulls .objects .create (
100112 recurs = Recurrence (
101113 rrules = [Rule (recurrence .DAILY , wkst = 17 )]
@@ -105,7 +117,7 @@ def test_invalid_wkst_recurrence_object_raises():
105117
106118@pytest .mark .django_db
107119def test_invalid_until_recurrence_object_raises ():
108- with pytest .raises (recurrence . SerializationError ):
120+ with pytest .raises (ValidationError ):
109121 EventWithNoNulls .objects .create (
110122 recurs = Recurrence (
111123 rrules = [Rule (recurrence .DAILY , until = 17 )]
@@ -115,7 +127,7 @@ def test_invalid_until_recurrence_object_raises():
115127
116128@pytest .mark .django_db
117129def test_invalid_count_recurrence_object_raises ():
118- with pytest .raises (recurrence . SerializationError ):
130+ with pytest .raises (ValidationError ):
119131 EventWithNoNulls .objects .create (
120132 recurs = Recurrence (
121133 rrules = [Rule (recurrence .DAILY , count = 'fish' )]
@@ -125,7 +137,7 @@ def test_invalid_count_recurrence_object_raises():
125137
126138@pytest .mark .django_db
127139def test_invalid_byday_recurrence_object_raises ():
128- with pytest .raises (recurrence . SerializationError ):
140+ with pytest .raises (ValidationError ):
129141 EventWithNoNulls .objects .create (
130142 recurs = Recurrence (
131143 rrules = [Rule (recurrence .DAILY , byday = 'house' )]
@@ -135,7 +147,7 @@ def test_invalid_byday_recurrence_object_raises():
135147
136148@pytest .mark .django_db
137149def test_invalid_bymonth_too_high_recurrence_object_raises ():
138- with pytest .raises (recurrence . SerializationError ):
150+ with pytest .raises (ValidationError ):
139151 EventWithNoNulls .objects .create (
140152 recurs = Recurrence (
141153 rrules = [Rule (recurrence .DAILY , bymonth = [1 , 32 ])]
@@ -145,7 +157,7 @@ def test_invalid_bymonth_too_high_recurrence_object_raises():
145157
146158@pytest .mark .django_db
147159def test_invalid_bymonth_toolow_recurrence_object_raises ():
148- with pytest .raises (recurrence . SerializationError ):
160+ with pytest .raises (ValidationError ):
149161 EventWithNoNulls .objects .create (
150162 recurs = Recurrence (
151163 rrules = [Rule (recurrence .DAILY , bymonth = [0 , ])]
@@ -155,7 +167,7 @@ def test_invalid_bymonth_toolow_recurrence_object_raises():
155167
156168@pytest .mark .django_db
157169def test_invalid_exclusion_interval_recurrence_object_raises ():
158- with pytest .raises (recurrence . SerializationError ):
170+ with pytest .raises (ValidationError ):
159171 EventWithNoNulls .objects .create (
160172 recurs = Recurrence (
161173 exrules = [Rule (recurrence .DAILY , interval = 0 )]
@@ -165,7 +177,7 @@ def test_invalid_exclusion_interval_recurrence_object_raises():
165177
166178@pytest .mark .django_db
167179def test_invalid_date_recurrence_object_raises ():
168- with pytest .raises (recurrence . SerializationError ):
180+ with pytest .raises (ValidationError ):
169181 EventWithNoNulls .objects .create (
170182 recurs = Recurrence (
171183 rdates = ["fish" ]
@@ -175,7 +187,7 @@ def test_invalid_date_recurrence_object_raises():
175187
176188@pytest .mark .django_db
177189def test_invalid_exclusion_date_recurrence_object_raises ():
178- with pytest .raises (recurrence . SerializationError ):
190+ with pytest .raises (ValidationError ):
179191 EventWithNoNulls .objects .create (
180192 recurs = Recurrence (
181193 exdates = ["fish" ]
0 commit comments