|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
import os
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
import subprocess
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
import platform
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
import re
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
import sys
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
import textwrap
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
import pytest
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
X_Y = f'{sys.version_info[0]}.{sys.version_info[1]}'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
XY = f'{sys.version_info[0]}{sys.version_info[1]}'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
# Handy environment variable you can use to run the tests
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
# with modified macros files. Multiple files should be
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
# separated by colon.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
230ce7f |
# You can use * if you escape it from your Shell:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
230ce7f |
# TESTED_FILES='macros.*' pytest -v
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
# Remember that some tests might need more macros files than just
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
187e049 |
# the local ones. You might need to use:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
187e049 |
# TESTED_FILES='/usr/lib/rpm/macros:/usr/lib/rpm/platform/x86_64-linux/macros:macros.*'
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
TESTED_FILES = os.getenv("TESTED_FILES", None)
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
def rpm_eval(expression, fails=False, **kwargs):
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
if isinstance(expression, str):
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
expression = [expression]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
cmd = ['rpmbuild']
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
if TESTED_FILES:
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
2eb41fe |
cmd += ['--macros', TESTED_FILES]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
for var, value in kwargs.items():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
if value is None:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
cmd += ['--undefine', var]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
cmd += ['--define', f'{var} {value}']
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
for e in expression:
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
cmd += ['--eval', e]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
cp = subprocess.run(cmd, text=True, env={**os.environ, 'LANG': 'C.utf-8'},
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
if fails:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert cp.returncode != 0, cp.stdout
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
elif fails is not None:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert cp.returncode == 0, cp.stdout
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
return cp.stdout.strip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
@pytest.fixture(scope="session")
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
def lib():
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
lib_eval = rpm_eval("%_lib")[0]
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
if lib_eval == "%_lib" and TESTED_FILES:
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
raise ValueError(
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
"%_lib is not resolved to an actual value. "
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
"You may want to include /usr/lib/rpm/platform/x86_64-linux/macros to TESTED_FILES."
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
)
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
return lib_eval
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def get_alt_x_y():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
Some tests require alternate Python version to be installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
In order to allow any Python version (or none at all),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
this function/fixture exists.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
You can control the behavior by setting the $ALTERNATE_PYTHON_VERSION
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
environment variable to X.Y (e.g. 3.6) or SKIP.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
The environment variable must be set.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
env_name = "ALTERNATE_PYTHON_VERSION"
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
alternate_python_version = os.getenv(env_name, "")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
if alternate_python_version.upper() == "SKIP":
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
pytest.skip(f"${env_name} set to SKIP")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
if not alternate_python_version:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
raise ValueError(f"${env_name} must be set, "
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
f"set it to SKIP if you want to skip tests that "
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
f"require alternate Python version.")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
if not re.match(r"^\d+\.\d+$", alternate_python_version):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
raise ValueError(f"${env_name} must be X.Y")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
return alternate_python_version
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
def get_alt_xy():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
Same as get_alt_x_y() but without a dot
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
return get_alt_x_y().replace(".", "")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
# We don't use decorators, to be able to call the functions directly
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
alt_x_y = pytest.fixture(scope="session")(get_alt_x_y)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
alt_xy = pytest.fixture(scope="session")(get_alt_xy)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
# https://fedoraproject.org/wiki/Changes/PythonSafePath
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
def safe_path_flag(x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
return 'P' if tuple(int(i) for i in x_y.split('.')) >= (3, 11) else ''
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
def shell_stdout(script):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
return subprocess.check_output(script,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
env={**os.environ, 'LANG': 'C.utf-8'},
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
text=True,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
shell=True).rstrip()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
@pytest.mark.parametrize('macro', ['%__python3', '%python3'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
def test_python3(macro):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
assert rpm_eval(macro) == ['/usr/bin/python3']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
@pytest.mark.parametrize('macro', ['%__python3', '%python3'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
@pytest.mark.parametrize('pkgversion', ['3', '3.9', '3.12'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
def test_python3_with_pkgversion(macro, pkgversion):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
assert rpm_eval(macro, python3_pkgversion=pkgversion) == [f'/usr/bin/python{pkgversion}']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
@pytest.mark.parametrize('argument, result', [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a', 'a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a-a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a_a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a.a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a---a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a-_-a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a-_-a', 'a-a'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a[b]', 'a[b]'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('Aha[Boom]', 'aha[boom]'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
('a.a[b.b]', 'a-a[b-b]'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
def test_pydist_name(argument, result):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
assert rpm_eval(f'%py_dist_name {argument}') == [result]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
def test_py2_dist():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
assert rpm_eval(f'%py2_dist Aha[Boom] a') == ['python2dist(aha[boom]) python2dist(a)']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
def test_py3_dist():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
assert rpm_eval(f'%py3_dist Aha[Boom] a') == ['python3dist(aha[boom]) python3dist(a)']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
59abe83 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_py3_dist_with_python3_pkgversion_redefined(alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
assert rpm_eval(f'%py3_dist Aha[Boom] a', python3_pkgversion=alt_x_y) == [f'python{alt_x_y}dist(aha[boom]) python{alt_x_y}dist(a)']
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
638f809 |
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
638f809 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_python():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert rpm_eval('%python_provide python-foo') == []
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_python3():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
lines = rpm_eval('%python_provide python3-foo', version='6', release='1.fc66')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Obsoletes: python-foo < 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_python3_epoched():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
lines = rpm_eval('%python_provide python3-foo', epoch='1', version='6', release='1.fc66')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Obsoletes: python-foo < 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_python3X():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
lines = rpm_eval(f'%python_provide python{X_Y}-foo', version='6', release='1.fc66')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Obsoletes: python-foo < 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_python3X_epoched():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
lines = rpm_eval(f'%python_provide python{X_Y}-foo', epoch='1', version='6', release='1.fc66')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Obsoletes: python-foo < 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
def test_python_provide_doubleuse():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
lines = rpm_eval('%{python_provide python3-foo}%{python_provide python3-foo}',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
version='6', release='1.fc66')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Obsoletes: python-foo < 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 6
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(set(lines)) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 10])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_python(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval('%py_provides python-foo', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 1
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 12])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_whatever(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval('%py_provides whatever', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: whatever = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 1
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 9])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_python3(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval('%py_provides python3-foo', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
if rhel:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert f'Obsoletes: python{X_Y}-foo < 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 4
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
@pytest.mark.parametrize('rhel', [None, 9])
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
def test_py_provides_python3_with_isa(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
lines = rpm_eval('%py_provides python3-foo(x86_64)', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
assert 'Provides: python3-foo(x86_64) = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
assert 'Provides: python-foo(x86_64) = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
assert f'Provides: python{X_Y}-foo(x86_64) = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
assert f'Obsoletes: python{X_Y}-foo(x86_64) < 6-1.fc66' not in lines
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
e250f28 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 13])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_python3_epoched(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval('%py_provides python3-foo', epoch='1', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
if rhel:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert f'Obsoletes: python{X_Y}-foo < 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 4
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 13])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_python3X(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval(f'%py_provides python{X_Y}-foo', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 27])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_python3X_epoched(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
lines = rpm_eval(f'%py_provides python{X_Y}-foo', epoch='1', version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 1:6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 2])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_doubleuse(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
lines = rpm_eval('%{py_provides python3-foo}%{py_provides python3-foo}',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
if rhel:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert f'Obsoletes: python{X_Y}-foo < 6-1.fc66' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 8
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(set(lines)) == 4
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 6
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(set(lines)) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
@pytest.mark.parametrize('rhel', [None, 2])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
def test_py_provides_with_evr(rhel):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
lines = rpm_eval('%py_provides python3-foo 123',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
version='6', release='1.fc66', rhel=rhel)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python3-foo = 123' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
f5bea8c |
assert 'Provides: python-foo = 123' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5f3e4d6 |
assert f'Provides: python{X_Y}-foo = 123' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
if rhel:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert f'Obsoletes: python{X_Y}-foo < 123' in lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 4
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
5547a87 |
assert len(lines) == 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
def test_python_wheel_pkg_prefix():
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora='44', rhel=None, eln=None) == ['python']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora='44', rhel=None, eln=None, python3_pkgversion='3.9') == ['python']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora=None, rhel='1', eln='1') == ['python']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora=None, rhel='1', eln=None) == ['python3']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora=None, rhel='1', eln=None, python3_pkgversion='3.10') == ['python3.10']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_pkg_prefix', fedora=None, rhel='1', eln=None, python3_pkgversion='3.11') == ['python3.11']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
def test_python_wheel_dir():
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora='44', rhel=None, eln=None) == ['/usr/share/python-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora='44', rhel=None, eln=None, python3_pkgversion='3.9') == ['/usr/share/python-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora=None, rhel='1', eln='1') == ['/usr/share/python-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora=None, rhel='1', eln=None) == ['/usr/share/python3-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora=None, rhel='1', eln=None, python3_pkgversion='3.10') == ['/usr/share/python3.10-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
assert rpm_eval('%python_wheel_dir', fedora=None, rhel='1', eln=None, python3_pkgversion='3.11') == ['/usr/share/python3.11-wheels']
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
|
|
![](https://seccdn.libravatar.org/avatar/65340c9ed2f41946f609c60cd83f5182d88e4d958aa925643cc55e19635789e6?s=16&d=retro) |
9b797df |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
def test_pytest_passes_options_naturally():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
lines = rpm_eval('%pytest -k foo')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
assert '/usr/bin/pytest -k foo' in lines[-1]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
def test_pytest_different_command():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
lines = rpm_eval('%pytest', __pytest='pytest-3')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0d3f1e6 |
assert 'pytest-3' in lines[-1]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
0253654 |
def test_pytest_command_suffix():
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
0253654 |
lines = rpm_eval('%pytest -v')
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
0253654 |
assert '/usr/bin/pytest -v' in lines[-1]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
# this test does not require alternate Pythons to be installed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
@pytest.mark.parametrize('version', ['3.6', '3.7', '3.12'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_pytest_command_suffix_alternate_pkgversion(version):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
lines = rpm_eval('%pytest -v', python3_pkgversion=version, python3_version=version)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
assert f'/usr/bin/pytest-{version} -v' in lines[-1]
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
0253654 |
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
0253654 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
86c391c |
def test_pytest_sets_pytest_xdist_auto_num_workers():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
86c391c |
lines = rpm_eval('%pytest', _smp_build_ncpus=2)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b2f798f |
assert 'PYTEST_XDIST_AUTO_NUM_WORKERS="${PYTEST_XDIST_AUTO_NUM_WORKERS:-2}"' in '\n'.join(lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
86c391c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
86c391c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
def test_pytest_undefined_addopts_are_not_set():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
lines = rpm_eval('%pytest', __pytest_addopts=None)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert 'PYTEST_ADDOPTS' not in '\n'.join(lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
def test_pytest_defined_addopts_are_set():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
lines = rpm_eval('%pytest', __pytest_addopts="--ignore=stuff")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert 'PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} --ignore=stuff"' in '\n'.join(lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
@pytest.mark.parametrize('__pytest_addopts', ['--macronized-option', 'x y z', None])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
def test_pytest_addopts_preserves_envvar(__pytest_addopts):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
# this is the line a packager might put in the spec file before running %pytest:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
spec_line = 'export PYTEST_ADDOPTS="--exported-option1 --exported-option2"'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
# instead of actually running /usr/bin/pytest,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
# we run a small shell script that echoes the tested value for inspection
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
lines = rpm_eval('%pytest', __pytest_addopts=__pytest_addopts,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
__pytest="sh -c 'echo $PYTEST_ADDOPTS'")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
echoed = shell_stdout('\n'.join([spec_line] + lines))
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
# assert all values were echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert '--exported-option1' in echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert '--exported-option2' in echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
if __pytest_addopts is not None:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert __pytest_addopts in echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
# assert the options are separated
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert 'option--' not in echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
assert 'z--' not in echoed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
d905710 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
@pytest.mark.parametrize('__pytest_addopts', ['-X', None])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
def test_py3_test_envvars(lib, __pytest_addopts):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
lines = rpm_eval('%{py3_test_envvars}\\\n%{python3} -m unittest',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
buildroot='BUILDROOT',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
_smp_build_ncpus='3',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
__pytest_addopts=__pytest_addopts)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert all(l.endswith('\\') for l in lines[:-1])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
stripped_lines = [l.strip(' \\') for l in lines]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
sitearch = f'BUILDROOT/usr/{lib}/python{X_Y}/site-packages'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
sitelib = f'BUILDROOT/usr/lib/python{X_Y}/site-packages'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert f'PYTHONPATH="${{PYTHONPATH:-{sitearch}:{sitelib}}}"' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert 'PATH="BUILDROOT/usr/bin:$PATH"' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert 'CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert 'PYTHONDONTWRITEBYTECODE=1' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b2f798f |
assert 'PYTEST_XDIST_AUTO_NUM_WORKERS="${PYTEST_XDIST_AUTO_NUM_WORKERS:-3}"' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
if __pytest_addopts:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert f'PYTEST_ADDOPTS="${{PYTEST_ADDOPTS:-}} {__pytest_addopts}"' in stripped_lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert 'PYTEST_ADDOPTS' not in ''.join(lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
assert stripped_lines[-1] == '/usr/bin/python3 -m unittest'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_default_name():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='foo', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_default_srcname():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-foo', srcname='foo', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_default_pypi_name():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-foo', pypi_name='foo', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_default_name_uppercase():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='Foo', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/F/Foo/Foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_provided_name():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source foo',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-bar', pypi_name='bar', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_provided_name_version():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source foo 6',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-bar', pypi_name='bar', version='3')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_provided_name_version_ext():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
url = rpm_eval('%pypi_source foo 6 zip',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-bar', pypi_name='bar', version='3')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert url == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6.zip']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_prerelease():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-foo', pypi_name='foo', version='6~b2')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6b2.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4569c61 |
def test_pypi_source_explicit_tilde():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
urls = rpm_eval('%pypi_source foo 6~6',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
name='python-foo', pypi_name='foo', version='6')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert urls == ['https://files.pythonhosted.org/packages/source/f/foo/foo-6~6.tar.gz']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
def test_py3_shebang_fix():
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
1979a78 |
cmd = rpm_eval('%py3_shebang_fix arg1 arg2 arg3')[-1].strip()
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bb334db |
assert cmd == '/usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 $shebang_flags arg1 arg2 arg3'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
def test_py3_shebang_fix_default_shebang_flags():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines = rpm_eval('%py3_shebang_fix arg1 arg2')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
assert shell_stdout('\n'.join(lines)) == f'-kas{safe_path_flag(X_Y)}'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
def test_py3_shebang_fix_custom_shebang_flags():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines = rpm_eval('%py3_shebang_fix arg1 arg2', py3_shebang_flags='Es')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
assert shell_stdout('\n'.join(lines)) == '-kaEs'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
@pytest.mark.parametrize('_py3_shebang_s', [None, '%{nil}'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
def test_py3_shebang_fix_undefined_py3_shebang_s(_py3_shebang_s):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines = rpm_eval('%py3_shebang_fix arg1 arg2', _py3_shebang_s=_py3_shebang_s)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
expected = f'-ka{safe_path_flag(X_Y)}' if safe_path_flag(X_Y) else '-k'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
assert shell_stdout('\n'.join(lines)) == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
@pytest.mark.parametrize('_py3_shebang_P', [None, '%{nil}'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
def test_py3_shebang_fix_undefined_py3_shebang_P(_py3_shebang_P):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines = rpm_eval('%py3_shebang_fix arg1 arg2', _py3_shebang_P=_py3_shebang_P)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
assert shell_stdout('\n'.join(lines)) == '-kas'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
@pytest.mark.parametrize('_py3_shebang_s', [None, '%{nil}'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
@pytest.mark.parametrize('_py3_shebang_P', [None, '%{nil}'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
def test_py3_shebang_fix_undefined_py3_shebang_sP(_py3_shebang_s, _py3_shebang_P):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines = rpm_eval('%py3_shebang_fix arg1 arg2',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
_py3_shebang_s=_py3_shebang_s,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
_py3_shebang_P=_py3_shebang_P)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
assert shell_stdout('\n'.join(lines)) == '-k'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4abed5f |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
@pytest.mark.parametrize('flags', [None, '%{nil}'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
def test_py3_shebang_fix_no_shebang_flags(flags):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines = rpm_eval('%py3_shebang_fix arg1 arg2', py3_shebang_flags=flags)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
lines[-1] = 'echo $shebang_flags'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
assert shell_stdout('\n'.join(lines)) == '-k'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
7237192 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
e5429a7 |
def test_py_shebang_fix_custom_python():
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
1979a78 |
cmd = rpm_eval('%py_shebang_fix arg1 arg2 arg3', __python='/usr/bin/pypy')[-1].strip()
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bb334db |
assert cmd == '/usr/bin/pypy -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/pypy $shebang_flags arg1 arg2 arg3'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
def test_pycached_in_sitelib():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
lines = rpm_eval('%pycached %{python3_sitelib}/foo*.py')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines == [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'/usr/lib/python{X_Y}/site-packages/foo*.py',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'/usr/lib/python{X_Y}/site-packages/__pycache__/foo*.cpython-{XY}{{,.opt-?}}.pyc'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
def test_pycached_in_sitearch(lib):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
lines = rpm_eval('%pycached %{python3_sitearch}/foo*.py')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines == [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'/usr/{lib}/python{X_Y}/site-packages/foo*.py',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'/usr/{lib}/python{X_Y}/site-packages/__pycache__/foo*.cpython-{XY}{{,.opt-?}}.pyc'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
# this test does not require alternate Pythons to be installed
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
@pytest.mark.parametrize('version', ['3.6', '3.7', '3.12'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_pycached_with_alternate_version(version):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
version_nodot = version.replace('.', '')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
lines = rpm_eval(f'%pycached /usr/lib/python{version}/site-packages/foo*.py')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines == [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
f'/usr/lib/python{version}/site-packages/foo*.py',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
f'/usr/lib/python{version}/site-packages/__pycache__/foo*.cpython-{version_nodot}{{,.opt-?}}.pyc'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
def test_pycached_in_custom_dir():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
lines = rpm_eval('%pycached /bar/foo*.py')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines == [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
'/bar/foo*.py',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
'/bar/__pycache__/foo*.cpython-3*{,.opt-?}.pyc'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
def test_pycached_with_exclude():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
lines = rpm_eval('%pycached %exclude %{python3_sitelib}/foo*.py')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines == [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'%exclude /usr/lib/python{X_Y}/site-packages/foo*.py',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
f'%exclude /usr/lib/python{X_Y}/site-packages/__pycache__/foo*.cpython-{XY}{{,.opt-?}}.pyc'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
def test_pycached_fails_with_extension_glob():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
lines = rpm_eval('%pycached %{python3_sitelib}/foo.py*', fails=True)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
985a805 |
assert lines[0] == 'error: %pycached can only be used with paths explicitly ending with .py'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
def test_python_extras_subpkg_i():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -i %{python3_sitelib}/*.egg-info toml yaml',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
version='6', release='7')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
expected = textwrap.dedent(f"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: toml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in toml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%files -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%ghost /usr/lib/python{X_Y}/site-packages/*.egg-info
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: yaml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in yaml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%files -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%ghost /usr/lib/python{X_Y}/site-packages/*.egg-info
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
""").lstrip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
assert lines == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
def test_python_extras_subpkg_f():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -f ghost_filelist toml yaml',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
version='6', release='7')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
expected = textwrap.dedent(f"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: toml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in toml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%files -n python3-setuptools_scm+toml -f ghost_filelist
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: yaml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in yaml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%files -n python3-setuptools_scm+yaml -f ghost_filelist
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
""").lstrip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
assert lines == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
def test_python_extras_subpkg_F():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -F toml yaml',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
version='6', release='7')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
expected = textwrap.dedent(f"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: toml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+toml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in toml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%package -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Summary: Metapackage for python3-setuptools_scm: yaml extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
Requires: python3-setuptools_scm = 6-7
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
%description -n python3-setuptools_scm+yaml
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
This is a metapackage bringing in yaml extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
python3-setuptools_scm.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
""").lstrip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
763d24c |
assert lines == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
Cristian Le |
ea2cded |
def test_python_extras_subpkg_a():
|
|
Cristian Le |
ea2cded |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -a -F toml',
|
|
Cristian Le |
ea2cded |
version='6', release='7')
|
|
Cristian Le |
ea2cded |
expected = textwrap.dedent(f"""
|
|
Cristian Le |
ea2cded |
%package -n python3-setuptools_scm+toml
|
|
Cristian Le |
ea2cded |
Summary: Metapackage for python3-setuptools_scm: toml extras
|
|
Cristian Le |
ea2cded |
Requires: python3-setuptools_scm = 6-7
|
|
Cristian Le |
ea2cded |
BuildArch: noarch
|
|
Cristian Le |
ea2cded |
%description -n python3-setuptools_scm+toml
|
|
Cristian Le |
ea2cded |
This is a metapackage bringing in toml extras requires for
|
|
Cristian Le |
ea2cded |
python3-setuptools_scm.
|
|
Cristian Le |
ea2cded |
It makes sure the dependencies are installed.
|
|
Cristian Le |
ea2cded |
""").lstrip().splitlines()
|
|
Cristian Le |
ea2cded |
assert lines == expected
|
|
Cristian Le |
ea2cded |
|
|
Cristian Le |
ea2cded |
|
|
Cristian Le |
ea2cded |
def test_python_extras_subpkg_A():
|
|
Cristian Le |
ea2cded |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -A -F toml',
|
|
Cristian Le |
ea2cded |
version='6', release='7')
|
|
Cristian Le |
ea2cded |
expected = textwrap.dedent(f"""
|
|
Cristian Le |
ea2cded |
%package -n python3-setuptools_scm+toml
|
|
Cristian Le |
ea2cded |
Summary: Metapackage for python3-setuptools_scm: toml extras
|
|
Cristian Le |
ea2cded |
Requires: python3-setuptools_scm = 6-7
|
|
Cristian Le |
ea2cded |
%description -n python3-setuptools_scm+toml
|
|
Cristian Le |
ea2cded |
This is a metapackage bringing in toml extras requires for
|
|
Cristian Le |
ea2cded |
python3-setuptools_scm.
|
|
Cristian Le |
ea2cded |
It makes sure the dependencies are installed.
|
|
Cristian Le |
ea2cded |
""").lstrip().splitlines()
|
|
Cristian Le |
ea2cded |
assert lines == expected
|
|
Cristian Le |
ea2cded |
|
|
Cristian Le |
ea2cded |
|
|
Cristian Le |
ea2cded |
def test_python_extras_subpkg_aA():
|
|
Cristian Le |
ea2cded |
lines = rpm_eval('%python_extras_subpkg -n python3-setuptools_scm -a -A -F toml',
|
|
Cristian Le |
ea2cded |
version='6', release='7', fails=True)
|
|
Cristian Le |
ea2cded |
assert lines[0] == ('error: %python_extras_subpkg: simultaneous -a '
|
|
Cristian Le |
ea2cded |
'(insert BuildArch: noarch) and -A (do not insert '
|
|
Cristian Le |
ea2cded |
'BuildArch: noarch (default)) options are not possible')
|
|
Cristian Le |
ea2cded |
|
|
Cristian Le |
ea2cded |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
def test_python_extras_subpkg_underscores():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
lines = rpm_eval('%python_extras_subpkg -n python3-webscrapbook -F adhoc_ssl',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
version='0.33.3', release='1.fc33')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
expected = textwrap.dedent(f"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
%package -n python3-webscrapbook+adhoc_ssl
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
Summary: Metapackage for python3-webscrapbook: adhoc_ssl extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
Requires: python3-webscrapbook = 0.33.3-1.fc33
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
%description -n python3-webscrapbook+adhoc_ssl
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
This is a metapackage bringing in adhoc_ssl extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
python3-webscrapbook.
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
""").lstrip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
assert lines == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a6382f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
@pytest.mark.parametrize('sep', [pytest.param(('', ' ', ' ', ''), id='spaces'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param(('', ',', ',', ''), id='commas'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param(('', ',', ',', ','), id='commas-trailing'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param((',', ',', ',', ''), id='commas-leading'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param((',', ',', ',', ','), id='commas-trailing-leading'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param(('', ',', ' ', ''), id='mixture'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param((' ', ' ', '\t\t, ', '\t'), id='chaotic-good'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
pytest.param(('', '\t ,, \t\r ', ',,\t , ', ',,'), id='chaotic-evil')])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
def test_python_extras_subpkg_arg_separators(sep):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
lines = rpm_eval('%python_extras_subpkg -n python3-hypothesis -F {}cli{}ghostwriter{}pytz{}'.format(*sep),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
version='6.6.0', release='1.fc35')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
expected = textwrap.dedent(f"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%package -n python3-hypothesis+cli
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Summary: Metapackage for python3-hypothesis: cli extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Requires: python3-hypothesis = 6.6.0-1.fc35
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%description -n python3-hypothesis+cli
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
This is a metapackage bringing in cli extras requires for python3-hypothesis.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%package -n python3-hypothesis+ghostwriter
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Summary: Metapackage for python3-hypothesis: ghostwriter extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Requires: python3-hypothesis = 6.6.0-1.fc35
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%description -n python3-hypothesis+ghostwriter
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
This is a metapackage bringing in ghostwriter extras requires for
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
python3-hypothesis.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%package -n python3-hypothesis+pytz
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Summary: Metapackage for python3-hypothesis: pytz extras
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
Requires: python3-hypothesis = 6.6.0-1.fc35
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
%description -n python3-hypothesis+pytz
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
This is a metapackage bringing in pytz extras requires for python3-hypothesis.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
It makes sure the dependencies are installed.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
""").lstrip().splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
assert lines == expected
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a44ae31 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
@pytest.mark.parametrize('basename_len', [1, 10, 30, 45, 78])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
@pytest.mark.parametrize('extra_len', [1, 13, 28, 52, 78])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
def test_python_extras_subpkg_description_wrapping(basename_len, extra_len):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
basename = 'x' * basename_len
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
extra = 'y' * extra_len
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
lines = rpm_eval(f'%python_extras_subpkg -n {basename} -F {extra}',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
version='6', release='7')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
for idx, line in enumerate(lines):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
if line.startswith('%description'):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
start = idx + 1
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
lines = lines[start:]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
assert all(len(l) < 80 for l in lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
assert len(lines) < 6
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
if len(" ".join(lines[:-1])) < 80:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
assert len(lines) == 2
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
expected_singleline = (f"This is a metapackage bringing in {extra} extras "
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
f"requires for {basename}. "
|
|
![](https://seccdn.libravatar.org/avatar/281c1b4f9e726ace8c183e703bc93493c3fdda6c6706c9b0eee00875216507d8?s=16&d=retro) |
bc016cb |
f"It makes sure the dependencies are installed.")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
description_singleline = " ".join(lines)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
assert description_singleline == expected_singleline
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c746b25 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
unversioned_macros = pytest.mark.parametrize('macro', [
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%__python',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%python',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%python_version',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%python_version_nodots',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%python_sitelib',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%python_sitearch',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
0086612 |
'%python_platform',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
'%python_platform_triplet',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
'%python_ext_suffix',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
'%python_cache_tag',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%py_shebang_fix',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%py_build',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%py_build_wheel',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%py_install',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
'%py_install_wheel',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
'%py_check_import',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
b647925 |
'%py_test_envvars',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
@unversioned_macros
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
def test_unversioned_python_errors(macro):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
lines = rpm_eval(macro, fails=True)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
assert lines[0] == (
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
'error: attempt to use unversioned python, '
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
'define %__python to /usr/bin/python2 or /usr/bin/python3 explicitly'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
# when the macros are %global, the error is longer
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
# we deliberately allow this extra line to be optional
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
if len(lines) > 1 and "error: lua script failed" not in lines[1]:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
# the failed macro is not unnecessarily our tested macro
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
pattern = r'error: Macro %\S+ failed to expand'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
assert re.match(pattern, lines[1])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
# but there should be no more lines
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
3ca74ad |
assert len(lines) < 3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
@unversioned_macros
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
def test_unversioned_python_works_when_defined(macro):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
macro3 = macro.replace('python', 'python3').replace('py_', 'py3_')
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
69b1b30 |
assert rpm_eval(macro, __python='/usr/bin/python3') == rpm_eval(macro3)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
# we could rework the test for multiple architectures, but the Fedora CI currently only runs on x86_64
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
x86_64_only = pytest.mark.skipif(platform.machine() != "x86_64", reason="works on x86_64 only")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
@x86_64_only
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
def test_platform_triplet():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval("%python3_platform_triplet") == ["x86_64-linux-gnu"]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
@x86_64_only
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
06987f5 |
def test_ext_suffix():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval("%python3_ext_suffix") == [f".cpython-{XY}-x86_64-linux-gnu.so"]
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
def test_cache_tag():
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
assert rpm_eval("%python3_cache_tag") == [f"cpython-{XY}"]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
def test_cache_tag_alternate_python(alt_x_y, alt_xy):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
assert rpm_eval("%python_cache_tag", __python=f"/usr/bin/python{alt_x_y}") == [f"cpython-{alt_xy}"]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
def test_cache_tag_alternate_python3(alt_x_y, alt_xy):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
assert rpm_eval("%python3_cache_tag", __python3=f"/usr/bin/python{alt_x_y}") == [f"cpython-{alt_xy}"]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4085ef4 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python_sitelib_value_python3():
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
macro = '%python_sitelib'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval(macro, __python='%__python3') == [f'/usr/lib/python{X_Y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python_sitelib_value_alternate_python(alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
macro = '%python_sitelib'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
assert rpm_eval(macro, __python=f'/usr/bin/python{alt_x_y}') == [f'/usr/lib/python{alt_x_y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python3_sitelib_value_default():
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
macro = '%python3_sitelib'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval(macro) == [f'/usr/lib/python{X_Y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python3_sitelib_value_alternate_python(alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
macro = '%python3_sitelib'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
assert (rpm_eval(macro, __python3=f'/usr/bin/python{alt_x_y}') ==
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
rpm_eval(macro, python3_pkgversion=alt_x_y) ==
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
[f'/usr/lib/python{alt_x_y}/site-packages'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
Owen W. Taylor |
546e9a3 |
def test_python3_sitelib_value_alternate_prefix():
|
|
Owen W. Taylor |
546e9a3 |
macro = '%python3_sitelib'
|
|
Owen W. Taylor |
546e9a3 |
assert rpm_eval(macro, _prefix='/app') == [f'/app/lib/python{X_Y}/site-packages']
|
|
Owen W. Taylor |
546e9a3 |
|
|
Owen W. Taylor |
546e9a3 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python_sitearch_value_python3(lib):
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
macro = '%python_sitearch'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval(macro, __python='%__python3') == [f'/usr/{lib}/python{X_Y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python_sitearch_value_alternate_python(lib, alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
macro = '%python_sitearch'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
assert rpm_eval(macro, __python=f'/usr/bin/python{alt_x_y}') == [f'/usr/{lib}/python{alt_x_y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python3_sitearch_value_default(lib):
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
9d2fcef |
macro = '%python3_sitearch'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
39166a7 |
assert rpm_eval(macro) == [f'/usr/{lib}/python{X_Y}/site-packages']
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
def test_python3_sitearch_value_alternate_python(lib, alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
macro = '%python3_sitearch'
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
assert (rpm_eval(macro, __python3=f'/usr/bin/python{alt_x_y}') ==
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
rpm_eval(macro, python3_pkgversion=alt_x_y) ==
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
a8b2654 |
[f'/usr/{lib}/python{alt_x_y}/site-packages'])
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
|
|
Owen W. Taylor |
546e9a3 |
def test_python3_sitearch_value_alternate_prefix(lib):
|
|
Owen W. Taylor |
546e9a3 |
macro = '%python3_sitearch'
|
|
Owen W. Taylor |
546e9a3 |
assert rpm_eval(macro, _prefix='/app') == [f'/app/{lib}/python{X_Y}/site-packages']
|
|
Owen W. Taylor |
546e9a3 |
|
|
Owen W. Taylor |
546e9a3 |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
@pytest.mark.parametrize(
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
'args, expected_args',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
[
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('six', 'six'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('-f foo.txt', '-f foo.txt'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('-t -f foo.txt six, seven', '-t -f foo.txt six, seven'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('-e "foo*" -f foo.txt six, seven', '-e "foo*" -f foo.txt six, seven'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('six.quarter six.half,, SIX', 'six.quarter six.half,, SIX'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('-f foo.txt six\nsix.half\nSIX', '-f foo.txt six six.half SIX'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
('six \\ -e six.half', 'six -e six.half'),
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
@pytest.mark.parametrize('__python3',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
[None,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
f'/usr/bin/python{X_Y}',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
'/usr/bin/pythonX.Y'])
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
def test_py3_check_import(args, expected_args, __python3, lib):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
x_y = X_Y
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
2d0673a |
macros = {
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
'buildroot': 'BUILDROOT',
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
2d0673a |
'_rpmconfigdir': 'RPMCONFIGDIR',
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
}
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
if __python3 is not None:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
if 'X.Y' in __python3:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
76209d7 |
__python3 = __python3.replace('X.Y', get_alt_x_y())
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
2d0673a |
macros['__python3'] = __python3
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# If the __python3 command has version at the end, parse it and expect it.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# Note that the command is used to determine %python3_sitelib and %python3_sitearch,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# so we only test known CPython schemes here and not PyPy for simplicity.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
if (match := re.match(r'.+python(\d+\.\d+)$', __python3)):
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
x_y = match.group(1)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
invocation = '%{py3_check_import ' + args +'}'
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
b20d8aa |
lines = rpm_eval(invocation, **macros)
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# An equality check is a bit inflexible here,
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# every time we change the macro we need to change this test.
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# However actually executing it and verifying the result is much harder :/
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
# At least, let's make the lines saner to check:
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
lines = [line.rstrip('\\').strip() for line in lines]
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
expected = textwrap.dedent(fr"""
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
PATH="BUILDROOT/usr/bin:$PATH"
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
PYTHONPATH="${{PYTHONPATH:-BUILDROOT/usr/{lib}/python{x_y}/site-packages:BUILDROOT/usr/lib/python{x_y}/site-packages}}"
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
9d81ad4 |
_PYTHONSITE="BUILDROOT/usr/{lib}/python{x_y}/site-packages:BUILDROOT/usr/lib/python{x_y}/site-packages"
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
PYTHONDONTWRITEBYTECODE=1
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
{__python3 or '/usr/bin/python3'} -s{safe_path_flag(x_y)} RPMCONFIGDIR/redhat/import_all_modules.py {expected_args}
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
""")
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
c2305ea |
assert lines == expected.splitlines()
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
@pytest.mark.parametrize(
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
'shebang_flags_value, expected_shebang_flags',
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
[
|
|
![](https://seccdn.libravatar.org/avatar/3c06a168eac5e10baa83f960445b9b006df35865b76dcf7a899f6215ea86b54f?s=16&d=retro) |
4d31ea8 |
('sP', '-sP'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
('s', '-s'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
('%{nil}', ''),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
(None, ''),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
('Es', '-Es'),
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
]
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
)
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
def test_py3_check_import_respects_shebang_flags(shebang_flags_value, expected_shebang_flags, lib):
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
macros = {
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
'_rpmconfigdir': 'RPMCONFIGDIR',
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
'__python3': '/usr/bin/python3',
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
'py3_shebang_flags': shebang_flags_value,
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
lines = rpm_eval('%py3_check_import sys', **macros)
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
# Compare the last line of the command, that's where lua part is evaluated
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
expected = f'/usr/bin/python3 {expected_shebang_flags} RPMCONFIGDIR/redhat/import_all_modules.py sys'
|
|
![](https://seccdn.libravatar.org/avatar/0c752a1265bfbf3a89ee4c09ffbbc3554e3debb4200e19f9f2d1afaf3f555b40?s=16&d=retro) |
824ef3d |
assert lines[-1].strip() == expected
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
def test_multi_python(alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
Ensure memoized %python_version works when switching %__python back
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
and forth.
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
versions = ['3', alt_x_y, X_Y, '3']
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
evals = []
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
for version in versions:
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
evals.extend((f'%global __python /usr/bin/python{version}', '%python_version'))
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
lines = rpm_eval(evals)
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
lines = [l for l in lines if l] # strip empty lines generated by %global
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
assert lines == [X_Y, alt_x_y, X_Y, X_Y]
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
def test_multi_python3(alt_x_y):
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
Ensure memoized %python3_version works when switching %__python3 back
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
and forth.
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
versions = ['3', alt_x_y, X_Y, '3']
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
evals = []
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
for version in versions:
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
evals.extend((f'%global __python3 /usr/bin/python{version}', '%python3_version'))
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
lines = rpm_eval(evals)
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
lines = [l for l in lines if l] # strip empty lines generated by %global
|
|
![](https://seccdn.libravatar.org/avatar/844f8c837ed6aa76734b561a03adc13f3582a12a4d758d2ed0ca5001a8dd1d5c?s=16&d=retro) |
5eec3f7 |
assert lines == [X_Y, alt_x_y, X_Y, X_Y]
|