1+ import pathlib
2+ import shutil
3+ import subprocess
4+ import tempfile
5+
6+ from gardenlinux .build .exporter import export
7+
8+ arm64 = {'usr' , 'usr/lib' , 'usr/lib/aarch64-linux-gnu' , 'usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1' , 'usr/lib/aarch64-linux-gnu/libc.so.6' , 'usr/lib/aarch64-linux-gnu/libpthread.so.0' }
9+ amd64 = {'usr' , 'usr/lib' , 'usr/lib/x86_64-linux-gnu' , 'usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2' , 'usr/lib/x86_64-linux-gnu/libc.so.6' , 'usr/lib/x86_64-linux-gnu/libpthread.so.0' }
10+
11+ def test_requests_export ():
12+ dpkg = shutil .which ("dpkg" )
13+ assert dpkg
14+
15+ out = subprocess .run ([dpkg , "--print-architecture" ], stdout = subprocess .PIPE )
16+ assert out .returncode == 0
17+ arch = out .stdout .decode ().strip ()
18+
19+ with tempfile .TemporaryDirectory () as target_dir :
20+ target_dir = pathlib .Path (target_dir )
21+ site_packages = target_dir .joinpath ("site-packages" )
22+ required_libs = target_dir .joinpath ("required_libs" )
23+
24+ site_packages .mkdir ()
25+ required_libs .mkdir ()
26+
27+ pip3 = shutil .which ("pip3" )
28+ assert pip3
29+
30+ out = subprocess .run ([pip3 , "install" , "--target" , site_packages , "requests" ])
31+
32+ assert out .returncode == 0
33+
34+ export (required_libs , site_packages )
35+
36+ exported = set ()
37+
38+ for path in required_libs .rglob ("*" ):
39+ exported .add (str (path .relative_to (required_libs )))
40+
41+ if arch == "arm64" :
42+ expected = arm64
43+ elif arch == "amd64" :
44+ expected = amd64
45+ else :
46+ raise NotImplementedError (f"Architecture { arch } not supported" )
47+
48+ assert exported == expected
0 commit comments