Fix device issues and document current LAN deployment
This commit is contained in:
@@ -7,7 +7,11 @@ from django.test import TransactionTestCase
|
||||
|
||||
OLD = [("inventory", "0008_normalize_hardware_by_type")]
|
||||
NEW = [("inventory", "0009_split_device_specifications")]
|
||||
LATEST = [("inventory", "0012_allinonespecification_desktopspecification_and_more")]
|
||||
|
||||
|
||||
def restore_latest_schema():
|
||||
executor = MigrationExecutor(connection)
|
||||
executor.migrate(executor.loader.graph.leaf_nodes())
|
||||
|
||||
|
||||
class SpecificationMigrationTests(TransactionTestCase):
|
||||
@@ -40,7 +44,7 @@ class SpecificationMigrationTests(TransactionTestCase):
|
||||
self.assertEqual(str(Monitor.objects.get(device_id=screen_id).display_inches), "24.0")
|
||||
self.assertFalse(Computer.objects.filter(device_id=printer_id).exists())
|
||||
finally:
|
||||
MigrationExecutor(connection).migrate(LATEST)
|
||||
restore_latest_schema()
|
||||
|
||||
|
||||
class DeviceTypeTableMigrationTests(TransactionTestCase):
|
||||
@@ -60,8 +64,8 @@ class DeviceTypeTableMigrationTests(TransactionTestCase):
|
||||
device = Device.objects.create(number=92000 + index, status=status, device_type=device_type)
|
||||
Computer.objects.create(device_id=device.pk, cpu="Core i5", ram_gb=8, ssd_gb=256)
|
||||
ids[label] = device.pk
|
||||
MigrationExecutor(connection).migrate(LATEST)
|
||||
apps = MigrationExecutor(connection).loader.project_state(LATEST).apps
|
||||
restore_latest_schema()
|
||||
apps = MigrationExecutor(connection).loader.project_state().apps
|
||||
self.assertEqual(apps.get_model("inventory", "LaptopSpecification").objects.get(device_id=ids["Laptop"]).ram_gb, 8)
|
||||
self.assertEqual(apps.get_model("inventory", "DesktopSpecification").objects.get(device_id=ids["Desktop"]).ssd_gb, 256)
|
||||
self.assertEqual(apps.get_model("inventory", "AllInOneSpecification").objects.get(device_id=ids["AiO"]).cpu, "Core i5")
|
||||
@@ -69,4 +73,30 @@ class DeviceTypeTableMigrationTests(TransactionTestCase):
|
||||
self.assertFalse(Computer.objects.filter(device_id__in=ids.values()).exclude(device_id=ids["Sondergerät"]).exists())
|
||||
self.assertTrue(Computer.objects.filter(device_id=ids["Sondergerät"]).exists())
|
||||
finally:
|
||||
MigrationExecutor(connection).migrate(LATEST)
|
||||
restore_latest_schema()
|
||||
|
||||
|
||||
class EquipmentFieldMigrationTests(TransactionTestCase):
|
||||
def test_existing_connection_notes_and_hardware_are_preserved(self):
|
||||
old = [("inventory", "0013_deviceregistration")]
|
||||
executor = MigrationExecutor(connection)
|
||||
executor.migrate(old)
|
||||
try:
|
||||
apps = executor.loader.project_state(old).apps
|
||||
Choice = apps.get_model("inventory", "ChoiceValue")
|
||||
Device = apps.get_model("inventory", "Device")
|
||||
Monitor = apps.get_model("inventory", "MonitorSpecification")
|
||||
status, _ = Choice.objects.get_or_create(kind="status", label="Eingang")
|
||||
kind, _ = Choice.objects.get_or_create(kind="device_type", label="Bildschirm")
|
||||
device = Device.objects.create(number=93001, status=status, device_type=kind)
|
||||
Monitor.objects.create(device=device, ports="HDMI, VGA; DP ungetestet", resolution="1920x1080")
|
||||
restore_latest_schema()
|
||||
apps = MigrationExecutor(connection).loader.project_state().apps
|
||||
specification = apps.get_model("inventory", "MonitorSpecification").objects.get(device_id=device.pk)
|
||||
self.assertEqual(specification.ports, "HDMI, VGA; DP ungetestet")
|
||||
self.assertEqual(specification.resolution, "1920x1080")
|
||||
self.assertEqual(specification.hdmi, "UNKNOWN")
|
||||
self.assertEqual(specification.displayport, "UNKNOWN")
|
||||
self.assertEqual(specification.aspect_ratio, "")
|
||||
finally:
|
||||
restore_latest_schema()
|
||||
|
||||
Reference in New Issue
Block a user