|
|
@@ -1,6 +1,5 @@
|
|
|
from django.test import TestCase
|
|
|
|
|
|
-from dcim.constants import *
|
|
|
from dcim.models import *
|
|
|
|
|
|
|
|
|
@@ -152,6 +151,137 @@ class RackTestCase(TestCase):
|
|
|
self.assertTrue(pdu)
|
|
|
|
|
|
|
|
|
+class DeviceTestCase(TestCase):
|
|
|
+
|
|
|
+ def setUp(self):
|
|
|
+
|
|
|
+ self.site = Site.objects.create(name='Test Site 1', slug='test-site-1')
|
|
|
+ manufacturer = Manufacturer.objects.create(name='Test Manufacturer 1', slug='test-manufacturer-1')
|
|
|
+ self.device_type = DeviceType.objects.create(
|
|
|
+ manufacturer=manufacturer, model='Test Device Type 1', slug='test-device-type-1'
|
|
|
+ )
|
|
|
+ self.device_role = DeviceRole.objects.create(
|
|
|
+ name='Test Device Role 1', slug='test-device-role-1', color='ff0000'
|
|
|
+ )
|
|
|
+
|
|
|
+ # Create DeviceType components
|
|
|
+ ConsolePortTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Console Port 1'
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ ConsoleServerPortTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Console Server Port 1'
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ ppt = PowerPortTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Power Port 1',
|
|
|
+ maximum_draw=1000,
|
|
|
+ allocated_draw=500
|
|
|
+ )
|
|
|
+ ppt.save()
|
|
|
+
|
|
|
+ PowerOutletTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Power Outlet 1',
|
|
|
+ power_port=ppt,
|
|
|
+ feed_leg=POWERFEED_LEG_A
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ InterfaceTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Interface 1',
|
|
|
+ type=IFACE_TYPE_1GE_FIXED,
|
|
|
+ mgmt_only=True
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ rpt = RearPortTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Rear Port 1',
|
|
|
+ type=PORT_TYPE_8P8C,
|
|
|
+ positions=8
|
|
|
+ )
|
|
|
+ rpt.save()
|
|
|
+
|
|
|
+ FrontPortTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Front Port 1',
|
|
|
+ type=PORT_TYPE_8P8C,
|
|
|
+ rear_port=rpt,
|
|
|
+ rear_port_position=2
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ DeviceBayTemplate(
|
|
|
+ device_type=self.device_type,
|
|
|
+ name='Device Bay 1'
|
|
|
+ ).save()
|
|
|
+
|
|
|
+ def test_device_creation(self):
|
|
|
+ """
|
|
|
+ Ensure that all Device components are copied automatically from the DeviceType.
|
|
|
+ """
|
|
|
+ d = Device(
|
|
|
+ site=self.site,
|
|
|
+ device_type=self.device_type,
|
|
|
+ device_role=self.device_role,
|
|
|
+ name='Test Device 1'
|
|
|
+ )
|
|
|
+ d.save()
|
|
|
+
|
|
|
+ ConsolePort.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Console Port 1'
|
|
|
+ )
|
|
|
+
|
|
|
+ ConsoleServerPort.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Console Server Port 1'
|
|
|
+ )
|
|
|
+
|
|
|
+ pp = PowerPort.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Power Port 1',
|
|
|
+ maximum_draw=1000,
|
|
|
+ allocated_draw=500
|
|
|
+ )
|
|
|
+
|
|
|
+ PowerOutlet.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Power Outlet 1',
|
|
|
+ power_port=pp,
|
|
|
+ feed_leg=POWERFEED_LEG_A
|
|
|
+ )
|
|
|
+
|
|
|
+ Interface.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Interface 1',
|
|
|
+ type=IFACE_TYPE_1GE_FIXED,
|
|
|
+ mgmt_only=True
|
|
|
+ )
|
|
|
+
|
|
|
+ rp = RearPort.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Rear Port 1',
|
|
|
+ type=PORT_TYPE_8P8C,
|
|
|
+ positions=8
|
|
|
+ )
|
|
|
+
|
|
|
+ FrontPort.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Front Port 1',
|
|
|
+ type=PORT_TYPE_8P8C,
|
|
|
+ rear_port=rp,
|
|
|
+ rear_port_position=2
|
|
|
+ )
|
|
|
+
|
|
|
+ DeviceBay.objects.get(
|
|
|
+ device=d,
|
|
|
+ name='Device Bay 1'
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
class CableTestCase(TestCase):
|
|
|
|
|
|
def setUp(self):
|