UPDATE
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import TestCase
|
||||
from rest_framework.test import APIRequestFactory, force_authenticate
|
||||
|
||||
from sensor_catalog.models import SensorCatalog
|
||||
from sensor_catalog.views import SensorCatalogListView
|
||||
|
||||
|
||||
class SensorCatalogListViewTests(TestCase):
|
||||
def setUp(self):
|
||||
self.factory = APIRequestFactory()
|
||||
self.user = get_user_model().objects.create_user(
|
||||
username="sensor-user",
|
||||
password="secret123",
|
||||
email="sensor@example.com",
|
||||
phone_number="09120000002",
|
||||
)
|
||||
SensorCatalog.objects.update_or_create(
|
||||
name="Sensor 7 - Soil Moisture Sensor v1.2",
|
||||
defaults={
|
||||
"description": (
|
||||
"Measures only soil moisture using electrical resistance between two metal probes. "
|
||||
"Provides analog and digital outputs."
|
||||
),
|
||||
"customizable_fields": [],
|
||||
"supported_power_sources": ["solar", "direct_power"],
|
||||
"returned_data_fields": ["soil_moisture", "analog_output", "digital_output"],
|
||||
"sample_payload": {"soil_moisture": 42, "analog_output": 610, "digital_output": 1},
|
||||
"is_active": True,
|
||||
},
|
||||
)
|
||||
SensorCatalog.objects.update_or_create(
|
||||
name="Legacy Sensor",
|
||||
defaults={
|
||||
"customizable_fields": [],
|
||||
"supported_power_sources": ["direct_power"],
|
||||
"returned_data_fields": ["status"],
|
||||
"sample_payload": {"status": "offline"},
|
||||
"is_active": False,
|
||||
},
|
||||
)
|
||||
|
||||
def test_list_returns_all_existing_sensors(self):
|
||||
request = self.factory.get("/api/sensor-catalog/")
|
||||
force_authenticate(request, user=self.user)
|
||||
|
||||
response = SensorCatalogListView.as_view()(request)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.data["code"], 200)
|
||||
self.assertEqual(len(response.data["data"]), 2)
|
||||
self.assertEqual(
|
||||
{item["name"] for item in response.data["data"]},
|
||||
{"Sensor 7 - Soil Moisture Sensor v1.2", "Legacy Sensor"},
|
||||
)
|
||||
Reference in New Issue
Block a user