def test_load_token(self):
        """Test token loading."""
        t = SecretLinkFactory.create_token(1, self.extra_data)
        self.assertIsNotNone(SecretLinkFactory.load_token(t))

        t = SecretLinkFactory.create_token(
            1, self.extra_data, expires_at=datetime.now()-timedelta(days=1))
        self.assertRaises(SignatureExpired, SecretLinkFactory.load_token, t)
        self.assertIsNotNone(SecretLinkFactory.load_token(t, force=True))
    def test_validation(self):
        """Test token validation."""
        t = SecretLinkFactory.create_token(1, self.extra_data)
        self.assertIsNotNone(SecretLinkFactory.validate_token(
            t, expected_data=self.extra_data))

        t = SecretLinkFactory.create_token(
            1, self.extra_data, expires_at=datetime.now()+timedelta(days=1)
        )
        self.assertIsNotNone(SecretLinkFactory.validate_token(
            t, expected_data=self.extra_data))
        self.assertIsNone(SecretLinkFactory.validate_token(
            t, expected_data=dict(recid=2)))
def test_secretlink_factory_validation(app, db):
    """Test token validation."""
    extra_data = dict(recid='1')
    with app.app_context():
        t = SecretLinkFactory.create_token(1, extra_data)
        assert SecretLinkFactory.validate_token(
            t, expected_data=extra_data) is not None

        t = SecretLinkFactory.create_token(
            1, extra_data, expires_at=datetime.utcnow()+timedelta(days=1)
        )
        assert SecretLinkFactory.validate_token(
            t, expected_data=extra_data) is not None
        assert SecretLinkFactory.validate_token(
            t, expected_data=dict(recid=2)) is None
    def test_creation(self):
        """Test token creation."""
        d = datetime.now()+timedelta(days=1)

        t = SecretLinkFactory.create_token(1, self.extra_data)

        self.assertIsNotNone(SecretLinkSerializer().validate_token(
            t, expected_data=self.extra_data))
        self.assertIsNone(TimedSecretLinkSerializer().validate_token(
            t, expected_data=self.extra_data))

        t1 = SecretLinkFactory.create_token(
            1, self.extra_data, expires_at=d
        )
        t2 = SecretLinkFactory.create_token(1, self.extra_data)

        self.assertIsNone(SecretLinkSerializer().validate_token(
            t1, expected_data=self.extra_data))
        self.assertIsNotNone(TimedSecretLinkSerializer().validate_token(
            t1, expected_data=self.extra_data))
        self.assertNotEqual(t1, t2)
def test_secretlink_factory_creation(app, db):
    """Test token creation."""
    extra_data = dict(recid='1')
    with app.app_context():
        d = datetime.utcnow()+timedelta(days=1)

        t = SecretLinkFactory.create_token(1, extra_data)

        assert SecretLinkSerializer().validate_token(
            t, expected_data=extra_data) is not None
        assert TimedSecretLinkSerializer().validate_token(
            t, expected_data=extra_data) is None

        t1 = SecretLinkFactory.create_token(
            1, extra_data, expires_at=d
        )
        t2 = SecretLinkFactory.create_token(1, extra_data)

        assert SecretLinkSerializer().validate_token(
            t1, expected_data=extra_data) is None
        assert TimedSecretLinkSerializer().validate_token(
            t1, expected_data=extra_data) is not None
        assert t1 != t2
def test_secretlink_factory_load_token(app, db):
    """Test token loading."""
    extra_data = dict(recid='1')
    with app.app_context():
        t = SecretLinkFactory.create_token(1, extra_data)
        assert SecretLinkFactory.load_token(t) is not None

        t = SecretLinkFactory.create_token(
            1, extra_data, expires_at=datetime.utcnow()-timedelta(days=1))
        with pytest.raises(SignatureExpired):
            SecretLinkFactory.load_token(t)
        assert SecretLinkFactory.load_token(t, force=True) is not None