Lines Matching defs:csv
2 # csv package unit tests
9 import csv
26 Test the underlying C csv parser in ways that are not appropriate
36 self.assertRaises(csv.Error, ctor, arg, 'foo')
44 quoting=csv.QUOTE_ALL, quotechar='')
46 quoting=csv.QUOTE_ALL, quotechar=None)
48 quoting=csv.QUOTE_NONE, quotechar='')
51 self._test_arg_valid(csv.reader, [])
52 self.assertRaises(OSError, csv.reader, BadIterable())
55 self._test_arg_valid(csv.writer, StringIO())
60 self.assertRaises(OSError, csv.writer, BadWriter())
70 self.assertEqual(obj.dialect.quoting, csv.QUOTE_MINIMAL)
81 self._test_default_attrs(csv.reader, [])
84 self._test_default_attrs(csv.writer, StringIO())
90 quoting=csv.QUOTE_NONE, skipinitialspace=True,
98 self.assertEqual(obj.dialect.quoting, csv.QUOTE_NONE)
103 self._test_kw_attrs(csv.reader, [])
106 self._test_kw_attrs(csv.writer, StringIO())
116 quoting=csv.QUOTE_ALL
126 self.assertEqual(obj.dialect.quoting, csv.QUOTE_ALL)
131 self._test_dialect_attrs(csv.reader, [])
134 self._test_dialect_attrs(csv.writer, StringIO())
139 writer = csv.writer(fileobj, **kwargs)
147 writer = csv.writer(fileobj, **kwargs)
154 self._write_error_test(csv.Error, None)
157 self._write_error_test(csv.Error, [None], quoting = csv.QUOTE_NONE)
180 self._write_error_test(csv.Error, ['a',1,'p,q'],
181 quoting = csv.QUOTE_NONE)
183 quoting = csv.QUOTE_MINIMAL)
185 quoting = csv.QUOTE_NONNUMERIC)
187 quoting = csv.QUOTE_ALL)
189 quoting = csv.QUOTE_ALL)
194 self._write_error_test(csv.Error, ['a',1,'p,"q"'],
199 escapechar='\\', quoting = csv.QUOTE_MINIMAL)
201 escapechar='\\', quoting = csv.QUOTE_MINIMAL,
204 escapechar='\\', quoting = csv.QUOTE_NONE)
206 escapechar='\\', quoting = csv.QUOTE_NONE)
208 escapechar='\\', quoting=csv.QUOTE_NONE)
210 escapechar='\\', quoting=csv.QUOTE_MINIMAL)
212 escapechar='\\', quoting=csv.QUOTE_ALL)
214 escapechar='\\', quoting=csv.QUOTE_MINIMAL)
216 escapechar='\\', quoting=csv.QUOTE_NONE)
218 escapechar='\\', quoting=csv.QUOTE_MINIMAL)
220 escapechar='\\', quoting=csv.QUOTE_MINIMAL)
226 writer = csv.writer(sio, lineterminator=lineterminator)
238 self._write_error_test(csv.Error, iter([None]), quoting=csv.QUOTE_NONE)
245 writer = csv.writer(BrokenFile())
249 writer = csv.writer(fileobj)
257 writer = csv.writer(fileobj)
263 writer = csv.writer(fileobj)
269 writer = csv.writer(fileobj)
276 writer = csv.writer(fileobj)
287 writer = csv.writer(fileobj)
293 reader = csv.reader(input, **kwargs)
300 self.assertRaises(csv.Error, self._read_test,
304 self.assertRaises(csv.Error, self._read_test,
312 self.assertRaises(csv.Error, self._read_test, ['a,b\rc,d'], [])
313 self.assertRaises(csv.Error, self._read_test, ['a,b\nc,d'], [])
314 self.assertRaises(csv.Error, self._read_test, ['a,b\r\nc,d'], [])
320 self.assertRaises(csv.Error, self._read_test, ['a,"'], [], strict=True)
321 self.assertRaises(csv.Error, self._read_test, ['"a'], [], strict=True)
322 self.assertRaises(csv.Error, self._read_test,
354 quoting=csv.QUOTE_NONE, escapechar='\\')
357 quoting=csv.QUOTE_NONNUMERIC)
361 quoting=csv.QUOTE_NONNUMERIC)
373 limit = csv.field_size_limit()
379 csv.field_size_limit(size)
381 self.assertEqual(csv.field_size_limit(), size)
382 csv.field_size_limit(size-1)
383 self.assertRaises(csv.Error, self._read_test, [bigline], [])
384 self.assertRaises(TypeError, csv.field_size_limit, None)
385 self.assertRaises(TypeError, csv.field_size_limit, 1, None)
387 csv.field_size_limit(limit)
390 r = csv.reader(['line,1', 'line,2', 'line,3'])
403 writer = csv.writer(fileobj)
407 for i, row in enumerate(csv.reader(fileobj)):
412 writer = csv.writer(fileobj,quoting=csv.QUOTE_NONE,escapechar="\\")
416 for i, row in enumerate(csv.reader(fileobj,quoting=csv.QUOTE_NONE,escapechar="\\")):
421 self.assertRaises(TypeError, csv.list_dialects, None)
422 self.assertRaises(TypeError, csv.get_dialect)
423 self.assertRaises(csv.Error, csv.get_dialect, None)
424 self.assertRaises(csv.Error, csv.get_dialect, "nonesuch")
425 self.assertRaises(TypeError, csv.unregister_dialect)
426 self.assertRaises(csv.Error, csv.unregister_dialect, None)
427 self.assertRaises(csv.Error, csv.unregister_dialect, "nonesuch")
428 self.assertRaises(TypeError, csv.register_dialect, None)
429 self.assertRaises(TypeError, csv.register_dialect, None, None)
430 self.assertRaises(TypeError, csv.register_dialect, "nonesuch", 0, 0)
431 self.assertRaises(TypeError, csv.register_dialect, "nonesuch",
433 self.assertRaises(TypeError, csv.register_dialect, "nonesuch",
435 self.assertRaises(TypeError, csv.register_dialect, [])
438 class myexceltsv(csv.excel):
441 expected_dialects = csv.list_dialects() + [name]
443 csv.register_dialect(name, myexceltsv)
444 self.addCleanup(csv.unregister_dialect, name)
445 self.assertEqual(csv.get_dialect(name).delimiter, '\t')
446 got_dialects = sorted(csv.list_dialects())
451 csv.register_dialect(name, delimiter=';')
452 self.addCleanup(csv.unregister_dialect, name)
453 self.assertEqual(csv.get_dialect(name).delimiter, ';')
454 self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name)))
457 class mydialect(csv.Dialect):
463 quoting = csv.QUOTE_MINIMAL
466 csv.register_dialect(name, mydialect,
472 quoting=csv.QUOTE_ALL)
473 self.addCleanup(csv.unregister_dialect, name)
476 dialect = csv.get_dialect(name)
482 self.assertEqual(dialect.quoting, csv.QUOTE_ALL)
485 class myexceltsv(csv.Dialect):
487 self.assertRaises(csv.Error, myexceltsv)
490 class space(csv.excel):
492 quoting = csv.QUOTE_NONE
498 reader = csv.reader(fileobj, dialect=space())
506 writer = csv.writer(fileobj, *writeargs, **kwwriteargs)
512 class testA(csv.excel):
514 class testB(csv.excel):
516 class testC(csv.excel):
518 class testUni(csv.excel):
525 csv.register_dialect('testC', testC)
539 csv.unregister_dialect('testC')
543 self.assertRaises(TypeError, csv.reader, [], bad_attr = 0)
545 self.assertRaises(TypeError, csv.reader, [], delimiter = None)
546 self.assertRaises(TypeError, csv.reader, [], quoting = -1)
547 self.assertRaises(TypeError, csv.reader, [], quoting = 100)
550 for name in csv.list_dialects():
551 dialect = csv.get_dialect(name)
555 for name in csv.list_dialects():
556 dialect = csv.get_dialect(name)
565 reader = csv.reader(fileobj, dialect = self.dialect)
571 writer = csv.writer(fileobj, dialect = self.dialect)
673 class EscapedExcel(csv.excel):
674 quoting = csv.QUOTE_NONE
695 class QuotedEscapedExcel(csv.excel):
696 quoting = csv.QUOTE_NONNUMERIC
713 writer = csv.DictWriter(fileobj, fieldnames = ["f1", "f2", "f3"])
719 writer = csv.DictWriter(fileobj, fieldnames = ["f1", "f2", "f3"])
730 writer = csv.DictWriter(fileobj, fieldnames=["f1", "f2", "f3"])
740 self.assertRaises(TypeError, csv.DictWriter, fileobj)
744 writer = csv.DictWriter(fileobj, fieldnames = ["f1", "f2", "f3"])
756 self.assertRaises(ValueError, csv.DictWriter, fileobj, ['f1', 'f2'],
761 writer = csv.DictWriter(fileobj, ['f1', 'f2'], extrasaction="raise")
763 self.assertRaises(ValueError, csv.DictWriter.writerow, writer, dictrow)
767 writer = csv.DictWriter(fileobj, ['f1', 'f2'], extrasaction="ignore")
769 csv.DictWriter.writerow(writer, dictrow)
776 reader = csv.DictReader(fileobj,
784 reader = csv.DictReader(fileobj)
794 reader = csv.DictReader(fileobj,
795 fieldnames=next(csv.reader(fileobj)))
804 reader = csv.DictReader(fileobj)
814 reader = csv.DictReader(fileobj,
823 reader = csv.DictReader(fileobj,
832 reader = csv.DictReader(fileobj, restkey="_rest")
841 reader = csv.DictReader(fileobj,
857 reader = csv.DictReader(sample,
866 reader = csv.DictReader(["1,2,abc,4,5,6\r\n","\r\n",
875 reader = csv.DictReader(["1;2;abc;4;5;6\r\n"],
888 writer = csv.writer(fileobj, dialect="excel")
899 writer = csv.writer(fileobj, dialect="excel")
910 writer = csv.writer(fileobj, dialect="excel")
921 writer = csv.writer(fileobj, dialect="excel")
929 class mydialect(csv.Dialect):
935 quoting = csv.QUOTE_NONE
937 self.assertEqual(d.quoting, csv.QUOTE_NONE)
940 self.assertRaises(csv.Error, mydialect)
943 mydialect.quoting = csv.QUOTE_ALL
946 self.assertEqual(d.quoting, csv.QUOTE_ALL)
951 with self.assertRaises(csv.Error) as cm:
957 with self.assertRaises(csv.Error) as cm:
963 with self.assertRaises(csv.Error) as cm:
969 class mydialect(csv.Dialect):
975 quoting = csv.QUOTE_NONE
980 with self.assertRaises(csv.Error) as cm:
986 with self.assertRaises(csv.Error) as cm:
992 with self.assertRaises(csv.Error) as cm:
998 with self.assertRaises(csv.Error) as cm:
1004 with self.assertRaises(csv.Error) as cm:
1010 class mydialect(csv.Dialect):
1016 quoting = csv.QUOTE_NONE
1021 with self.assertRaisesRegex(csv.Error, '"escapechar" must be a 1-character string'):
1025 with self.assertRaisesRegex(csv.Error, '"escapechar" must be a 1-character string'):
1029 with self.assertRaisesRegex(csv.Error, '"escapechar" must be string or None, not bytes'):
1033 with self.assertRaisesRegex(csv.Error, '"escapechar" must be string or None, not int'):
1037 class mydialect(csv.Dialect):
1043 quoting = csv.QUOTE_NONE
1052 with self.assertRaises(csv.Error) as cm:
1059 class mydialect(csv.Dialect):
1066 self.assertRaises(csv.Error, create_invalid, field_name, "")
1067 self.assertRaises(csv.Error, create_invalid, field_name, "abc")
1068 self.assertRaises(csv.Error, create_invalid, field_name, b'x')
1069 self.assertRaises(csv.Error, create_invalid, field_name, 5)
1154 sniffer = csv.Sniffer()
1160 sniffer = csv.Sniffer()
1165 sniffer = csv.Sniffer()
1170 sniffer = csv.Sniffer()
1175 sniffer = csv.Sniffer()
1185 sniffer = csv.Sniffer()
1197 sniffer = csv.Sniffer()
1225 sniffer = csv.Sniffer()
1252 csv.reader(["a,b,c\r\n"])
1253 csv.reader(["a,b,c\r\n"])
1254 csv.reader(["a,b,c\r\n"])
1257 # if csv.reader() leaks, last delta should be 3 or more
1268 csv.writer(s)
1269 csv.writer(s)
1270 csv.writer(s)
1273 # if csv.writer() leaks, last delta should be 3 or more
1284 rdr = csv.reader(rows)
1301 writer = csv.writer(s)
1320 reader = csv.reader(fileobj)
1326 writer = csv.writer(fileobj)
1338 dw = csv.DictWriter(fileobject, keys)
1341 dr = csv.DictReader(fileobject)
1358 self.assertEqual(list(csv.DictReader(data)),
1366 self.assertEqual(list(csv.DictReader(data, restkey='OtherInfo')),
1375 self.assertEqual(list(csv.DictReader(data, fieldnames=['fname', 'lname'])),
1387 support.check__all__(self, csv, ('csv', '_csv'), extra=extra)
1391 class Foo(csv.Error): ...