@@ -183,6 +183,10 @@ def setUpTestData(cls):
183183 email = 'new-user@example.com' ,
184184 password = 'password' )
185185
186+ def setUp (self ):
187+ self .new_user .is_active = False
188+ self .new_user .save ()
189+
186190 def test_fail_if_activation_key_not_exist (self ):
187191 confirm_url = reverse ('tcms-confirm' ,
188192 args = ['nonexisting-activation-key' ])
@@ -197,6 +201,33 @@ def test_fail_if_activation_key_not_exist(self):
197201 '<a href="{}">Continue</a>' .format (reverse ('core-views-index' )),
198202 html = True )
199203
204+ # user account not activated
205+ user = User .objects .get (username = self .new_user .username )
206+ self .assertFalse (user .is_active )
207+
208+ def test_fail_if_activation_key_expired (self ):
209+ fake_activation_key = 'secret-activation-key'
210+
211+ with patch ('tcms.core.contrib.auth.models.sha1' ) as sha1 :
212+ sha1 .return_value .hexdigest .return_value = fake_activation_key
213+ key = UserActivateKey .set_random_key_for_user (self .new_user )
214+ key .key_expires = datetime .datetime .now () - datetime .timedelta (days = 10 )
215+ key .save ()
216+
217+ confirm_url = reverse ('tcms-confirm' , args = [fake_activation_key ])
218+ response = self .client .get (confirm_url )
219+
220+ self .assertContains (response , 'This key has expired' )
221+
222+ self .assertContains (
223+ response ,
224+ '<a href="{}">Continue</a>' .format (reverse ('core-views-index' )),
225+ html = True )
226+
227+ # user account not activated
228+ user = User .objects .get (username = self .new_user .username )
229+ self .assertFalse (user .is_active )
230+
200231 def test_confirm (self ):
201232 fake_activate_key = 'secret-activate-key'
202233
@@ -218,6 +249,7 @@ def test_confirm(self):
218249 reverse ('tcms-redirect_to_profile' )),
219250 html = True )
220251
252+ # user account activated
221253 user = User .objects .get (username = self .new_user .username )
222254 self .assertTrue (user .is_active )
223255 activate_key_deleted = not UserActivateKey .objects .filter (user = user ).exists ()
0 commit comments