diff options
Diffstat (limited to 'tests/lib/direct_url.py')
-rw-r--r-- | tests/lib/direct_url.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/tests/lib/direct_url.py b/tests/lib/direct_url.py index 497e10c6b..e0dac0320 100644 --- a/tests/lib/direct_url.py +++ b/tests/lib/direct_url.py @@ -1,15 +1,25 @@ +import os import re +from pathlib import Path +from typing import Optional from pip._internal.models.direct_url import DIRECT_URL_METADATA_NAME, DirectUrl +from tests.lib import TestPipResult -def get_created_direct_url(result, pkg): +def get_created_direct_url_path(result: TestPipResult, pkg: str) -> Optional[Path]: direct_url_metadata_re = re.compile( pkg + r"-[\d\.]+\.dist-info." + DIRECT_URL_METADATA_NAME + r"$" ) for filename in result.files_created: - if direct_url_metadata_re.search(filename): - direct_url_path = result.test_env.base_path / filename - with open(direct_url_path) as f: - return DirectUrl.from_json(f.read()) + if direct_url_metadata_re.search(os.fspath(filename)): + return result.test_env.base_path / filename + return None + + +def get_created_direct_url(result: TestPipResult, pkg: str) -> Optional[DirectUrl]: + direct_url_path = get_created_direct_url_path(result, pkg) + if direct_url_path: + with open(direct_url_path) as f: + return DirectUrl.from_json(f.read()) return None |