From 760b85b841ab4a11431c83f5be20b2600dcdd02a Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 16 Aug 2023 12:59:28 -0700 Subject: [PATCH] 11617 fix test cases --- netbox/netbox/tests/test_import.py | 12 ++++++------ netbox/netbox/views/generic/bulk_views.py | 7 ++++++- netbox/utilities/testing/views.py | 12 ++++++------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/netbox/netbox/tests/test_import.py b/netbox/netbox/tests/test_import.py index d5d8861f9..5b767c5a0 100644 --- a/netbox/netbox/tests/test_import.py +++ b/netbox/netbox/tests/test_import.py @@ -240,8 +240,8 @@ class CSVImportTestCase(ModelViewTestCase): @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_invalid_header_csv(self): csv_data = ( - 'name,slug,tags,xxx', - 'Region 1,region-1,"alpha,bravo",yyy', + 'name,slug,xxx', + 'Region 1,region-1,yyy', ) data = { @@ -263,8 +263,8 @@ class CSVImportTestCase(ModelViewTestCase): @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_invalid_header_yaml(self): csv_data = ( - 'name,slug,tags,xxx', - 'Region 1,region-1,"alpha,bravo",yyy', + 'name,slug,xxx', + 'Region 1,region-1,yyy', ) data = { @@ -286,8 +286,8 @@ class CSVImportTestCase(ModelViewTestCase): @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_invalid_header_json(self): csv_data = ( - 'name,slug,tags,xxx', - 'Region 1,region-1,"alpha,bravo",yyy', + 'name,slug,xxx', + 'Region 1,region-1,yyy', ) data = { diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index 1334d2c19..3884fb401 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -404,8 +404,13 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView): required_fields = [ name for name, field in form_fields.items() if field.required ] + if not headers: - headers = headers_to_dict(list(record.keys())) + keys = list(record.keys()) + if object_id: + keys.append("id") + headers = headers_to_dict(keys) + validate_import_headers(headers, form_fields, required_fields, allow_extra_columns=isinstance(model_form, (DeviceTypeImportForm, ModuleTypeImportForm))) # When updating, omit all form fields other than those specified in the record. (No diff --git a/netbox/utilities/testing/views.py b/netbox/utilities/testing/views.py index e2a703baa..3e828c6a6 100644 --- a/netbox/utilities/testing/views.py +++ b/netbox/utilities/testing/views.py @@ -668,7 +668,7 @@ class ViewTestCases: self.assertHttpStatus(self.client.get(self._get_url('import')), 200) # Test POST with permission - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(self._get_queryset().count(), initial_count + len(self.csv_data) - 1) @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) @@ -692,7 +692,7 @@ class ViewTestCases: self.assertHttpStatus(self.client.get(self._get_url('import')), 200) # Test POST with permission - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(self._get_queryset().count(), initial_count + len(self.csv_data) - 1) @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) @@ -756,7 +756,7 @@ class ViewTestCases: obj_perm.object_types.add(ContentType.objects.get_for_model(self.model)) # Test POST with permission - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(initial_count, self._get_queryset().count()) reader = csv.DictReader(array, delimiter=',') @@ -794,7 +794,7 @@ class ViewTestCases: obj_perm.object_types.add(ContentType.objects.get_for_model(self.model)) # Test POST with permission - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(initial_count, self._get_queryset().count()) reader = csv.DictReader(array, delimiter=',') @@ -866,7 +866,7 @@ class ViewTestCases: obj_perm.save() # Import permitted objects - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(self._get_queryset().count(), initial_count + len(self.csv_data) - 1) @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) @@ -896,7 +896,7 @@ class ViewTestCases: obj_perm.save() # Import permitted objects - self.assertHttpStatus(self.client.post(self._get_url('import'), data), 200) + self.assertHttpStatus(self.client.post(self._get_url('import'), data), 302) self.assertEqual(self._get_queryset().count(), initial_count + len(self.csv_data) - 1) class BulkEditObjectsViewTestCase(ModelViewTestCase):