Example #1
0
class VerifiedEmailBackendTest(TestCase):

    def setUp(self):
        self.sites = SitesCollection()
        self.site = self.sites.create_item(TEST_SITE_URL)
        self.backend = VerifiedEmailBackend()

    def user_token(self):
        return generate_login_token(self.site, TEST_SITE_URL, TEST_USER_EMAIL)

    def test_token_valid(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        auth_user = self.backend.authenticate(
            self.site, TEST_SITE_URL, self.user_token())
        self.assertEqual(user, auth_user)

    def test_token_invalid(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        self.assertRaisesRegexp(AuthenticationError,
                                'Token invalid or expired',
                                self.backend.authenticate,
                                self.site,
                                TEST_SITE_URL,
                                self.user_token() + 'x')

    def test_token_for_different_site(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        token = generate_login_token(
            self.site, 'http://example.com', TEST_USER_EMAIL)
        self.assertRaisesRegexp(AuthenticationError,
                                'Token invalid or expired',
                                self.backend.authenticate,
                                self.site,
                                TEST_SITE_URL,
                                token)

    def test_no_such_user(self):
        auth_user = self.backend.authenticate(
            self.site, TEST_SITE_URL, self.user_token())
        self.assertIsNone(auth_user)

    def test_site_with_open_location_user_created(self):
        location = self.site.locations.create_item('/foo/')
        location.grant_open_access(require_login=True)
        auth_user = self.backend.authenticate(
            self.site, TEST_SITE_URL, self.user_token())
        self.assertIsNotNone(auth_user)
        self.assertEqual(TEST_USER_EMAIL, auth_user.email)


    def test_site_with_open_location_user_limit_exceeded(self):
        self.site.users_limit = 0
        location = self.site.locations.create_item('/foo/')
        location.grant_open_access(require_login=True)
        self.assertRaisesRegexp(AuthenticationError,
                                'Users limit exceeded',
                                self.backend.authenticate,
                                self.site,
                                TEST_SITE_URL,
                                self.user_token())
Example #2
0
class VerifiedEmailBackendTest(TestCase):
    def setUp(self):
        self.sites = SitesCollection()
        self.site = self.sites.create_item(TEST_SITE_URL)
        self.backend = VerifiedEmailBackend()

    def user_token(self):
        return generate_login_token(self.site, TEST_SITE_URL, TEST_USER_EMAIL)

    def test_token_valid(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        auth_user = self.backend.authenticate(self.site, TEST_SITE_URL, self.user_token())
        self.assertEqual(user, auth_user)

    def test_token_invalid(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        self.assertRaisesRegexp(
            AuthenticationError,
            "Token invalid or expired",
            self.backend.authenticate,
            self.site,
            TEST_SITE_URL,
            self.user_token() + "x",
        )

    def test_token_for_different_site(self):
        user = self.site.users.create_item(TEST_USER_EMAIL)
        token = generate_login_token(self.site, "http://example.com", TEST_USER_EMAIL)
        self.assertRaisesRegexp(
            AuthenticationError, "Token invalid or expired", self.backend.authenticate, self.site, TEST_SITE_URL, token
        )

    def test_no_such_user(self):
        auth_user = self.backend.authenticate(self.site, TEST_SITE_URL, self.user_token())
        self.assertIsNone(auth_user)

    def test_site_with_open_location_user_created(self):
        location = self.site.locations.create_item("/foo/")
        location.grant_open_access(require_login=True)
        auth_user = self.backend.authenticate(self.site, TEST_SITE_URL, self.user_token())
        self.assertIsNotNone(auth_user)
        self.assertEqual(TEST_USER_EMAIL, auth_user.email)

    def test_site_with_open_location_user_limit_exceeded(self):
        self.site.users_limit = 0
        location = self.site.locations.create_item("/foo/")
        location.grant_open_access(require_login=True)
        self.assertRaisesRegexp(
            AuthenticationError,
            "Users limit exceeded",
            self.backend.authenticate,
            self.site,
            TEST_SITE_URL,
            self.user_token(),
        )
Example #3
0
 def setUp(self):
     self.sites = SitesCollection()
     self.site = self.sites.create_item(TEST_SITE_URL)
     self.backend = VerifiedEmailBackend()
Example #4
0
 def setUp(self):
     self.sites = SitesCollection()
     self.site = self.sites.create_item(TEST_SITE_URL)
     self.backend = VerifiedEmailBackend()