def test_is_valid(self, mock_now):
        now = tz_now()
        mock_now.return_value = now
        token = RequestToken()
        admin = RequestTokenAdmin(RequestToken, None)

        token.not_before_time = now + datetime.timedelta(minutes=1)
        self.assertTrue(token.not_before_time > now)
        self.assertFalse(admin.is_valid(token))

        token.not_before_time = None
        token.expiration_time = now - datetime.timedelta(minutes=1)
        self.assertTrue(token.expiration_time < now)
        self.assertFalse(admin.is_valid(token))

        token.expiration_time = None
        token.max_uses = 1
        token.used_to_date = 1
        self.assertFalse(admin.is_valid(token))

        # finally make it valid
        token.max_uses = 10
        self.assertTrue(admin.is_valid(token))
Exemple #2
0
    def test_clean(self):
        token = RequestToken(login_mode=RequestToken.LOGIN_MODE_NONE,
                             # user=self.user
                             )
        token.clean()
        # set a user, should now fail validation
        token.user = self.user
        self.assertRaises(ValidationError, token.clean)

        # request mode
        token.login_mode = RequestToken.LOGIN_MODE_REQUEST
        token.clean()
        token.user = None
        self.assertRaises(ValidationError, token.clean)

        def reset_session():
            """Reset properties so that token passes validation."""
            token.login_mode = RequestToken.LOGIN_MODE_SESSION
            token.user = self.user
            token.issued_at = tz_now()
            token.expiration_time = token.issued_at + datetime.timedelta(
                minutes=1)
            token.max_uses = 1

        def assertValidationFails(field_name):
            with self.assertRaises(ValidationError) as ctx:
                token.clean()
            self.assertTrue(field_name in dict(ctx.exception))

        # check the rest_session works!
        reset_session()
        token.clean()
        token.max_uses = 10
        assertValidationFails('max_uses')

        reset_session()
        token.user = None
        assertValidationFails('user')

        reset_session()
        token.expiration_time = None
        assertValidationFails('expiration_time')