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)