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() # 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
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)
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.')
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'))
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)
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)
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)
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)
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
def test_unique_per_user(self): with self.assertRaises(IntegrityError): ApiAccessRequestFactory(user=self.user)
def setUp(self): super(ApiAccessRequestTests, self).setUp() self.user = UserFactory() self.request = ApiAccessRequestFactory(user=self.user)
def setUp(self): super(ApiAccessRequestTests, self).setUp() # lint-amnesty, pylint: disable=super-with-arguments self.user = UserFactory() self.request = ApiAccessRequestFactory(user=self.user)