diff options
author | CoprDistGit <infra@openeuler.org> | 2023-03-23 02:37:51 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-03-23 02:37:51 +0000 |
commit | 9284fbc0394c3ded38abfc1bcefaf1b2e2f52f2f (patch) | |
tree | b3500a4da94b2a113a16f652410bc749cde5c84a /test_pyproject_buildrequires.py | |
parent | 6d8e39fe5ab063ff2a4c2a918cb6ad5b5d4aec45 (diff) |
automatic import of pyproject-rpm-macrosopeneuler20.03
Diffstat (limited to 'test_pyproject_buildrequires.py')
-rw-r--r-- | test_pyproject_buildrequires.py | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/test_pyproject_buildrequires.py b/test_pyproject_buildrequires.py deleted file mode 100644 index 74f3ae8..0000000 --- a/test_pyproject_buildrequires.py +++ /dev/null @@ -1,90 +0,0 @@ -from pathlib import Path -import importlib.metadata - -import pytest -import yaml - -from pyproject_buildrequires import generate_requires - - -testcases = {} -with Path(__file__).parent.joinpath('pyproject_buildrequires_testcases.yaml').open() as f: - testcases = yaml.safe_load(f) - - -@pytest.mark.parametrize('case_name', testcases) -def test_data(case_name, capfd, tmp_path, monkeypatch): - case = testcases[case_name] - - cwd = tmp_path.joinpath('cwd') - cwd.mkdir() - monkeypatch.chdir(cwd) - wheeldir = cwd.joinpath('wheeldir') - wheeldir.mkdir() - - if case.get('xfail'): - pytest.xfail(case.get('xfail')) - - for filename in case: - file_types = ('.toml', '.py', '.in', '.ini', '.txt') - if filename.endswith(file_types): - cwd.joinpath(filename).write_text(case[filename]) - - for name, value in case.get('environ', {}).items(): - monkeypatch.setenv(name, value) - - def get_installed_version(dist_name): - try: - return str(case['installed'][dist_name]) - except (KeyError, TypeError): - raise importlib.metadata.PackageNotFoundError( - f'info not found for {dist_name}' - ) - requirement_files = case.get('requirement_files', []) - requirement_files = [open(f) for f in requirement_files] - use_build_system = case.get('use_build_system', True) - try: - generate_requires( - get_installed_version=get_installed_version, - include_runtime=case.get('include_runtime', use_build_system), - build_wheel=case.get('build_wheel', False), - wheeldir=str(wheeldir), - extras=case.get('extras', []), - toxenv=case.get('toxenv', None), - generate_extras=case.get('generate_extras', False), - requirement_files=requirement_files, - use_build_system=use_build_system, - ) - except SystemExit as e: - assert e.code == case['result'] - except Exception as e: - if 'except' not in case: - raise - assert type(e).__name__ == case['except'] - else: - assert 0 == case['result'] - - # this prevents us from accidentally writing "empty" tests - # if we ever need to do that, we can remove the check or change it: - assert 'expected' in case or 'stderr_contains' in case - - out, err = capfd.readouterr() - - if 'expected' in case: - expected = case['expected'] - if isinstance(expected, list): - # at least one of them needs to match - assert any(out == e for e in expected) - else: - assert out == expected - - # stderr_contains may be a string or list of strings - stderr_contains = case.get('stderr_contains') - if stderr_contains is not None: - if isinstance(stderr_contains, str): - stderr_contains = [stderr_contains] - for expected_substring in stderr_contains: - assert expected_substring.format(**locals()) in err - finally: - for req in requirement_files: - req.close() |