@@ -2245,17 +2245,24 @@ def func1(a, b, c):
22452245 # we need different expected results per version
22462246 # Note unlike the others, this result is a tuple, use assertIn
22472247 expected = {
2248- (3 , 7 ): (bytearray (b' 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()' ),),
2249- (3 , 8 ): (bytearray (b' 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()' ),),
2250- (3 , 9 ): (bytearray (b' 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()' ),),
2248+ (3 , 7 ): (bytearray (b" 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()" ),),
2249+ (3 , 8 ): (bytearray (b" 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()" ),),
2250+ (3 , 9 ): (bytearray (b" 3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()" ),),
22512251 (3 , 10 ): ( # 3.10.1, 3.10.2
2252- bytearray (b'3, 3, 0, 0,(N.),(),(|\x00 S\x00 ),(),()' ),
2253- bytearray (b'3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()' ),
2252+ bytearray (b"3, 3, 0, 0,(N.),(),(|\x00 S\x00 ),(),()" ),
2253+ bytearray (b"3, 3, 0, 0,(),(),(|\x00 S\x00 ),(),()" ),
2254+ ),
2255+ (3 , 11 ): (bytearray (b"3, 3, 0, 0,(),(),(\x97 \x00 |\x00 S\x00 ),(),()" ),),
2256+ (3 , 12 ): (bytearray (b"3, 3, 0, 0,(),(),(\x97 \x00 |\x00 S\x00 ),(),()" ),),
2257+ (3 , 13 ): (bytearray (b"3, 3, 0, 0,(),(),(\x95 \x00 U\x00 $\x00 ),(),()" ),),
2258+ (3 , 14 ): (
2259+ bytearray (
2260+ b'3, 3, 0, 0,(),(),(\x80 \x00 T\x00 "\x00 ),(),()'
2261+ ), # win32 has different bytecodes
2262+ bytearray (
2263+ b'3, 3, 0, 0,(),(),(\x80 \x00 R\x00 "\x00 ),(),()'
2264+ ), # every other OS?
22542265 ),
2255- (3 , 11 ): (bytearray (b'3, 3, 0, 0,(),(),(\x97 \x00 |\x00 S\x00 ),(),()' ),),
2256- (3 , 12 ): (bytearray (b'3, 3, 0, 0,(),(),(\x97 \x00 |\x00 S\x00 ),(),()' ),),
2257- (3 , 13 ): (bytearray (b'3, 3, 0, 0,(),(),(\x95 \x00 U\x00 $\x00 ),(),()' ),),
2258- (3 , 14 ): (bytearray (b'3, 3, 0, 0,(),(),(\x80 \x00 R\x00 "\x00 ),(),()' ),),
22592266 }
22602267
22612268 c = SCons .Action ._function_contents (func1 )
@@ -2274,33 +2281,36 @@ def test_object_contents(self) -> None:
22742281 # we need different expected results per version
22752282 expected = {
22762283 (3 , 7 ): bytearray (
2277- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
2284+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
22782285 ),
22792286 (3 , 8 ): bytearray (
2280- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
2287+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
22812288 ),
22822289 (3 , 9 ): bytearray (
2283- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
2290+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
22842291 ),
22852292 (3 , 10 ): bytearray (
2286- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
2293+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(d\x01 |\x00 _\x00 d\x02 |\x00 _\x01 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
22872294 ),
22882295 (3 , 11 ): bytearray (
2289- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x97 \x00 d\x01 |\x00 _\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x02 |\x00 _\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(\x97 \x00 d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
2296+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x97 \x00 d\x01 |\x00 _\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x02 |\x00 _\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x00 S\x00 ),(),(),2, 2, 0, 0,(),(),(\x97 \x00 d\x00 S\x00 ),(),()}}{{{a=a,b=b}}}"
22902297 ),
22912298 (3 , 12 ): bytearray (
2292- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x97 \x00 d\x01 |\x00 _\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x02 |\x00 _\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 y\x00 ),(),(),2, 2, 0, 0,(),(),(\x97 \x00 y\x00 ),(),()}}{{{a=a,b=b}}}"
2299+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x97 \x00 d\x01 |\x00 _\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 d\x02 |\x00 _\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 y\x00 ),(),(),2, 2, 0, 0,(),(),(\x97 \x00 y\x00 ),(),()}}{{{a=a,b=b}}}"
22932300 ),
22942301 (3 , 13 ): bytearray (
2295- b"{TestClass:__main__}[[[(<class \ ' object\ ' >, ()), [(<class \ ' __main__.TestClass\ ' >, (<class \ ' object\ ' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x95 \x00 S\x01 U\x00 l\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 S\x02 U\x00 l\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 g\x00 ),(),(),2, 2, 0, 0,(),(),(\x95 \x00 g\x00 ),(),()}}{{{a=a,b=b}}}"
2302+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x95 \x00 S\x01 U\x00 l\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 S\x02 U\x00 l\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 g\x00 ),(),(),2, 2, 0, 0,(),(),(\x95 \x00 g\x00 ),(),()}}{{{a=a,b=b}}}"
22962303 ),
2297- (3 , 14 ): bytearray (
2298- b'{TestClass:__main__}[[[(<class \' object\' >, ()), [(<class \' __main__.TestClass\' >, (<class \' object\' >,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x80 \x00 P\x00 R\x00 j\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x01 R\x00 j\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x02 "\x00 ),(),(),2, 2, 0, 0,(),(),(\x80 \x00 P\x00 "\x00 ),(),()}}{{{a=a,b=b}}}'
2304+ (3 , 14 ): (
2305+ bytearray (
2306+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x80 \x00 P\x00 T\x00 l\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x01 T\x00 l\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x02 \" \x00 ),(),(),2, 2, 0, 0,(),(),(\x80 \x00 P\x00 \" \x00 ),(),()}}{{{a=a,b=b}}}"
2307+ ), # win32
2308+ bytearray (
2309+ b"{TestClass:__main__}[[[(<class 'object'>, ()), [(<class '__main__.TestClass'>, (<class 'object'>,))]]]]{{1, 1, 0, 0,(a,b),(a,b),(\x80 \x00 P\x00 R\x00 j\x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x01 R\x00 j\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 P\x02 \" \x00 ),(),(),2, 2, 0, 0,(),(),(\x80 \x00 P\x00 \" \x00 ),(),()}}{{{a=a,b=b}}}"
2310+ ),
22992311 ),
23002312 }
2301-
2302- # self.assertEqual(c, expected[sys.version_info[:2]])
2303- assert c == expected [sys .version_info [:2 ]], c
2313+ self .assertTrue (c in expected [sys .version_info [:2 ]])
23042314
23052315 def test_code_contents (self ) -> None :
23062316 """Test that Action._code_contents works"""
@@ -2311,32 +2321,37 @@ def test_code_contents(self) -> None:
23112321 # Since the python bytecode has per version differences, we need different expected results per version
23122322 expected = {
23132323 (3 , 7 ): bytearray (
2314- b' 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )'
2324+ b" 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )"
23152325 ),
23162326 (3 , 8 ): bytearray (
2317- b' 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )'
2327+ b" 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )"
23182328 ),
23192329 (3 , 9 ): bytearray (
2320- b' 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )'
2330+ b" 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )"
23212331 ),
23222332 (3 , 10 ): bytearray (
2323- b' 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )'
2333+ b" 0, 0, 0, 0,(Hello, World!),(print),(e\x00 d\x00 \x83 \x01 \x01 \x00 d\x01 S\x00 )"
23242334 ),
23252335 (3 , 11 ): bytearray (
2326- b' 0, 0, 0, 0,(Hello, World!),(print),(\x97 \x00 \x02 \x00 e\x00 d\x00 \xa6 \x01 \x00 \x00 \xab \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x00 d\x01 S\x00 )'
2336+ b" 0, 0, 0, 0,(Hello, World!),(print),(\x97 \x00 \x02 \x00 e\x00 d\x00 \xa6 \x01 \x00 \x00 \xab \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x00 d\x01 S\x00 )"
23272337 ),
23282338 (3 , 12 ): bytearray (
2329- b' 0, 0, 0, 0,(Hello, World!),(print),(\x97 \x00 \x02 \x00 e\x00 d\x00 \xab \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x00 y\x01 )'
2339+ b" 0, 0, 0, 0,(Hello, World!),(print),(\x97 \x00 \x02 \x00 e\x00 d\x00 \xab \x01 \x00 \x00 \x00 \x00 \x00 \x00 \x01 \x00 y\x01 )"
23302340 ),
23312341 (3 , 13 ): bytearray (
23322342 b'0, 0, 0, 0,(Hello, World!),(print),(\x95 \x00 \\ \x00 "\x00 S\x00 5\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x00 g\x01 )'
23332343 ),
2334- (3 , 14 ): bytearray (
2335- b'0, 0, 0, 0,(Hello, World!),(print),(\x80 \x00 Y\x00 \x00 P\x00 2\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x1e \x00 P\x01 "\x00 )'
2344+ (3 , 14 ): (
2345+ bytearray (
2346+ b'0, 0, 0, 0,(Hello, World!),(print),(\x80 \x00 [\x00 \x00 P\x00 2\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x1e \x00 P\x01 "\x00 )'
2347+ ), # win32
2348+ bytearray (
2349+ b'0, 0, 0, 0,(Hello, World!),(print),(\x80 \x00 Y\x00 \x00 P\x00 2\x01 \x00 \x00 \x00 \x00 \x00 \x00 \x1e \x00 P\x01 "\x00 )'
2350+ ),
23362351 ),
23372352 }
23382353
2339- self .assertEqual ( c , expected [sys .version_info [:2 ]])
2354+ self .assertTrue ( c in expected [sys .version_info [:2 ]], f" \n Expected: { expected [ sys . version_info [: 2 ]] } \n Got : { c } " )
23402355
23412356 def test_uncaught_exception_bubbles (self ):
23422357 """Test that scons_subproc_run bubbles uncaught exceptions"""
@@ -2350,7 +2365,6 @@ def test_uncaught_exception_bubbles(self):
23502365
23512366 raise Exception ("expected a non-EnvironmentError exception" )
23522367
2353-
23542368 def mock_subprocess_run (* args , ** kwargs ):
23552369 """Replacement subprocess.run: return kwargs for checking."""
23562370 kwargs .pop ("env" ) # the value of env isn't interesting here
0 commit comments