def test_get_keys_for_user_with_keys(self): user1, created_keys = factory.make_user_with_ssl_keys(n_keys=3, username='******') # user2 factory.make_user_with_ssl_keys(n_keys=2) keys = SSLKey.objects.get_keys_for_user(user1) self.assertItemsEqual([key.key for key in created_keys], keys)
def test_get_by_id_fails_for_non_owner_as_admin(self): _, keys = factory.make_user_with_ssl_keys(n_keys=1) factory.make_user_with_ssl_keys(n_keys=1, user=self.user) self.become_admin() key = keys[0] response = self.client.get(reverse("sslkey_handler", args=[key.id])) self.assertEqual(http.client.FORBIDDEN, response.status_code, response)
def test_list_only_shows_user_keys(self): # other user factory.make_user_with_ssl_keys(n_keys=2) _, keys = factory.make_user_with_ssl_keys(n_keys=2, user=self.user) response = self.client.get(reverse("sslkeys_handler")) self.assertEqual(http.client.OK, response.status_code, response) parsed_result = json.loads( response.content.decode(settings.DEFAULT_CHARSET)) parsed_result = [result["resource_uri"] for result in parsed_result] expected_result = [ reverse("sslkey_handler", args=[keys[0].id]), reverse("sslkey_handler", args=[keys[1].id]), ] self.assertItemsEqual(expected_result, parsed_result)
def test_delete_fails_if_not_your_key(self): user, keys = factory.make_user_with_ssl_keys(n_keys=1) response = self.client.delete( reverse("sslkey_handler", args=[keys[0].id]) ) self.assertEqual(http.client.FORBIDDEN, response.status_code, response) self.assertEqual(1, len(SSLKey.objects.filter(user=user)))
def test_delete_by_id_works(self): _, keys = factory.make_user_with_ssl_keys(n_keys=2, user=self.user) response = self.client.delete( reverse('sslkey_handler', args=[keys[0].id])) self.assertEqual(http.client.NO_CONTENT, response.status_code, response) keys_after = SSLKey.objects.filter(user=self.user) self.assertEqual(1, len(keys_after)) self.assertEqual(keys[1].id, keys_after[0].id)
def test_list_sorts_output(self): _, keys = factory.make_user_with_ssl_keys(n_keys=2, user=self.user) response = self.client.get(reverse('sslkeys_handler')) self.assertEqual(http.client.OK, response.status_code, response) parsed_result = json.loads( response.content.decode(settings.DEFAULT_CHARSET)) parsed_result = [result['resource_uri'] for result in parsed_result] expected_result = [ reverse('sslkey_handler', args=[keys[0].id]), reverse('sslkey_handler', args=[keys[1].id]), ] self.assertEqual(expected_result, parsed_result)
def test_get_by_id_works(self): _, keys = factory.make_user_with_ssl_keys(n_keys=1, user=self.user) key = keys[0] response = self.client.get(reverse("sslkey_handler", args=[key.id])) self.assertEqual(http.client.OK, response.status_code, response) parsed_result = json.loads( response.content.decode(settings.DEFAULT_CHARSET)) expected = dict( id=key.id, key=key.key, resource_uri=reverse("sslkey_handler", args=[key.id]), ) self.assertEqual(expected, parsed_result)
def test_delete_by_id_works_and_creates_audit_event(self): _, keys = factory.make_user_with_ssl_keys(n_keys=2, user=self.user) response = self.client.delete( reverse("sslkey_handler", args=[keys[0].id])) self.assertEqual(http.client.NO_CONTENT, response.status_code, response) keys_after = SSLKey.objects.filter(user=self.user) event = Event.objects.get(type__level=AUDIT) self.assertEqual(1, len(keys_after)) self.assertEqual(keys[1].id, keys_after[0].id) self.assertIsNotNone(event) self.assertEqual(event.description, "Deleted SSL key id='%s'." % keys[0].id)