Skip to content

Commit ee268f7

Browse files
tests/test_4767.py: update to cope with free threaded python.
We need to strip out `The global interpreter lock (GIL) has been enabled ...` message.
1 parent db93f18 commit ee268f7

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

tests/test_4767.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pymupdf
55
import subprocess
66
import sys
7+
import sysconfig
78

89

910
def test_4767():
@@ -66,36 +67,51 @@ def get_paths():
6667
paths.append(path)
6768
return paths
6869

70+
def get_stdout(cp):
71+
'''
72+
Strips free-threading warning.
73+
'''
74+
stdout = cp.stdout
75+
if sysconfig.get_config_var('Py_GIL_DISABLED') == 1:
76+
line0, stdout = stdout.split('\n', 1)
77+
assert 'The global interpreter lock (GIL) has been enabled to load module \'pymupdf._extra\',' in line0
78+
return stdout
79+
6980
cp = run(f'cd {testdir}/one/two && {sys.executable} -m pymupdf embed-extract {path} -name evil_entry')
70-
print(cp.stdout)
7181
assert cp.returncode
72-
assert cp.stdout == 'refusing to write stored name outside current directory: ../../test.txt\n'
82+
stdout = get_stdout(cp)
83+
print(f'{stdout=}')
84+
assert stdout == 'refusing to write stored name outside current directory: ../../test.txt\n'
7385
assert not get_paths()
7486

7587
cp = run(f'cd {testdir}/one/two && {sys.executable} -m pymupdf embed-extract {path} -name evil_entry -unsafe')
7688
assert cp.returncode == 0
77-
assert cp.stdout == "saved entry 'evil_entry' as '../../test.txt'\n"
89+
stdout = get_stdout(cp)
90+
assert stdout == "saved entry 'evil_entry' as '../../test.txt'\n"
7891
paths = get_paths()
7992
print(f'{paths=}')
8093
assert paths == [f'{testdir}/test.txt']
8194

8295
cp = run(f'cd {testdir}/one/two && {sys.executable} -m pymupdf embed-extract {path} -name evil_entry2')
8396
assert not cp.returncode
84-
assert cp.stdout == "saved entry 'evil_entry2' as 'test2.txt'\n"
97+
stdout = get_stdout(cp)
98+
assert stdout == "saved entry 'evil_entry2' as 'test2.txt'\n"
8599
paths = get_paths()
86100
print(f'{paths=}')
87101
assert paths == [f'{testdir}/test.txt', f'{testdir}/one/two/test2.txt']
88102

89103
cp = run(f'cd {testdir}/one/two && {sys.executable} -m pymupdf embed-extract {path} -name evil_entry2')
90104
assert cp.returncode
91-
assert cp.stdout == "refusing to overwrite existing file with stored name: test2.txt\n"
105+
stdout = get_stdout(cp)
106+
assert stdout == "refusing to overwrite existing file with stored name: test2.txt\n"
92107
paths = get_paths()
93108
print(f'{paths=}')
94109
assert paths == [f'{testdir}/test.txt', f'{testdir}/one/two/test2.txt']
95110

96111
cp = run(f'cd {testdir}/one/two && {sys.executable} -m pymupdf embed-extract {path} -name evil_entry2 -unsafe')
97112
assert not cp.returncode
98-
assert cp.stdout == "saved entry 'evil_entry2' as 'test2.txt'\n"
113+
stdout = get_stdout(cp)
114+
assert stdout == "saved entry 'evil_entry2' as 'test2.txt'\n"
99115
paths = get_paths()
100116
print(f'{paths=}')
101117
assert paths == [f'{testdir}/test.txt', f'{testdir}/one/two/test2.txt']

0 commit comments

Comments
 (0)