test_forms.py 2.7 KB

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