@@ -144,17 +144,16 @@ def assertExcessPadding(data, non_strict_mode_expected_result: bytes):
144144 _assertRegexTemplate (r'(?i)Excess padding' , data , non_strict_mode_expected_result )
145145
146146 # Test excess data exceptions
147- assertExcessData (b'ab==a' , b'i' )
148- assertExcessData (b'ab===' , b'i' )
149- assertExcessData (b'ab====' , b'i' )
150- assertExcessData (b'ab==:' , b'i' )
151- assertExcessData (b'abc=a' , b'i\xb7 ' )
152- assertExcessData (b'abc=:' , b'i\xb7 ' )
153- assertExcessData (b'ab==\n ' , b'i' )
154- assertExcessData (b'abc==' , b'i\xb7 ' )
155- assertExcessData (b'abc===' , b'i\xb7 ' )
156- assertExcessData (b'abc====' , b'i\xb7 ' )
157- assertExcessData (b'abc=====' , b'i\xb7 ' )
147+ assertExcessPadding (b'ab===' , b'i' )
148+ assertExcessPadding (b'ab====' , b'i' )
149+ assertNonBase64Data (b'ab==:' , b'i' )
150+ assertExcessData (b'abc=a' , b'i\xb7 \x1a ' )
151+ assertNonBase64Data (b'abc=:' , b'i\xb7 ' )
152+ assertNonBase64Data (b'ab==\n ' , b'i' )
153+ assertExcessPadding (b'abc==' , b'i\xb7 ' )
154+ assertExcessPadding (b'abc===' , b'i\xb7 ' )
155+ assertExcessPadding (b'abc====' , b'i\xb7 ' )
156+ assertExcessPadding (b'abc=====' , b'i\xb7 ' )
158157
159158 # Test non-base64 data exceptions
160159 assertNonBase64Data (b'\n ab==' , b'i' )
@@ -176,6 +175,21 @@ def assertExcessPadding(data, non_strict_mode_expected_result: bytes):
176175 assertExcessPadding (b'abcd====' , b'i\xb7 \x1d ' )
177176 assertExcessPadding (b'abcd=====' , b'i\xb7 \x1d ' )
178177
178+ @unittest .expectedFailure # TODO: RUSTPYTHON; AssertionError: b'i' != b'i\xb7'
179+ def test_base64_excess_data (self ):
180+ # Test excess data exceptions
181+ def assertExcessData (data , expected ):
182+ assert_regex = r'(?i)Excess data'
183+ data = self .type2test (data )
184+ with self .assertRaisesRegex (binascii .Error , assert_regex ):
185+ binascii .a2b_base64 (data , strict_mode = True )
186+ self .assertEqual (binascii .a2b_base64 (data , strict_mode = False ),
187+ expected )
188+ self .assertEqual (binascii .a2b_base64 (data ), expected )
189+
190+ assertExcessData (b'ab==c=' , b'i\xb7 ' )
191+ assertExcessData (b'ab==cd' , b'i\xb7 \x1d ' )
192+ assertExcessData (b'abc=d' , b'i\xb7 \x1d ' )
179193
180194 def test_base64errors (self ):
181195 # Test base64 with invalid padding
0 commit comments