summaryrefslogtreecommitdiff
path: root/tests/lib/direct_url.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/direct_url.py')
-rw-r--r--tests/lib/direct_url.py20
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