1
1
#!/usr/bin/env python3
2
2
import _codecs
3
3
import unittest
4
+ from array import array
4
5
5
6
from test_support import pyro_only
6
7
@@ -369,6 +370,11 @@ def test_decode_ascii_with_well_formed_ascii_returns_string(self):
369
370
self .assertEqual (decoded , "hello" )
370
371
self .assertEqual (consumed , 5 )
371
372
373
+ def test_decode_ascii_with_well_formed_ascii_array_returns_string (self ):
374
+ decoded , consumed = _codecs .ascii_decode (array ("B" , b"hello" ))
375
+ self .assertEqual (decoded , "hello" )
376
+ self .assertEqual (consumed , 5 )
377
+
372
378
def test_decode_ascii_with_well_formed_ascii_bytearray_returns_string (self ):
373
379
decoded , consumed = _codecs .ascii_decode (bytearray (b"hello" ))
374
380
self .assertEqual (decoded , "hello" )
@@ -384,6 +390,11 @@ class B(bytearray):
384
390
self .assertEqual (decoded , "hello" )
385
391
self .assertEqual (consumed , 5 )
386
392
393
+ def test_decode_ascii_with_well_formed_ascii_memoryview_returns_string (self ):
394
+ decoded , consumed = _codecs .ascii_decode (memoryview (b"hello" ))
395
+ self .assertEqual (decoded , "hello" )
396
+ self .assertEqual (consumed , 5 )
397
+
387
398
def test_decode_ascii_with_custom_error_handler_returns_string (self ):
388
399
_codecs .register_error ("test" , lambda x : ("-testing-" , x .end ))
389
400
decoded , consumed = _codecs .ascii_decode (b"ab\x90 c" , "test" )
@@ -457,6 +468,11 @@ def test_decode_latin_1_with_ascii_returns_string(self):
457
468
self .assertEqual (decoded , "hello" )
458
469
self .assertEqual (consumed , 5 )
459
470
471
+ def test_decode_latin_1_with_ascii_array_returns_string (self ):
472
+ decoded , consumed = _codecs .latin_1_decode (array ("B" , b"hello" ))
473
+ self .assertEqual (decoded , "hello" )
474
+ self .assertEqual (consumed , 5 )
475
+
460
476
def test_decode_latin_1_with_ascii_bytearray_returns_string (self ):
461
477
decoded , consumed = _codecs .latin_1_decode (bytearray (b"hello" ))
462
478
self .assertEqual (decoded , "hello" )
@@ -470,6 +486,11 @@ class B(bytearray):
470
486
self .assertEqual (decoded , "hello" )
471
487
self .assertEqual (consumed , 5 )
472
488
489
+ def test_decode_latin_1_with_ascii_memoryview_returns_string (self ):
490
+ decoded , consumed = _codecs .latin_1_decode (memoryview (b"hello" ))
491
+ self .assertEqual (decoded , "hello" )
492
+ self .assertEqual (consumed , 5 )
493
+
473
494
def test_decode_latin_1_with_latin_1_returns_string (self ):
474
495
decoded , consumed = _codecs .latin_1_decode (b"\x7D \x7E \x7F \x80 \x81 \x82 " )
475
496
self .assertEqual (decoded , "\x7D \x7E \x7F \x80 \x81 \x82 " )
@@ -495,6 +516,13 @@ def test_decode_unicode_escape_with_well_formed_latin_1_returns_string(self):
495
516
self .assertEqual (decoded , "hello\x95 " )
496
517
self .assertEqual (consumed , 6 )
497
518
519
+ def test_decode_unicode_escape_with_well_formed_latin_1_array_returns_string (
520
+ self ,
521
+ ):
522
+ decoded , consumed = _codecs .unicode_escape_decode (array ("B" , b"hello\x95 " ))
523
+ self .assertEqual (decoded , "hello\x95 " )
524
+ self .assertEqual (consumed , 6 )
525
+
498
526
def test_decode_unicode_escape_with_well_formed_latin_1_bytearray_returns_string (
499
527
self ,
500
528
):
@@ -510,6 +538,13 @@ class B(bytearray):
510
538
self .assertEqual (decoded , "hello\x95 " )
511
539
self .assertEqual (consumed , 6 )
512
540
541
+ def test_decode_unicode_escape_with_well_formed_latin_1_memoryview_returns_string (
542
+ self ,
543
+ ):
544
+ decoded , consumed = _codecs .unicode_escape_decode (memoryview (b"hello\x95 " ))
545
+ self .assertEqual (decoded , "hello\x95 " )
546
+ self .assertEqual (consumed , 6 )
547
+
513
548
def test_decode_unicode_escape_with_escaped_back_slash_returns_string (self ):
514
549
decoded , consumed = _codecs .unicode_escape_decode (b"hello\\ x95" )
515
550
self .assertEqual (decoded , "hello\x95 " )
@@ -614,13 +649,27 @@ def test_decode_raw_unicode_escape_with_escaped_back_slash_returns_string(self):
614
649
self .assertEqual (decoded , "hello\\ x95" )
615
650
self .assertEqual (consumed , 9 )
616
651
652
+ def test_decode_raw_unicode_escape_with_well_formed_latin_1_array_returns_string (
653
+ self ,
654
+ ):
655
+ decoded , consumed = _codecs .raw_unicode_escape_decode (array ("B" , b"hello\x95 " ))
656
+ self .assertEqual (decoded , "hello\x95 " )
657
+ self .assertEqual (consumed , 6 )
658
+
617
659
def test_decode_raw_unicode_escape_with_well_formed_latin_1_bytearray_returns_string (
618
660
self ,
619
661
):
620
662
decoded , consumed = _codecs .raw_unicode_escape_decode (bytearray (b"hello\x95 " ))
621
663
self .assertEqual (decoded , "hello\x95 " )
622
664
self .assertEqual (consumed , 6 )
623
665
666
+ def test_decode_raw_unicode_escape_with_well_formed_latin_1_memoryview_returns_string (
667
+ self ,
668
+ ):
669
+ decoded , consumed = _codecs .raw_unicode_escape_decode (memoryview (b"hello\x95 " ))
670
+ self .assertEqual (decoded , "hello\x95 " )
671
+ self .assertEqual (consumed , 6 )
672
+
624
673
def test_decode_raw_unicode_escape_with_latin_1_bytearray_subclass_returns_string (
625
674
self ,
626
675
):
@@ -738,6 +787,13 @@ def test_decode_utf_8_with_well_formed_utf_8_returns_string(self):
738
787
self .assertEqual (decoded , "\U0001f192 h\xe4 l\u2cc0 " )
739
788
self .assertEqual (consumed , 11 )
740
789
790
+ def test_decode_utf_8_with_well_formed_utf8_array_returns_string (self ):
791
+ decoded , consumed = _codecs .utf_8_decode (
792
+ array ("B" , b"\xf0 \x9f \x86 \x92 h\xc3 \xa4 l\xe2 \xb3 \x80 " )
793
+ )
794
+ self .assertEqual (decoded , "\U0001f192 h\xe4 l\u2cc0 " )
795
+ self .assertEqual (consumed , 11 )
796
+
741
797
def test_decode_utf_8_with_well_formed_utf8_bytearray_returns_string (self ):
742
798
decoded , consumed = _codecs .utf_8_decode (
743
799
bytearray (b"\xf0 \x9f \x86 \x92 h\xc3 \xa4 l\xe2 \xb3 \x80 " )
@@ -755,6 +811,13 @@ class B(bytearray):
755
811
self .assertEqual (decoded , "\U0001f192 h\xe4 l\u2cc0 " )
756
812
self .assertEqual (consumed , 11 )
757
813
814
+ def test_decode_utf_8_with_well_formed_utf8_memoryview_returns_string (self ):
815
+ decoded , consumed = _codecs .utf_8_decode (
816
+ memoryview (b"\xf0 \x9f \x86 \x92 h\xc3 \xa4 l\xe2 \xb3 \x80 " )
817
+ )
818
+ self .assertEqual (decoded , "\U0001f192 h\xe4 l\u2cc0 " )
819
+ self .assertEqual (consumed , 11 )
820
+
758
821
def test_decode_utf_8_with_custom_error_handler_returns_string (self ):
759
822
_codecs .register_error ("test" , lambda x : ("-testing-" , x .end ))
760
823
decoded , consumed = _codecs .utf_8_decode (b"ab\x90 c" , "test" )
0 commit comments