@@ -86,14 +86,12 @@ def _test_arg_valid(self, ctor, arg):
86
86
self .assertRaises (ValueError , ctor , arg ,
87
87
quotechar = '\x85 ' , lineterminator = '\x85 ' )
88
88
89
- # TODO: RUSTPYTHON
90
- @unittest .expectedFailure
89
+ @unittest .expectedFailure # TODO: RUSTPYTHON
91
90
def test_reader_arg_valid (self ):
92
91
self ._test_arg_valid (csv .reader , [])
93
92
self .assertRaises (OSError , csv .reader , BadIterable ())
94
93
95
- # TODO: RUSTPYTHON
96
- @unittest .expectedFailure
94
+ @unittest .expectedFailure # TODO: RUSTPYTHON
97
95
def test_writer_arg_valid (self ):
98
96
self ._test_arg_valid (csv .writer , StringIO ())
99
97
class BadWriter :
@@ -214,8 +212,7 @@ def test_write_bigfield(self):
214
212
self ._write_test ([bigstring ,bigstring ], '%s,%s' % \
215
213
(bigstring , bigstring ))
216
214
217
- # TODO: RUSTPYTHON
218
- @unittest .expectedFailure
215
+ @unittest .expectedFailure # TODO: RUSTPYTHON
219
216
def test_write_quoting (self ):
220
217
self ._write_test (['a' ,1 ,'p,q' ], 'a,1,"p,q"' )
221
218
self ._write_error_test (csv .Error , ['a' ,1 ,'p,q' ],
@@ -233,8 +230,7 @@ def test_write_quoting(self):
233
230
self ._write_test (['a' ,'' ,None ,1 ], '"a","",,"1"' ,
234
231
quoting = csv .QUOTE_NOTNULL )
235
232
236
- # TODO: RUSTPYTHON
237
- @unittest .expectedFailure
233
+ @unittest .expectedFailure # TODO: RUSTPYTHON
238
234
def test_write_escape (self ):
239
235
self ._write_test (['a' ,1 ,'p,q' ], 'a,1,"p,q"' ,
240
236
escapechar = '\\ ' )
@@ -266,8 +262,7 @@ def test_write_escape(self):
266
262
self ._write_test (['C\\ ' , '6' , '7' , 'X"' ], 'C\\ \\ ,6,7,"X"""' ,
267
263
escapechar = '\\ ' , quoting = csv .QUOTE_MINIMAL )
268
264
269
- # TODO: RUSTPYTHON
270
- @unittest .expectedFailure
265
+ @unittest .expectedFailure # TODO: RUSTPYTHON
271
266
def test_write_lineterminator (self ):
272
267
for lineterminator in '\r \n ' , '\n ' , '\r ' , '!@#' , '\0 ' :
273
268
with self .subTest (lineterminator = lineterminator ):
@@ -281,8 +276,7 @@ def test_write_lineterminator(self):
281
276
f'1,2{ lineterminator } '
282
277
f'"\r ","\n "{ lineterminator } ' )
283
278
284
- # TODO: RUSTPYTHON
285
- @unittest .expectedFailure
279
+ @unittest .expectedFailure # TODO: RUSTPYTHON
286
280
def test_write_iterable (self ):
287
281
self ._write_test (iter (['a' , 1 , 'p,q' ]), 'a,1,"p,q"' )
288
282
self ._write_test (iter (['a' , 1 , None ]), 'a,1,' )
@@ -325,8 +319,7 @@ def test_writerows_with_none(self):
325
319
self .assertEqual (fileobj .read (), 'a\r \n ""\r \n ' )
326
320
327
321
328
- # TODO: RUSTPYTHON
329
- @unittest .expectedFailure
322
+ @unittest .expectedFailure # TODO: RUSTPYTHON
330
323
def test_write_empty_fields (self ):
331
324
self ._write_test ((), '' )
332
325
self ._write_test (['' ], '""' )
@@ -340,8 +333,7 @@ def test_write_empty_fields(self):
340
333
self ._write_test (['' , '' ], ',' )
341
334
self ._write_test ([None , None ], ',' )
342
335
343
- # TODO: RUSTPYTHON
344
- @unittest .expectedFailure
336
+ @unittest .expectedFailure # TODO: RUSTPYTHON
345
337
def test_write_empty_fields_space_delimiter (self ):
346
338
self ._write_test (['' ], '""' , delimiter = ' ' , skipinitialspace = False )
347
339
self ._write_test (['' ], '""' , delimiter = ' ' , skipinitialspace = True )
@@ -382,8 +374,7 @@ def _read_test(self, input, expect, **kwargs):
382
374
result = list (reader )
383
375
self .assertEqual (result , expect )
384
376
385
- # TODO: RUSTPYTHON
386
- @unittest .expectedFailure
377
+ @unittest .expectedFailure # TODO: RUSTPYTHON
387
378
def test_read_oddinputs (self ):
388
379
self ._read_test ([], [])
389
380
self ._read_test (['' ], [[]])
@@ -394,8 +385,7 @@ def test_read_oddinputs(self):
394
385
self .assertRaises (csv .Error , self ._read_test ,
395
386
[b'abc' ], None )
396
387
397
- # TODO: RUSTPYTHON
398
- @unittest .expectedFailure
388
+ @unittest .expectedFailure # TODO: RUSTPYTHON
399
389
def test_read_eol (self ):
400
390
self ._read_test (['a,b' , 'c,d' ], [['a' ,'b' ], ['c' ,'d' ]])
401
391
self ._read_test (['a,b\n ' , 'c,d\n ' ], [['a' ,'b' ], ['c' ,'d' ]])
@@ -410,8 +400,7 @@ def test_read_eol(self):
410
400
with self .assertRaisesRegex (csv .Error , errmsg ):
411
401
next (csv .reader (['a,b\r \n c,d' ]))
412
402
413
- # TODO: RUSTPYTHON
414
- @unittest .expectedFailure
403
+ @unittest .expectedFailure # TODO: RUSTPYTHON
415
404
def test_read_eof (self ):
416
405
self ._read_test (['a,"' ], [['a' , '' ]])
417
406
self ._read_test (['"a' ], [['a' ]])
@@ -421,8 +410,7 @@ def test_read_eof(self):
421
410
self .assertRaises (csv .Error , self ._read_test ,
422
411
['^' ], [], escapechar = '^' , strict = True )
423
412
424
- # TODO: RUSTPYTHON
425
- @unittest .expectedFailure
413
+ @unittest .expectedFailure # TODO: RUSTPYTHON
426
414
def test_read_nul (self ):
427
415
self ._read_test (['\0 ' ], [['\0 ' ]])
428
416
self ._read_test (['a,\0 b,c' ], [['a' , '\0 b' , 'c' ]])
@@ -435,8 +423,7 @@ def test_read_delimiter(self):
435
423
self ._read_test (['a;b;c' ], [['a' , 'b' , 'c' ]], delimiter = ';' )
436
424
self ._read_test (['a\0 b\0 c' ], [['a' , 'b' , 'c' ]], delimiter = '\0 ' )
437
425
438
- # TODO: RUSTPYTHON
439
- @unittest .expectedFailure
426
+ @unittest .expectedFailure # TODO: RUSTPYTHON
440
427
def test_read_escape (self ):
441
428
self ._read_test (['a,\\ b,c' ], [['a' , 'b' , 'c' ]], escapechar = '\\ ' )
442
429
self ._read_test (['a,b\\ ,c' ], [['a' , 'b,c' ]], escapechar = '\\ ' )
@@ -449,8 +436,7 @@ def test_read_escape(self):
449
436
self ._read_test (['a,\\ b,c' ], [['a' , '\\ b' , 'c' ]], escapechar = None )
450
437
self ._read_test (['a,\\ b,c' ], [['a' , '\\ b' , 'c' ]])
451
438
452
- # TODO: RUSTPYTHON
453
- @unittest .expectedFailure
439
+ @unittest .expectedFailure # TODO: RUSTPYTHON
454
440
def test_read_quoting (self ):
455
441
self ._read_test (['1,",3,",5' ], [['1' , ',3,' , '5' ]])
456
442
self ._read_test (['1,",3,",5' ], [['1' , '"' , '3' , '"' , '5' ]],
@@ -487,8 +473,7 @@ def test_read_quoting(self):
487
473
self ._read_test (['1\\ .5,\\ .5,"\\ .5"' ], [[1.5 , 0.5 , ".5" ]],
488
474
quoting = csv .QUOTE_STRINGS , escapechar = '\\ ' )
489
475
490
- # TODO: RUSTPYTHON; panic
491
- @unittest .skip ("TODO: RUSTPYTHON; slice index starts at 1 but ends at 0" )
476
+ @unittest .skip ('TODO: RUSTPYTHON; slice index starts at 1 but ends at 0' )
492
477
def test_read_skipinitialspace (self ):
493
478
self ._read_test (['no space, space, spaces,\t tab' ],
494
479
[['no space' , 'space' , 'spaces' , '\t tab' ]],
@@ -503,8 +488,7 @@ def test_read_skipinitialspace(self):
503
488
[[None , None , None ]],
504
489
skipinitialspace = True , quoting = csv .QUOTE_STRINGS )
505
490
506
- # TODO: RUSTPYTHON
507
- @unittest .expectedFailure
491
+ @unittest .expectedFailure # TODO: RUSTPYTHON
508
492
def test_read_space_delimiter (self ):
509
493
self ._read_test (['a b' , ' a ' , ' ' , '' ],
510
494
[['a' , '' , '' , 'b' ], ['' , '' , 'a' , '' , '' ], ['' , '' , '' ], []],
@@ -544,8 +528,7 @@ def test_read_linenum(self):
544
528
self .assertRaises (StopIteration , next , r )
545
529
self .assertEqual (r .line_num , 3 )
546
530
547
- # TODO: RUSTPYTHON
548
- @unittest .expectedFailure
531
+ @unittest .expectedFailure # TODO: RUSTPYTHON
549
532
def test_roundtrip_quoteed_newlines (self ):
550
533
rows = [
551
534
['\n a' , 'b\n c' , 'd\n ' ],
@@ -564,8 +547,7 @@ def test_roundtrip_quoteed_newlines(self):
564
547
for i , row in enumerate (csv .reader (fileobj )):
565
548
self .assertEqual (row , rows [i ])
566
549
567
- # TODO: RUSTPYTHON
568
- @unittest .expectedFailure
550
+ @unittest .expectedFailure # TODO: RUSTPYTHON
569
551
def test_roundtrip_escaped_unquoted_newlines (self ):
570
552
rows = [
571
553
['\n a' , 'b\n c' , 'd\n ' ],
@@ -680,8 +662,7 @@ def compare_dialect_123(self, expected, *writeargs, **kwwriteargs):
680
662
fileobj .seek (0 )
681
663
self .assertEqual (fileobj .read (), expected )
682
664
683
- # TODO: RUSTPYTHON
684
- @unittest .expectedFailure
665
+ @unittest .expectedFailure # TODO: RUSTPYTHON
685
666
def test_dialect_apply (self ):
686
667
class testA (csv .excel ):
687
668
delimiter = "\t "
@@ -717,8 +698,7 @@ def test_copy(self):
717
698
dialect = csv .get_dialect (name )
718
699
self .assertRaises (TypeError , copy .copy , dialect )
719
700
720
- # TODO: RUSTPYTHON
721
- @unittest .expectedFailure
701
+ @unittest .expectedFailure # TODO: RUSTPYTHON
722
702
def test_pickle (self ):
723
703
for name in csv .list_dialects ():
724
704
dialect = csv .get_dialect (name )
@@ -805,8 +785,7 @@ def test_quoted_quote(self):
805
785
'"I see," said the blind man' ,
806
786
'as he picked up his hammer and saw' ]])
807
787
808
- # TODO: RUSTPYTHON
809
- @unittest .expectedFailure
788
+ @unittest .expectedFailure # TODO: RUSTPYTHON
810
789
def test_quoted_nl (self ):
811
790
input = '''\
812
791
1,2,3,"""I see,""
@@ -847,21 +826,18 @@ class EscapedExcel(csv.excel):
847
826
class TestEscapedExcel (TestCsvBase ):
848
827
dialect = EscapedExcel ()
849
828
850
- # TODO: RUSTPYTHON
851
- @unittest .expectedFailure
829
+ @unittest .expectedFailure # TODO: RUSTPYTHON
852
830
def test_escape_fieldsep (self ):
853
831
self .writerAssertEqual ([['abc,def' ]], 'abc\\ ,def\r \n ' )
854
832
855
- # TODO: RUSTPYTHON
856
- @unittest .expectedFailure
833
+ @unittest .expectedFailure # TODO: RUSTPYTHON
857
834
def test_read_escape_fieldsep (self ):
858
835
self .readerAssertEqual ('abc\\ ,def\r \n ' , [['abc,def' ]])
859
836
860
837
class TestDialectUnix (TestCsvBase ):
861
838
dialect = 'unix'
862
839
863
- # TODO: RUSTPYTHON
864
- @unittest .expectedFailure
840
+ @unittest .expectedFailure # TODO: RUSTPYTHON
865
841
def test_simple_writer (self ):
866
842
self .writerAssertEqual ([[1 , 'abc def' , 'abc' ]], '"1","abc def","abc"\n ' )
867
843
@@ -878,8 +854,7 @@ class TestQuotedEscapedExcel(TestCsvBase):
878
854
def test_write_escape_fieldsep (self ):
879
855
self .writerAssertEqual ([['abc,def' ]], '"abc,def"\r \n ' )
880
856
881
- # TODO: RUSTPYTHON
882
- @unittest .expectedFailure
857
+ @unittest .expectedFailure # TODO: RUSTPYTHON
883
858
def test_read_escape_fieldsep (self ):
884
859
self .readerAssertEqual ('"abc\\ ,def"\r \n ' , [['abc,def' ]])
885
860
@@ -1076,8 +1051,7 @@ def test_read_multi(self):
1076
1051
"s1" : 'abc' ,
1077
1052
"s2" : 'def' })
1078
1053
1079
- # TODO: RUSTPYTHON
1080
- @unittest .expectedFailure
1054
+ @unittest .expectedFailure # TODO: RUSTPYTHON
1081
1055
def test_read_with_blanks (self ):
1082
1056
reader = csv .DictReader (["1,2,abc,4,5,6\r \n " ,"\r \n " ,
1083
1057
"1,2,abc,4,5,6\r \n " ],
@@ -1129,8 +1103,7 @@ def test_float_write(self):
1129
1103
fileobj .seek (0 )
1130
1104
self .assertEqual (fileobj .read (), expected )
1131
1105
1132
- # TODO: RUSTPYTHON
1133
- @unittest .expectedFailure
1106
+ @unittest .expectedFailure # TODO: RUSTPYTHON
1134
1107
def test_char_write (self ):
1135
1108
import array , string
1136
1109
a = array .array ('w' , string .ascii_letters )
@@ -1278,8 +1251,7 @@ class mydialect(csv.Dialect):
1278
1251
self .assertEqual (str (cm .exception ),
1279
1252
'"lineterminator" must be a string' )
1280
1253
1281
- # TODO: RUSTPYTHON
1282
- @unittest .expectedFailure
1254
+ @unittest .expectedFailure # TODO: RUSTPYTHON
1283
1255
def test_invalid_chars (self ):
1284
1256
def create_invalid (field_name , value , ** kwargs ):
1285
1257
class mydialect (csv .Dialect ):
0 commit comments