mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-23 13:52:17 -06:00
Adds csv dialect detection to bulk import view (#13563)
* adds csv dialect detection to bulk import view #13239 * adds sane delimiters for dialect detection #13239 * adds csv delimiter tests #13239 * adds csv delimiter on the form * pass delimiter to clean_csv method #13239 * fix tests for csv import #13239 * fix tests for csv import #13239 * fix tests for csv import #13239 * fix tests for csv import #13239 * Improve auto-detection of import data format * Misc cleanup * Include tab as a supported delimiting character for auto-detection * Move delimiting chars to a separate constant for easy reference --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
committed by
GitHub
parent
39cb9c32d6
commit
b7cfb2f7d9
@@ -331,3 +331,36 @@ class ImportFormTest(TestCase):
|
||||
form._detect_format('')
|
||||
with self.assertRaises(forms.ValidationError):
|
||||
form._detect_format('?')
|
||||
|
||||
def test_csv_delimiters(self):
|
||||
form = BulkImportForm()
|
||||
|
||||
data = (
|
||||
"a,b,c\n"
|
||||
"1,2,3\n"
|
||||
"4,5,6\n"
|
||||
)
|
||||
self.assertEqual(form._clean_csv(data, delimiter=','), [
|
||||
{'a': '1', 'b': '2', 'c': '3'},
|
||||
{'a': '4', 'b': '5', 'c': '6'},
|
||||
])
|
||||
|
||||
data = (
|
||||
"a;b;c\n"
|
||||
"1;2;3\n"
|
||||
"4;5;6\n"
|
||||
)
|
||||
self.assertEqual(form._clean_csv(data, delimiter=';'), [
|
||||
{'a': '1', 'b': '2', 'c': '3'},
|
||||
{'a': '4', 'b': '5', 'c': '6'},
|
||||
])
|
||||
|
||||
data = (
|
||||
"a\tb\tc\n"
|
||||
"1\t2\t3\n"
|
||||
"4\t5\t6\n"
|
||||
)
|
||||
self.assertEqual(form._clean_csv(data, delimiter='\t'), [
|
||||
{'a': '1', 'b': '2', 'c': '3'},
|
||||
{'a': '4', 'b': '5', 'c': '6'},
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user