@@ -2245,21 +2245,24 @@ def func1(a, b, c):
2245
2245
# we need different expected results per version
2246
2246
# Note unlike the others, this result is a tuple, use assertIn
2247
2247
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 ),(),()" ),),
2251
2251
(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?
2254
2265
),
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 (
2259
- b'3, 3, 0, 0,(),(),(\x80 \x00 T\x00 "\x00 ),(),()'
2260
- if sys .platform == 'win32'
2261
- else b'3, 3, 0, 0,(),(),(\x80 \x00 R\x00 "\x00 ),(),()'
2262
- ),),
2263
2266
}
2264
2267
2265
2268
c = SCons .Action ._function_contents (func1 )
@@ -2278,33 +2281,36 @@ def test_object_contents(self) -> None:
2278
2281
# we need different expected results per version
2279
2282
expected = {
2280
2283
(3 , 7 ): bytearray (
2281
- 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}}}"
2282
2285
),
2283
2286
(3 , 8 ): bytearray (
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}}}"
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}}}"
2285
2288
),
2286
2289
(3 , 9 ): bytearray (
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}}}"
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}}}"
2288
2291
),
2289
2292
(3 , 10 ): bytearray (
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}}}"
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}}}"
2291
2294
),
2292
2295
(3 , 11 ): bytearray (
2293
- 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}}}"
2294
2297
),
2295
2298
(3 , 12 ): bytearray (
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 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}}}"
2297
2300
),
2298
2301
(3 , 13 ): bytearray (
2299
- 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}}}"
2300
2303
),
2301
- (3 , 14 ): bytearray (
2302
- 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}}}'
2303
- if sys .platform == 'win32'
2304
- else 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
+ ),
2305
2311
),
2306
2312
}
2307
- self .assertEqual ( c , expected [sys .version_info [:2 ]])
2313
+ self .assertTrue ( c in expected [sys .version_info [:2 ]])
2308
2314
2309
2315
def test_code_contents (self ) -> None :
2310
2316
"""Test that Action._code_contents works"""
@@ -2315,34 +2321,37 @@ def test_code_contents(self) -> None:
2315
2321
# Since the python bytecode has per version differences, we need different expected results per version
2316
2322
expected = {
2317
2323
(3 , 7 ): bytearray (
2318
- 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 )"
2319
2325
),
2320
2326
(3 , 8 ): bytearray (
2321
- 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 )"
2322
2328
),
2323
2329
(3 , 9 ): bytearray (
2324
- 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 )"
2325
2331
),
2326
2332
(3 , 10 ): bytearray (
2327
- 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 )"
2328
2334
),
2329
2335
(3 , 11 ): bytearray (
2330
- 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 )"
2331
2337
),
2332
2338
(3 , 12 ): bytearray (
2333
- 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 )"
2334
2340
),
2335
2341
(3 , 13 ): bytearray (
2336
2342
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 )'
2337
2343
),
2338
- (3 , 14 ): bytearray (
2339
- 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 )'
2340
- if sys .platform == 'win32'
2341
- else 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
+ ),
2342
2351
),
2343
2352
}
2344
2353
2345
- 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 } " )
2346
2355
2347
2356
def test_uncaught_exception_bubbles (self ):
2348
2357
"""Test that scons_subproc_run bubbles uncaught exceptions"""
@@ -2356,7 +2365,6 @@ def test_uncaught_exception_bubbles(self):
2356
2365
2357
2366
raise Exception ("expected a non-EnvironmentError exception" )
2358
2367
2359
-
2360
2368
def mock_subprocess_run (* args , ** kwargs ):
2361
2369
"""Replacement subprocess.run: return kwargs for checking."""
2362
2370
kwargs .pop ("env" ) # the value of env isn't interesting here
0 commit comments