Skip to content

fl_server_api.tests.test_group

Classes:

Name Description
GroupTests

Classes

GroupTests

Bases: TestCase


              flowchart TD
              fl_server_api.tests.test_group.GroupTests[GroupTests]

              

              click fl_server_api.tests.test_group.GroupTests href "" "fl_server_api.tests.test_group.GroupTests"
            

Methods:

Name Description
setUp
test_create_group
test_create_invalid_group
test_delete_group
test_get_all_groups
test_get_all_groups_as_superuser
test_get_other_group
test_get_own_group
test_update_group
test_update_group_partial
Source code in fl_server_api/tests/test_group.py
class GroupTests(TestCase):

    def setUp(self):
        self.user = Dummy.create_user_and_authenticate(self.client)

    def test_get_all_groups(self):
        [Dummy.create_group() for _ in range(10)]
        with self.assertLogs("django.request", level="WARNING") as cm:
            response = self.client.get(f"{BASE_URL}/groups/")
        self.assertEqual(cm.output, [
            "WARNING:django.request:Forbidden: /api/groups/",
        ])
        self.assertEqual(403, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual("You are not allowed to access all groups.", response_json["detail"])

    def test_get_all_groups_as_superuser(self):
        self.user.is_superuser = True
        self.user.save()
        [Dummy.create_group() for _ in range(10)]
        response = self.client.get(f"{BASE_URL}/groups/")
        self.assertEqual(200, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual(10, len(response_json))

    def test_get_own_group(self):
        Dummy.create_group()
        group = Dummy.create_group()
        Dummy.create_group()
        self.user.groups.add(group)
        self.user.save()
        response = self.client.get(f"{BASE_URL}/groups/{group.id}/")
        self.assertEqual(200, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual(group.id, response_json["id"])

    def test_get_other_group(self):
        group = Dummy.create_group()
        with self.assertLogs("django.request", level="WARNING") as cm:
            response = self.client.get(f"{BASE_URL}/groups/{group.id}/")
        self.assertEqual(cm.output, [
            f"WARNING:django.request:Forbidden: /api/groups/{group.id}/",
        ])
        self.assertEqual(403, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual("You are not allowed to access this group.", response_json["detail"])

    def test_create_group(self):
        group = dict(name="test-group")
        response = self.client.post(f"{BASE_URL}/groups/", group)
        self.assertEqual(201, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual("test-group", response_json["name"])

    def test_create_invalid_group(self):
        group = dict(hello="test-group")
        with self.assertLogs("django.request", level="WARNING") as cm:
            response = self.client.post(f"{BASE_URL}/groups/", group)
        self.assertEqual(cm.output, [
            "WARNING:django.request:Bad Request: /api/groups/",
        ])
        self.assertEqual(400, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual("This field is required.", response_json["name"][0])

    def test_update_group(self):
        group = Dummy.create_group()
        self.user.groups.add(group)
        self.user.save()
        group_update = dict(name="group-name")
        response = self.client.put(f"{BASE_URL}/groups/{group.id}/", group_update, content_type="application/json")
        self.assertEqual(200, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual(group_update["name"], response_json["name"])

    def test_update_group_partial(self):
        group = Dummy.create_group()
        self.user.groups.add(group)
        self.user.save()
        group_update = dict(name="group-name")
        response = self.client.patch(f"{BASE_URL}/groups/{group.id}/", group_update, content_type="application/json")
        self.assertEqual(200, response.status_code)
        self.assertEqual("application/json", response["content-type"])
        response_json = response.json()
        self.assertEqual(group_update["name"], response_json["name"])

    def test_delete_group(self):
        group = Dummy.create_group()
        self.user.groups.add(group)
        self.user.save()
        response = self.client.delete(f"{BASE_URL}/groups/{group.id}/")
        self.assertEqual(204, response.status_code)
        self.assertEqual(0, len(response.content))

Functions

setUp
setUp()
Source code in fl_server_api/tests/test_group.py
def setUp(self):
    self.user = Dummy.create_user_and_authenticate(self.client)
test_create_group
test_create_group()
Source code in fl_server_api/tests/test_group.py
def test_create_group(self):
    group = dict(name="test-group")
    response = self.client.post(f"{BASE_URL}/groups/", group)
    self.assertEqual(201, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual("test-group", response_json["name"])
test_create_invalid_group
test_create_invalid_group()
Source code in fl_server_api/tests/test_group.py
def test_create_invalid_group(self):
    group = dict(hello="test-group")
    with self.assertLogs("django.request", level="WARNING") as cm:
        response = self.client.post(f"{BASE_URL}/groups/", group)
    self.assertEqual(cm.output, [
        "WARNING:django.request:Bad Request: /api/groups/",
    ])
    self.assertEqual(400, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual("This field is required.", response_json["name"][0])
test_delete_group
test_delete_group()
Source code in fl_server_api/tests/test_group.py
def test_delete_group(self):
    group = Dummy.create_group()
    self.user.groups.add(group)
    self.user.save()
    response = self.client.delete(f"{BASE_URL}/groups/{group.id}/")
    self.assertEqual(204, response.status_code)
    self.assertEqual(0, len(response.content))
test_get_all_groups
test_get_all_groups()
Source code in fl_server_api/tests/test_group.py
def test_get_all_groups(self):
    [Dummy.create_group() for _ in range(10)]
    with self.assertLogs("django.request", level="WARNING") as cm:
        response = self.client.get(f"{BASE_URL}/groups/")
    self.assertEqual(cm.output, [
        "WARNING:django.request:Forbidden: /api/groups/",
    ])
    self.assertEqual(403, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual("You are not allowed to access all groups.", response_json["detail"])
test_get_all_groups_as_superuser
test_get_all_groups_as_superuser()
Source code in fl_server_api/tests/test_group.py
def test_get_all_groups_as_superuser(self):
    self.user.is_superuser = True
    self.user.save()
    [Dummy.create_group() for _ in range(10)]
    response = self.client.get(f"{BASE_URL}/groups/")
    self.assertEqual(200, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual(10, len(response_json))
test_get_other_group
test_get_other_group()
Source code in fl_server_api/tests/test_group.py
def test_get_other_group(self):
    group = Dummy.create_group()
    with self.assertLogs("django.request", level="WARNING") as cm:
        response = self.client.get(f"{BASE_URL}/groups/{group.id}/")
    self.assertEqual(cm.output, [
        f"WARNING:django.request:Forbidden: /api/groups/{group.id}/",
    ])
    self.assertEqual(403, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual("You are not allowed to access this group.", response_json["detail"])
test_get_own_group
test_get_own_group()
Source code in fl_server_api/tests/test_group.py
def test_get_own_group(self):
    Dummy.create_group()
    group = Dummy.create_group()
    Dummy.create_group()
    self.user.groups.add(group)
    self.user.save()
    response = self.client.get(f"{BASE_URL}/groups/{group.id}/")
    self.assertEqual(200, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual(group.id, response_json["id"])
test_update_group
test_update_group()
Source code in fl_server_api/tests/test_group.py
def test_update_group(self):
    group = Dummy.create_group()
    self.user.groups.add(group)
    self.user.save()
    group_update = dict(name="group-name")
    response = self.client.put(f"{BASE_URL}/groups/{group.id}/", group_update, content_type="application/json")
    self.assertEqual(200, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual(group_update["name"], response_json["name"])
test_update_group_partial
test_update_group_partial()
Source code in fl_server_api/tests/test_group.py
def test_update_group_partial(self):
    group = Dummy.create_group()
    self.user.groups.add(group)
    self.user.save()
    group_update = dict(name="group-name")
    response = self.client.patch(f"{BASE_URL}/groups/{group.id}/", group_update, content_type="application/json")
    self.assertEqual(200, response.status_code)
    self.assertEqual("application/json", response["content-type"])
    response_json = response.json()
    self.assertEqual(group_update["name"], response_json["name"])