mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
* Mark 3.12 * Update importlib from Python 3.12.0 * Update test_importlib from Python3.12 * Mark failings tests from importlib * Update test.support from Python3.12 * Fix unsupported parser feature * mark failing test * Update functools from Python 3.12 * manual type annotation * slice behavior changed in 3.12 * empty unittest.main returns non-zero * test_decimal from CPython 3.12 * Mark failing tests * Update test_unicode from CPython 3.12 * Update test_functools from Python 3.12 * Update enum from Python 3.12 * enum * Doc format changed * Update test_module from CPython --------- Co-authored-by: CPython developers <>
54 lines
1.4 KiB
Python
Executable File
Vendored
54 lines
1.4 KiB
Python
Executable File
Vendored
"""
|
|
Generate the zip test data files.
|
|
|
|
Run to build the tests/zipdataNN/ziptestdata.zip files from
|
|
files in tests/dataNN.
|
|
|
|
Replaces the file with the working copy, but does commit anything
|
|
to the source repo.
|
|
"""
|
|
|
|
import contextlib
|
|
import os
|
|
import pathlib
|
|
import zipfile
|
|
|
|
|
|
def main():
|
|
"""
|
|
>>> from unittest import mock
|
|
>>> monkeypatch = getfixture('monkeypatch')
|
|
>>> monkeypatch.setattr(zipfile, 'ZipFile', mock.MagicMock())
|
|
>>> print(); main() # print workaround for bpo-32509
|
|
<BLANKLINE>
|
|
...data01... -> ziptestdata/...
|
|
...
|
|
...data02... -> ziptestdata/...
|
|
...
|
|
"""
|
|
suffixes = '01', '02'
|
|
tuple(map(generate, suffixes))
|
|
|
|
|
|
def generate(suffix):
|
|
root = pathlib.Path(__file__).parent.relative_to(os.getcwd())
|
|
zfpath = root / f'zipdata{suffix}/ziptestdata.zip'
|
|
with zipfile.ZipFile(zfpath, 'w') as zf:
|
|
for src, rel in walk(root / f'data{suffix}'):
|
|
dst = 'ziptestdata' / pathlib.PurePosixPath(rel.as_posix())
|
|
print(src, '->', dst)
|
|
zf.write(src, dst)
|
|
|
|
|
|
def walk(datapath):
|
|
for dirpath, dirnames, filenames in os.walk(datapath):
|
|
with contextlib.suppress(ValueError):
|
|
dirnames.remove('__pycache__')
|
|
for filename in filenames:
|
|
res = pathlib.Path(dirpath) / filename
|
|
rel = res.relative_to(datapath)
|
|
yield res, rel
|
|
|
|
|
|
__name__ == '__main__' and main()
|