Source code for apps.api.tests.test_device_types

from rest_framework.test import APITestCase
from rest_framework import status

from apps.core.models.device_type import DeviceType


[docs]class DeviceTestCase(APITestCase):
[docs] def setUp(self): self.type1 = DeviceType.objects.create( type_name="type1", default_version="2021.46", description="This is type1" ) self.type2 = DeviceType.objects.create( type_name="type2", default_version="2020.12", description="This is type2" )
[docs] def test_add_new_device_type(self): data = { "type_name": "test", "default_version": "test", "description": "test" } response = self.client.post(f"/api/device_types", data=data, format="json") self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data["type_name"], "test") response = self.client.post(f"/api/device_types", data=data, format="json") # cannot add new device_type if the name already exists in db self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
[docs] def test_get_list_of_device_types(self): response = self.client.get(f"/api/device_types", format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2)
[docs] def test_get_specific_device_type(self): response = self.client.get( f"/api/device_types/{self.type1.id}", format="json" ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["type_name"], "type1") random_id = "a1113288-2c73-488d-baff-df53dec2c6b3" response = self.client.get(f"/api/device_types/{random_id}", format="json") self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
[docs] def test_update_specific_device_type(self): data = { "type_name": "type1", "default_version": "test-default-version", "description": "test" } response = self.client.put(f"/api/device_types/{self.type1.id}", data=data, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["default_version"], "test-default-version") data = { "type_name": "type2", "default_version": "test-default-version", "description": "test" } # cannot update if updated name already exists in the db response = self.client.put(f"/api/device_types/{self.type1.id}", data=data, format="json") self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
[docs] def test_delete_device_type(self): data = { "type_name": "type-to-be-deleted", "default_version": "test-default-version", "description": "test" } test_type = self.client.post(f"/api/device_types", data=data, format="json") response = self.client.delete(f"/api/device_types/{test_type.data['id']}") self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) # double check response = self.client.get(f"/api/device_types/{test_type.data['id']}") self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)