test_forms.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from django.test import TestCase
  2. from dcim.forms import *
  3. from dcim.models import *
  4. def get_id(model, slug):
  5. return model.objects.get(slug=slug).id
  6. class DeviceTestCase(TestCase):
  7. fixtures = ['dcim', 'ipam']
  8. def test_racked_device(self):
  9. test = DeviceForm(data={
  10. 'name': 'test',
  11. 'device_role': get_id(DeviceRole, 'leaf-switch'),
  12. 'tenant': None,
  13. 'manufacturer': get_id(Manufacturer, 'juniper'),
  14. 'device_type': get_id(DeviceType, 'qfx5100-48s'),
  15. 'site': get_id(Site, 'test1'),
  16. 'rack': '1',
  17. 'face': RACK_FACE_FRONT,
  18. 'position': 41,
  19. 'platform': get_id(Platform, 'juniper-junos'),
  20. 'status': STATUS_ACTIVE,
  21. })
  22. self.assertTrue(test.is_valid(), test.fields['position'].choices)
  23. self.assertTrue(test.save())
  24. def test_racked_device_occupied(self):
  25. test = DeviceForm(data={
  26. 'name': 'test',
  27. 'device_role': get_id(DeviceRole, 'leaf-switch'),
  28. 'tenant': None,
  29. 'manufacturer': get_id(Manufacturer, 'juniper'),
  30. 'device_type': get_id(DeviceType, 'qfx5100-48s'),
  31. 'site': get_id(Site, 'test1'),
  32. 'rack': '1',
  33. 'face': RACK_FACE_FRONT,
  34. 'position': 1,
  35. 'platform': get_id(Platform, 'juniper-junos'),
  36. 'status': STATUS_ACTIVE,
  37. })
  38. self.assertFalse(test.is_valid())
  39. def test_non_racked_device(self):
  40. test = DeviceForm(data={
  41. 'name': 'test',
  42. 'device_role': get_id(DeviceRole, 'pdu'),
  43. 'tenant': None,
  44. 'manufacturer': get_id(Manufacturer, 'servertech'),
  45. 'device_type': get_id(DeviceType, 'cwg-24vym415c9'),
  46. 'site': get_id(Site, 'test1'),
  47. 'rack': '1',
  48. 'face': None,
  49. 'position': None,
  50. 'platform': None,
  51. 'status': STATUS_ACTIVE,
  52. })
  53. self.assertTrue(test.is_valid())
  54. self.assertTrue(test.save())
  55. def test_non_racked_device_with_face(self):
  56. test = DeviceForm(data={
  57. 'name': 'test',
  58. 'device_role': get_id(DeviceRole, 'pdu'),
  59. 'tenant': None,
  60. 'manufacturer': get_id(Manufacturer, 'servertech'),
  61. 'device_type': get_id(DeviceType, 'cwg-24vym415c9'),
  62. 'site': get_id(Site, 'test1'),
  63. 'rack': '1',
  64. 'face': RACK_FACE_REAR,
  65. 'position': None,
  66. 'platform': None,
  67. 'status': STATUS_ACTIVE,
  68. })
  69. self.assertTrue(test.is_valid())
  70. self.assertTrue(test.save())