Marco Ricci commited on 2025-06-10 19:31:24
Zeige 2 geänderte Dateien mit 9 Einfügungen und 11 Löschungen.
The first slipup deals with two different wrappers around `os.getenv`, depending on whether the system support bytes-based environment variables. We care about whether the wrapper function (whichever implementation) is called correctly, not which wrapper function is selected. So, rewrite the branch to put the system-specific definitions under coverage exclusion, and the rest not. The second slipup concerns the concurrency limit. The detection is system- and runtime-dependent, but the error paths were previously not excluded from coverage. Additionally, we claimed to manually support the `PYTHON_CPU_COUNT` environment variable on Python 3.12, but contained no matching code. So, rewrite the code to add that missing support, in a coverage-friendly way.
... | ... |
@@ -63,16 +63,16 @@ def get_vault_key() -> bytes: |
63 | 63 |
Please set `VAULT_KEY` manually to the desired value. |
64 | 64 |
|
65 | 65 |
""" |
66 |
- if os.supports_bytes_environ: |
|
67 | 66 |
|
68 |
- def getenv(env_var: str) -> bytes: |
|
67 |
+ def getenv_environ(env_var: str) -> bytes: # pragma: no cover |
|
69 | 68 |
return os.environb.get(env_var.encode('UTF-8'), b'') # type: ignore[attr-defined] |
70 | 69 |
|
71 |
- else: |
|
72 |
- |
|
73 |
- def getenv(env_var: str) -> bytes: |
|
70 |
+ def getenv_environb(env_var: str) -> bytes: # pragma: no cover |
|
74 | 71 |
return os.environ.get(env_var, '').encode('UTF-8') |
75 | 72 |
|
73 |
+ getenv: Callable[[str], bytes] = ( |
|
74 |
+ getenv_environb if os.supports_bytes_environ else getenv_environ |
|
75 |
+ ) |
|
76 | 76 |
username = ( |
77 | 77 |
getenv('VAULT_KEY') |
78 | 78 |
or getenv('LOGNAME') |
... | ... |
@@ -1651,12 +1651,10 @@ def get_concurrency_limit() -> int: |
1651 | 1651 |
if sys.version_info >= (3, 13): |
1652 | 1652 |
result = os.process_cpu_count() |
1653 | 1653 |
else: |
1654 |
- try: |
|
1655 |
- cpus = os.sched_getaffinity(os.getpid()) |
|
1656 |
- except AttributeError: |
|
1657 |
- pass |
|
1658 |
- else: |
|
1659 |
- result = len(cpus) |
|
1654 |
+ with contextlib.suppress(ValueError): |
|
1655 |
+ result = result or int(os.environ['PYTHON_CPU_COUNT'], 10) |
|
1656 |
+ with contextlib.suppress(AttributeError): |
|
1657 |
+ result = result or len(os.sched_getaffinity(os.getpid())) |
|
1660 | 1658 |
return max(result if result is not None else 0, MIN_CONCURRENCY) |
1661 | 1659 |
|
1662 | 1660 |
|
1663 | 1661 |