|
|
@@ -986,6 +986,59 @@ inventory-items:
|
|
|
ii1 = InventoryItemTemplate.objects.first()
|
|
|
self.assertEqual(ii1.name, 'Inventory Item 1')
|
|
|
|
|
|
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
|
|
|
+ def test_import_error_numbering(self):
|
|
|
+ # Add all required permissions to the test user
|
|
|
+ self.add_permissions(
|
|
|
+ 'dcim.view_devicetype',
|
|
|
+ 'dcim.add_devicetype',
|
|
|
+ 'dcim.add_consoleporttemplate',
|
|
|
+ 'dcim.add_consoleserverporttemplate',
|
|
|
+ 'dcim.add_powerporttemplate',
|
|
|
+ 'dcim.add_poweroutlettemplate',
|
|
|
+ 'dcim.add_interfacetemplate',
|
|
|
+ 'dcim.add_frontporttemplate',
|
|
|
+ 'dcim.add_rearporttemplate',
|
|
|
+ 'dcim.add_modulebaytemplate',
|
|
|
+ 'dcim.add_devicebaytemplate',
|
|
|
+ 'dcim.add_inventoryitemtemplate',
|
|
|
+ )
|
|
|
+
|
|
|
+ import_data = '''
|
|
|
+---
|
|
|
+manufacturer: Manufacturer 1
|
|
|
+model: TEST-2001
|
|
|
+slug: test-2001
|
|
|
+u_height: 1
|
|
|
+module-bays:
|
|
|
+ - name: Module Bay 1-1
|
|
|
+ - name: Module Bay 1-2
|
|
|
+---
|
|
|
+- manufacturer: Manufacturer 1
|
|
|
+ model: TEST-2002
|
|
|
+ slug: test-2002
|
|
|
+ u_height: 1
|
|
|
+ module-bays:
|
|
|
+ - name: Module Bay 2-1
|
|
|
+ - name: Module Bay 2-2
|
|
|
+ - not_name: Module Bay 2-3
|
|
|
+- manufacturer: Manufacturer 1
|
|
|
+ model: TEST-2003
|
|
|
+ slug: test-2003
|
|
|
+ u_height: 1
|
|
|
+ module-bays:
|
|
|
+ - name: Module Bay 3-1
|
|
|
+'''
|
|
|
+ form_data = {
|
|
|
+ 'data': import_data,
|
|
|
+ 'format': 'yaml'
|
|
|
+ }
|
|
|
+
|
|
|
+ response = self.client.post(reverse('dcim:devicetype_bulk_import'), data=form_data, follow=True)
|
|
|
+ self.assertHttpStatus(response, 200)
|
|
|
+ # TODO record index should be 2
|
|
|
+ self.assertContains(response, "Record 3 module-bays[3].name: This field is required.")
|
|
|
+
|
|
|
def test_export_objects(self):
|
|
|
url = reverse('dcim:devicetype_list')
|
|
|
self.add_permissions('dcim.view_devicetype')
|