Example #1
0
class ApiAccessRequestTests(TestCase):
    def setUp(self):
        super(ApiAccessRequestTests, self).setUp()
        self.user = UserFactory()
        self.request = ApiAccessRequestFactory(user=self.user)

    def test_default_status(self):
        self.assertEqual(self.request.status, ApiAccessRequest.PENDING)
        self.assertFalse(ApiAccessRequest.has_api_access(self.user))

    def test_approve(self):
        self.request.approve()
        self.assertEqual(self.request.status, ApiAccessRequest.APPROVED)

    def test_deny(self):
        self.request.deny()
        self.assertEqual(self.request.status, ApiAccessRequest.DENIED)

    def test_nonexistent_request(self):
        """Test that users who have not requested API access do not get it."""
        other_user = UserFactory()
        self.assertFalse(ApiAccessRequest.has_api_access(other_user))

    @ddt.data(
        (ApiAccessRequest.PENDING, False),
        (ApiAccessRequest.DENIED, False),
        (ApiAccessRequest.APPROVED, True),
    )
    @ddt.unpack
    def test_has_access(self, status, should_have_access):
        self.request.status = status
        self.request.save()
        self.assertEqual(ApiAccessRequest.has_api_access(self.user),
                         should_have_access)

    def test_unique_per_user(self):
        with self.assertRaises(IntegrityError):
            ApiAccessRequestFactory(user=self.user)

    def test_no_access(self):
        self.request.delete()
        self.assertIsNone(ApiAccessRequest.api_access_status(self.user))

    def test_unicode(self):
        request_unicode = six.text_type(self.request)
        self.assertIn(self.request.website, request_unicode)
        self.assertIn(self.request.status, request_unicode)

    def test_retire_user_success(self):
        retire_result = self.request.retire_user(self.user)
        self.assertTrue(retire_result)
        self.assertEqual(self.request.company_address, '')
        self.assertEqual(self.request.company_name, '')
        self.assertEqual(self.request.website, '')
        self.assertEqual(self.request.reason, '')

    def test_retire_user_do_not_exist(self):
        user2 = UserFactory()
        retire_result = self.request.retire_user(user2)
        self.assertFalse(retire_result)
class ApiAccessRequestTests(TestCase):

    def setUp(self):
        super(ApiAccessRequestTests, self).setUp()
        self.user = UserFactory()
        self.request = ApiAccessRequestFactory(user=self.user)

    def test_default_status(self):
        self.assertEqual(self.request.status, ApiAccessRequest.PENDING)
        self.assertFalse(ApiAccessRequest.has_api_access(self.user))

    def test_approve(self):
        self.request.approve()
        self.assertEqual(self.request.status, ApiAccessRequest.APPROVED)

    def test_deny(self):
        self.request.deny()
        self.assertEqual(self.request.status, ApiAccessRequest.DENIED)

    def test_nonexistent_request(self):
        """Test that users who have not requested API access do not get it."""
        other_user = UserFactory()
        self.assertFalse(ApiAccessRequest.has_api_access(other_user))

    @ddt.data(
        (ApiAccessRequest.PENDING, False),
        (ApiAccessRequest.DENIED, False),
        (ApiAccessRequest.APPROVED, True),
    )
    @ddt.unpack
    def test_has_access(self, status, should_have_access):
        self.request.status = status
        self.request.save()
        self.assertEqual(ApiAccessRequest.has_api_access(self.user), should_have_access)

    def test_unique_per_user(self):
        with self.assertRaises(IntegrityError):
            ApiAccessRequestFactory(user=self.user)

    def test_no_access(self):
        self.request.delete()
        self.assertIsNone(ApiAccessRequest.api_access_status(self.user))

    def test_unicode(self):
        request_unicode = six.text_type(self.request)
        self.assertIn(self.request.website, request_unicode)
        self.assertIn(self.request.status, request_unicode)

    def test_retire_user_success(self):
        retire_result = self.request.retire_user(self.user)
        self.assertTrue(retire_result)
        self.assertEqual(self.request.company_address, '')
        self.assertEqual(self.request.company_name, '')
        self.assertEqual(self.request.website, '')
        self.assertEqual(self.request.reason, '')

    def test_retire_user_do_not_exist(self):
        user2 = UserFactory()
        retire_result = self.request.retire_user(user2)
        self.assertFalse(retire_result)
Example #3
0
class ApiAccessRequestTests(TestCase):
    def setUp(self):
        super(ApiAccessRequestTests, self).setUp()  # lint-amnesty, pylint: disable=super-with-arguments
        self.user = UserFactory()
        self.request = ApiAccessRequestFactory(user=self.user)

    def test_default_status(self):
        assert self.request.status == ApiAccessRequest.PENDING
        assert not ApiAccessRequest.has_api_access(self.user)

    def test_approve(self):
        self.request.approve()
        assert self.request.status == ApiAccessRequest.APPROVED

    def test_deny(self):
        self.request.deny()
        assert self.request.status == ApiAccessRequest.DENIED

    def test_nonexistent_request(self):
        """Test that users who have not requested API access do not get it."""
        other_user = UserFactory()
        assert not ApiAccessRequest.has_api_access(other_user)

    @ddt.data(
        (ApiAccessRequest.PENDING, False),
        (ApiAccessRequest.DENIED, False),
        (ApiAccessRequest.APPROVED, True),
    )
    @ddt.unpack
    def test_has_access(self, status, should_have_access):
        self.request.status = status
        self.request.save()
        assert ApiAccessRequest.has_api_access(self.user) == should_have_access

    def test_unique_per_user(self):
        with pytest.raises(IntegrityError):
            ApiAccessRequestFactory(user=self.user)

    def test_no_access(self):
        self.request.delete()
        assert ApiAccessRequest.api_access_status(self.user) is None

    def test_unicode(self):
        request_unicode = six.text_type(self.request)
        assert self.request.website in request_unicode
        assert self.request.status in request_unicode

    def test_retire_user_success(self):
        retire_result = self.request.retire_user(self.user)
        assert retire_result
        assert self.request.company_address == ''
        assert self.request.company_name == ''
        assert self.request.website == ''
        assert self.request.reason == ''

    def test_retire_user_do_not_exist(self):
        user2 = UserFactory()
        retire_result = self.request.retire_user(user2)
        assert not retire_result
Example #4
0
 def test_post(self, status, application_exists, new_application_created):
     """
     Verify that posting the form creates an application if the user is
     approved, and does not otherwise. Also ensure that if the user
     already has an application, it is deleted before a new
     application is created.
     """
     if application_exists:
         old_application = ApplicationFactory(user=self.user)
     ApiAccessRequestFactory(user=self.user, status=status)
     self.client.post(self.url, {
         'name': 'test.com',
         'redirect_uris': 'http://example.com'
     })
     applications = Application.objects.filter(user=self.user)
     if application_exists and new_application_created:
         self.assertEqual(applications.count(), 1)
         self.assertNotEqual(old_application, applications[0])
     elif application_exists:
         self.assertEqual(applications.count(), 1)
         self.assertEqual(old_application, applications[0])
     elif new_application_created:
         self.assertEqual(applications.count(), 1)
     else:
         self.assertEqual(applications.count(), 0)
Example #5
0
 def test_post_with_errors(self):
     ApiAccessRequestFactory(user=self.user, status=ApiAccessRequest.APPROVED)
     response = self.client.post(self.url, {
         'name': 'test.com',
         'redirect_uris': 'not a url'
     })
     self.assertContains(response, 'Enter a valid URL.')
Example #6
0
 def test_get_with_existing_request(self):
     """
     Verify that users who have already requested access are redirected
     to the client creation page to see their status.
     """
     ApiAccessRequestFactory(user=self.user)
     response = self.client.get(self.url)
     self.assertRedirects(response, reverse('api_admin:api-status'))
Example #7
0
 def test_get_with_request(self, status, expected):
     """
     Verify that users who have requested access can see a message
     regarding their request status.
     """
     ApiAccessRequestFactory(user=self.user, status=status)
     response = self.client.get(self.url)
     self.assertContains(response, expected)
Example #8
0
 def test_get_with_request(self):
     """
     Verify that users who have requested access can see a message
     regarding their request status.
     """
     ApiAccessRequestFactory(user=self.user)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
Example #9
0
 def test_get_with_existing_application(self):
     """
     Verify that if the user has created their client credentials, they
     are shown on the status page.
     """
     ApiAccessRequestFactory(user=self.user, status=ApiAccessRequest.APPROVED)
     application = ApplicationFactory(user=self.user)
     response = self.client.get(self.url)
     self.assertContains(response, application.client_secret)
     self.assertContains(response, application.client_id)
     self.assertContains(response, application.redirect_uris)
Example #10
0
class ApiAccessRequestTests(TestCase):
    def setUp(self):
        super(ApiAccessRequestTests, self).setUp()
        self.user = UserFactory()
        self.request = ApiAccessRequestFactory(user=self.user)

    def test_default_status(self):
        self.assertEqual(self.request.status, ApiAccessRequest.PENDING)
        self.assertFalse(ApiAccessRequest.has_api_access(self.user))

    def test_approve(self):
        self.request.approve()  # pylint: disable=no-member
        self.assertEqual(self.request.status, ApiAccessRequest.APPROVED)

    def test_deny(self):
        self.request.deny()  # pylint: disable=no-member
        self.assertEqual(self.request.status, ApiAccessRequest.DENIED)

    def test_nonexistent_request(self):
        """Test that users who have not requested API access do not get it."""
        other_user = UserFactory()
        self.assertFalse(ApiAccessRequest.has_api_access(other_user))

    @ddt.data(
        (ApiAccessRequest.PENDING, False),
        (ApiAccessRequest.DENIED, False),
        (ApiAccessRequest.APPROVED, True),
    )
    @ddt.unpack
    def test_has_access(self, status, should_have_access):
        self.request.status = status
        self.request.save()  # pylint: disable=no-member
        self.assertEqual(ApiAccessRequest.has_api_access(self.user),
                         should_have_access)
class ApiAccessRequestTests(TestCase):

    def setUp(self):
        super(ApiAccessRequestTests, self).setUp()
        self.user = UserFactory()
        self.request = ApiAccessRequestFactory(user=self.user)

    def test_default_status(self):
        self.assertEqual(self.request.status, ApiAccessRequest.PENDING)
        self.assertFalse(ApiAccessRequest.has_api_access(self.user))

    def test_approve(self):
        self.request.approve()  # pylint: disable=no-member
        self.assertEqual(self.request.status, ApiAccessRequest.APPROVED)

    def test_deny(self):
        self.request.deny()  # pylint: disable=no-member
        self.assertEqual(self.request.status, ApiAccessRequest.DENIED)

    def test_nonexistent_request(self):
        """Test that users who have not requested API access do not get it."""
        other_user = UserFactory()
        self.assertFalse(ApiAccessRequest.has_api_access(other_user))

    @ddt.data(
        (ApiAccessRequest.PENDING, False),
        (ApiAccessRequest.DENIED, False),
        (ApiAccessRequest.APPROVED, True),
    )
    @ddt.unpack
    def test_has_access(self, status, should_have_access):
        self.request.status = status
        self.request.save()  # pylint: disable=no-member
        self.assertEqual(ApiAccessRequest.has_api_access(self.user), should_have_access)
Example #12
0
 def test_get_with_existing_application(self):
     """
     Verify that if the user has created their client credentials, they
     are shown on the status page.
     """
     ApiAccessRequestFactory(user=self.user, status=ApiAccessRequest.APPROVED)
     application = ApplicationFactory(user=self.user)
     response = self.client.get(self.url)
     self.assertEqual(response.status_code, 200)
     unicode_content = response.content.decode('utf-8')
     self.assertIn(application.client_secret, unicode_content)  # pylint: disable=no-member
     self.assertIn(application.client_id, unicode_content)  # pylint: disable=no-member
     self.assertIn(application.redirect_uris, unicode_content)  # pylint: disable=no-member
Example #13
0
 def test_unique_per_user(self):
     with self.assertRaises(IntegrityError):
         ApiAccessRequestFactory(user=self.user)
Example #14
0
 def setUp(self):
     super(ApiAccessRequestTests, self).setUp()
     self.user = UserFactory()
     self.request = ApiAccessRequestFactory(user=self.user)
Example #15
0
 def setUp(self):
     super(ApiAccessRequestTests, self).setUp()
     self.user = UserFactory()
     self.request = ApiAccessRequestFactory(user=self.user)
Example #16
0
 def setUp(self):
     super(ApiAccessRequestTests, self).setUp()  # lint-amnesty, pylint: disable=super-with-arguments
     self.user = UserFactory()
     self.request = ApiAccessRequestFactory(user=self.user)