From 8668e5eded4af31f3d5e9ed092fad5057f41c11b Mon Sep 17 00:00:00 2001 From: Per von Zweigbergk Date: Tue, 5 Sep 2023 08:43:44 +0200 Subject: [PATCH] Add tests for CSV autodetect, as well as cases for CSV with semicolon and TSV --- netbox/netbox/tests/test_import.py | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/netbox/netbox/tests/test_import.py b/netbox/netbox/tests/test_import.py index b852bdc50..59e2bdbb6 100644 --- a/netbox/netbox/tests/test_import.py +++ b/netbox/netbox/tests/test_import.py @@ -62,6 +62,61 @@ class CSVImportTestCase(ModelViewTestCase): ) return self._test_valid_tags(csv_data, ImportFormatChoices.CSV) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_valid_tags_csv_autodetect(self): + csv_data = ( + 'name,slug,tags', + 'Region 1,region-1,"alpha,bravo"', + 'Region 2,region-2,"charlie,delta"', + 'Region 3,region-3,echo', + 'Region 4,region-4,', + ) + return self._test_valid_tags(csv_data, ImportFormatChoices.AUTO) + + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_valid_tags_csv_semicolon(self): + csv_data = ( + 'name;slug;tags', + 'Region 1;region-1;"alpha,bravo"', + 'Region 2;region-2;charlie,delta', + 'Region 3;region-3;echo', + 'Region 4;region-4;', + ) + return self._test_valid_tags(csv_data, ImportFormatChoices.CSV_SEMICOLON) + + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_valid_tags_csv_semicolon_autodetect(self): + csv_data = ( + 'name;slug;tags', + 'Region 1;region-1;"alpha,bravo"', + 'Region 2;region-2;charlie,delta', + 'Region 3;region-3;echo', + 'Region 4;region-4;', + ) + return self._test_valid_tags(csv_data, ImportFormatChoices.AUTO) + + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_valid_tags_tsv(self): + csv_data = ( + 'name\tslug\ttags', + 'Region 1\tregion-1\t"alpha,bravo"', + 'Region 2\tregion-2\tcharlie,delta', + 'Region 3\tregion-3\techo', + 'Region 4\tregion-4\t', + ) + return self._test_valid_tags(csv_data, ImportFormatChoices.TSV) + + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) + def test_valid_tags_tsv_autodetect(self): + csv_data = ( + 'name\tslug\ttags', + 'Region 1\tregion-1\t"alpha,bravo"', + 'Region 2\tregion-2\tcharlie,delta', + 'Region 3\tregion-3\techo', + 'Region 4\tregion-4\t', + ) + return self._test_valid_tags(csv_data, ImportFormatChoices.AUTO) + @override_settings(EXEMPT_VIEW_PERMISSIONS=['*']) def test_invalid_tags(self): csv_data = (