Example #1
0
class TestEntreeUserFetcher(DBUserTestCase):
    def setUp(self):
        super(TestEntreeUserFetcher, self).setUp()
        cache.clear()
        self.fetcher = EntreeUserFetcherMixin()

    def test_bad_checksum_raises(self):
        cookie_val = "w/ checksum value"
        invalid_cookie = COOKIE_CHECKSUM_SEPARATOR.join([cookie_val, calc_checksum(cookie_val, length=10)])[:-1]
        assert_raises(InvalidAuth, self.fetcher.fetch, invalid_cookie)

    def test_no_checksum_pass_and_perform_fetch(self):
        cookie_val = "no_checksum_value"

        self.fetcher.perform_fetch = Mock()
        self.fetcher.perform_fetch.return_value = AnonymousUser()

        assert_equals(AnonymousUser(), self.fetcher.fetch(cookie_val))
        assert self.fetcher.perform_fetch.called

    @patch("entree.client.managers.urlopen")
    def test_perform_fetch_403_raises_invalid(self, mocked_urlopen):

        mocked_urlopen.side_effect = HTTPError(url="foo", code=403, msg="you shall not pass", hdrs=None, fp=None)
        cookie_val = "no_checksum_value"

        assert_raises(InvalidAuth, self.fetcher.perform_fetch, cookie_val)

    @patch("entree.client.managers.urlopen")
    def test_perform_fetch_404_raises_anonymous(self, mocked_urlopen):

        mocked_urlopen.side_effect = HTTPError(url="foo", code=404, msg="you shall not pass", hdrs=None, fp=None)
        cookie_val = "no_checksum_value"

        assert_equals(AnonymousUser, self.fetcher.perform_fetch(cookie_val).__class__)

    @patch("entree.client.managers.urlopen")
    def test_perform_fetch_returns_entreeuser(self, mocked_urlopen):

        if self.__class__.__name__ == "TestEntreeUserFetcherCache":
            from nose.plugins.skip import SkipTest

            raise SkipTest("entree.client.db in installed_apps means bad import")

        mocked_urlopen.return_value = StringIO("""{"email": "*****@*****.**"}""")
        cookie_val = "no_checksum_value"

        ret = self.fetcher.perform_fetch(cookie_val)
        assert_equals(self.UserClass, ret.__class__)
        assert_equals("*****@*****.**", ret.data["email"])

    @patch("entree.client.managers.urlopen")
    def test_perform_fetch_invalid_response_ret_anonymous(self, mocked_urlopen):

        mocked_urlopen.return_value = StringIO("""{invalid_json "foo"}""")
        cookie_val = "no_checksum_value"

        ret = self.fetcher.perform_fetch(cookie_val)
        assert_equals(AnonymousUser, ret.__class__)
Example #2
0
    def test_fetch_profile_post_good_data_200(self):
        self.valid_site.secret = ENTREE['SECRET_KEY']
        self.valid_site.save()

        fetcher = EntreeUserFetcherMixin()
        token = self.user.create_token()

        fetch_params = fetcher._fetch_params(token.value)

        self.request.method = 'POST'
        self.request.POST = fetch_params

        ViewClass = ProfileFetchView.as_view()
        view = ViewClass(self.request)

        assert_equals(200, view.status_code)
Example #3
0
    def test_fetch_profile_post_good_data_200(self):
        self.valid_site.secret = ENTREE["SECRET_KEY"]
        self.valid_site.save()

        fetcher = EntreeUserFetcherMixin()
        token = self.user.create_token()

        fetch_params = fetcher._fetch_params(token.value)

        self.request.method = "POST"
        self.request.POST = fetch_params

        ViewClass = ProfileFetchView.as_view()
        view = ViewClass(self.request)

        assert_equals(200, view.status_code)
Example #4
0
    def test_fetch_profile_invalid_checksum_403(self):
        self.valid_site.secret = ENTREE['SECRET_KEY']
        self.valid_site.save()

        fetcher = EntreeUserFetcherMixin()
        token = self.user.create_token()

        fetch_params = fetcher._fetch_params(token.value)
        fetch_params['checksum'] = 'foo'

        self.request.method = 'POST'
        self.request.POST = fetch_params

        ViewClass = ProfileFetchView.as_view()
        view = ViewClass(self.request)

        assert_equals(403, view.status_code)
Example #5
0
    def test_fetch_profile_invalid_checksum_403(self):
        self.valid_site.secret = ENTREE["SECRET_KEY"]
        self.valid_site.save()

        fetcher = EntreeUserFetcherMixin()
        token = self.user.create_token()

        fetch_params = fetcher._fetch_params(token.value)
        fetch_params["checksum"] = "foo"

        self.request.method = "POST"
        self.request.POST = fetch_params

        ViewClass = ProfileFetchView.as_view()
        view = ViewClass(self.request)

        assert_equals(403, view.status_code)
Example #6
0
 def setUp(self):
     super(TestEntreeUserFetcher, self).setUp()
     cache.clear()
     self.fetcher = EntreeUserFetcherMixin()
Example #7
0
class TestEntreeUserFetcher(DBUserTestCase):
    def setUp(self):
        super(TestEntreeUserFetcher, self).setUp()
        cache.clear()
        self.fetcher = EntreeUserFetcherMixin()

    def test_bad_checksum_raises(self):
        cookie_val = 'w/ checksum value'
        invalid_cookie = COOKIE_CHECKSUM_SEPARATOR.join(
            [cookie_val, calc_checksum(cookie_val, length=10)])[:-1]
        assert_raises(InvalidAuth, self.fetcher.fetch, invalid_cookie)

    def test_no_checksum_pass_and_perform_fetch(self):
        cookie_val = 'no_checksum_value'

        self.fetcher.perform_fetch = Mock()
        self.fetcher.perform_fetch.return_value = AnonymousUser()

        assert_equals(AnonymousUser(), self.fetcher.fetch(cookie_val))
        assert self.fetcher.perform_fetch.called

    @patch('entree.client.managers.urlopen')
    def test_perform_fetch_403_raises_invalid(self, mocked_urlopen):

        mocked_urlopen.side_effect = HTTPError(url='foo',
                                               code=403,
                                               msg='you shall not pass',
                                               hdrs=None,
                                               fp=None)
        cookie_val = 'no_checksum_value'

        assert_raises(InvalidAuth, self.fetcher.perform_fetch, cookie_val)

    @patch('entree.client.managers.urlopen')
    def test_perform_fetch_404_raises_anonymous(self, mocked_urlopen):

        mocked_urlopen.side_effect = HTTPError(url='foo',
                                               code=404,
                                               msg='you shall not pass',
                                               hdrs=None,
                                               fp=None)
        cookie_val = 'no_checksum_value'

        assert_equals(AnonymousUser,
                      self.fetcher.perform_fetch(cookie_val).__class__)

    @patch('entree.client.managers.urlopen')
    def test_perform_fetch_returns_entreeuser(self, mocked_urlopen):

        if self.__class__.__name__ == 'TestEntreeUserFetcherCache':
            from nose.plugins.skip import SkipTest
            raise SkipTest(
                "entree.client.db in installed_apps means bad import")

        mocked_urlopen.return_value = StringIO("""{"email": "*****@*****.**"}""")
        cookie_val = 'no_checksum_value'

        ret = self.fetcher.perform_fetch(cookie_val)
        assert_equals(self.UserClass, ret.__class__)
        assert_equals('*****@*****.**', ret.data['email'])

    @patch('entree.client.managers.urlopen')
    def test_perform_fetch_invalid_response_ret_anonymous(
            self, mocked_urlopen):

        mocked_urlopen.return_value = StringIO("""{invalid_json "foo"}""")
        cookie_val = 'no_checksum_value'

        ret = self.fetcher.perform_fetch(cookie_val)
        assert_equals(AnonymousUser, ret.__class__)
Example #8
0
 def setUp(self):
     super(TestEntreeUserFetcher, self).setUp()
     cache.clear()
     self.fetcher = EntreeUserFetcherMixin()