@@ -176,6 +176,7 @@ def test_write_bigfield(self):
176
176
bigstring = 'X' * 50000
177
177
self ._write_test ([bigstring ,bigstring ], '%s,%s' % \
178
178
(bigstring , bigstring ))
179
+
179
180
# TODO: RUSTPYTHON quoting style check is unsupported
180
181
@unittest .expectedFailure
181
182
def test_write_quoting (self ):
@@ -227,6 +228,7 @@ def test_write_escape(self):
227
228
escapechar = '\\ ' , quoting = csv .QUOTE_MINIMAL )
228
229
self ._write_test (['C\\ ' , '6' , '7' , 'X"' ], 'C\\ \\ ,6,7,"X"""' ,
229
230
escapechar = '\\ ' , quoting = csv .QUOTE_MINIMAL )
231
+
230
232
# TODO: RUSTPYTHON lineterminator double char unsupported
231
233
@unittest .expectedFailure
232
234
def test_write_lineterminator (self ):
@@ -239,6 +241,7 @@ def test_write_lineterminator(self):
239
241
self .assertEqual (sio .getvalue (),
240
242
f'a,b{ lineterminator } '
241
243
f'1,2{ lineterminator } ' )
244
+
242
245
# TODO: RUSTPYTHON ''\r\n to ""\r\n unspported
243
246
@unittest .expectedFailure
244
247
def test_write_iterable (self ):
@@ -305,12 +308,13 @@ def _read_test(self, input, expect, **kwargs):
305
308
result = list (reader )
306
309
self .assertEqual (result , expect )
307
310
311
+ # TODO RUSTPYTHON strict mode is unsupported
312
+ @unittest .expectedFailure
308
313
def test_read_oddinputs (self ):
309
314
self ._read_test ([], [])
310
315
self ._read_test (['' ], [[]])
311
- # TODO RUSTPYTHON strict mode is unsupported
312
- # self.assertRaises(csv.Error, self._read_test,
313
- # ['"ab"c'], None, strict = 1)
316
+ self .assertRaises (csv .Error , self ._read_test ,
317
+ ['"ab"c' ], None , strict = 1 )
314
318
self ._read_test (['"ab"c' ], [['abc' ]], doublequote = 0 )
315
319
316
320
self .assertRaises (csv .Error , self ._read_test ,
@@ -324,6 +328,7 @@ def test_read_eol(self):
324
328
self .assertRaises (csv .Error , self ._read_test , ['a,b\r c,d' ], [])
325
329
self .assertRaises (csv .Error , self ._read_test , ['a,b\n c,d' ], [])
326
330
self .assertRaises (csv .Error , self ._read_test , ['a,b\r \n c,d' ], [])
331
+
327
332
# TODO RUSTPYTHON double quote umimplement
328
333
@unittest .expectedFailure
329
334
def test_read_eof (self ):
@@ -335,12 +340,13 @@ def test_read_eof(self):
335
340
self .assertRaises (csv .Error , self ._read_test ,
336
341
['^' ], [], escapechar = '^' , strict = True )
337
342
343
+ # TODO RUSTPYTHON
344
+ @unittest .expectedFailure
338
345
def test_read_nul (self ):
339
346
self ._read_test (['\0 ' ], [['\0 ' ]])
340
347
self ._read_test (['a,\0 b,c' ], [['a' , '\0 b' , 'c' ]])
341
348
self ._read_test (['a,b\0 ,c' ], [['a' , 'b\0 ' , 'c' ]])
342
- # TODO RUSTPYTHON
343
- # self._read_test(['a,b\\\0,c'], [['a', 'b\0', 'c']], escapechar='\\')
349
+ self ._read_test (['a,b\\ \0 ,c' ], [['a' , 'b\0 ' , 'c' ]], escapechar = '\\ ' )
344
350
self ._read_test (['a,"\0 b",c' ], [['a' , '\0 b' , 'c' ]])
345
351
346
352
def test_read_delimiter (self ):
@@ -548,16 +554,16 @@ class unspecified():
548
554
549
555
csv .register_dialect ('testC' , testC )
550
556
try :
551
- # self.compare_dialect_123("1,2,3\r\n")
552
- # self.compare_dialect_123("1,2,3\r\n", dialect=None)
553
- # self.compare_dialect_123("1,2,3\r\n", dialect=unspecified)
554
- # self.compare_dialect_123("1\t2\t3\r\n", testA)
555
- # self.compare_dialect_123("1:2:3\r\n", dialect=testB())
556
- # self.compare_dialect_123("1|2|3\r\n", dialect='testC')
557
- self .compare_dialect_123 ("1;2;3\r \n " , dialect = testA ,delimiter = ';' )
558
- # TODO: RUSTPYTHON
559
- # self.compare_dialect_123("1\u039B2\u039B3\r\n",
560
- # dialect=testUni)
557
+ self .compare_dialect_123 ("1,2,3\r \n " )
558
+ self .compare_dialect_123 ("1,2,3\r \n " , dialect = None )
559
+ self .compare_dialect_123 ("1,2,3\r \n " , dialect = unspecified )
560
+ self .compare_dialect_123 ("1\t 2\t 3\r \n " , testA )
561
+ self .compare_dialect_123 ("1:2:3\r \n " , dialect = testB ())
562
+ self .compare_dialect_123 ("1|2|3\r \n " , dialect = 'testC' )
563
+ self .compare_dialect_123 ("1;2;3\r \n " , dialect = testA ,
564
+ delimiter = ';' )
565
+ self .compare_dialect_123 ("1\u039B 2\u039B 3\r \n " ,
566
+ dialect = testUni )
561
567
562
568
finally :
563
569
csv .unregister_dialect ('testC' )
@@ -610,7 +616,7 @@ def test_simple(self):
610
616
611
617
def test_blankline (self ):
612
618
self .readerAssertEqual ('' , [])
613
-
619
+
614
620
def test_empty_fields (self ):
615
621
self .readerAssertEqual (',' , [['' , '' ]])
616
622
@@ -662,6 +668,7 @@ def test_quoted_quote(self):
662
668
[['1' , '2' , '3' ,
663
669
'"I see," said the blind man' ,
664
670
'as he picked up his hammer and saw' ]])
671
+
665
672
# Rustpython TODO
666
673
@unittest .expectedFailure
667
674
def test_quoted_nl (self ):
@@ -703,10 +710,12 @@ class EscapedExcel(csv.excel):
703
710
704
711
class TestEscapedExcel (TestCsvBase ):
<
F438
/code>
705
712
dialect = EscapedExcel ()
713
+
706
714
# TODO RUSTPYTHON
707
715
@unittest .expectedFailure
708
716
def test_escape_fieldsep (self ):
709
717
self .writerAssertEqual ([['abc,def' ]], 'abc\\ ,def\r \n ' )
718
+
710
719
# TODO RUSTPYTHON
711
720
@unittest .expectedFailure
712
721
def test_read_escape_fieldsep (self ):
@@ -732,6 +741,7 @@ class TestQuotedEscapedExcel(TestCsvBase):
732
741
733
742
def test_write_escape_fieldsep (self ):
734
743
self .writerAssertEqual ([['abc,def' ]], '"abc,def"\r \n ' )
744
+
735
745
# TODO RUSTPYTHON
736
746
@unittest .expectedFailure
737
747
def test_read_escape_fieldsep (self ):
@@ -929,6 +939,7 @@ def test_read_multi(self):
929
939
"i2" : '17' ,
930
940
"s1" : 'abc' ,
931
941
"s2" : 'def' })
942
+
932
943
# TODO RUSTPYTHON
933
944
@unittest .expectedFailure
934
945
def test_read_with_blanks (self ):
@@ -1002,19 +1013,19 @@ class mydialect(csv.Dialect):
1002
1013
skipinitialspace = True
1003
1014
lineterminator = '\r \n '
1004
1015
quoting = csv .QUOTE_NONE
1005
- # d = mydialect()
1006
- # self.assertEqual(d.quoting, csv.QUOTE_NONE)
1016
+ d = mydialect ()
1017
+ self .assertEqual (d .quoting , csv .QUOTE_NONE )
1007
1018
1008
- # mydialect.quoting = None
1009
- # self.assertRaises(csv.Error, mydialect)
1019
+ mydialect .quoting = None
1020
+ self .assertRaises (csv .Error , mydialect )
1010
1021
1011
- # mydialect.doublequote = True
1012
- # mydialect.quoting = csv.QUOTE_ALL
1013
- # mydialect.quotechar = '"'
1014
- # d = mydialect()
1015
- # self.assertEqual(d.quoting, csv.QUOTE_ALL)
1016
- # self.assertEqual(d.quotechar, '"')
1017
- # self.assertTrue(d.doublequote)
1022
+ mydialect .doublequote = True
1023
+ mydialect .quoting = csv .QUOTE_ALL
1024
+ mydialect .quotechar = '"'
1025
+ d = mydialect ()
1026
+ self .assertEqual (d .quoting , csv .QUOTE_ALL )
1027
+ self .assertEqual (d .quotechar , '"' )
1028
+ self .assertTrue (d .doublequote )
1018
1029
1019
1030
mydialect .quotechar = ""
1020
1031
with self .assertRaises (csv .Error ) as cm :
@@ -1423,8 +1434,7 @@ def test_ordered_dict_reader(self):
1423
1434
Under1
1424
1435
John,Cleese
1425
1436
''' ).splitlines ()
1426
-
1427
- print (list (csv .DictReader (data )))
1437
+
1428
1438
self .assertEqual (list (csv .DictReader (data )),
1429
1439
[OrderedDict ([('FirstName' , 'Eric' ), ('LastName' , 'Idle' )]),
1430
1440
OrderedDict ([('FirstName' , 'Graham' ), ('LastName' , 'Chapman' ),
0 commit comments