You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
From 3e50054d836b655b0868520bae8b85a3c18967ef Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
|
Date: Wed, 8 Nov 2023 17:12:16 +0100
|
|
Subject: [PATCH] Replace the commentjson test dependency with re.sub
|
|
|
|
While at it, only open the json files once.
|
|
|
|
Co-authored-by: Maxwell G <maxwell@gtmx.me>
|
|
---
|
|
setup.cfg | 1 -
|
|
.../cocoapods/test_resolvers_cocoapods.py | 19 +++++++++++--------
|
|
2 files changed, 11 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/setup.cfg b/setup.cfg
|
|
index 5eddf2f..e080991 100644
|
|
--- a/setup.cfg
|
|
+++ b/setup.cfg
|
|
@@ -44,7 +44,6 @@ lint =
|
|
isort
|
|
types-requests
|
|
test =
|
|
- commentjson
|
|
packaging
|
|
pytest
|
|
release =
|
|
diff --git a/tests/functional/cocoapods/test_resolvers_cocoapods.py b/tests/functional/cocoapods/test_resolvers_cocoapods.py
|
|
index 12dff46..f54e27d 100644
|
|
--- a/tests/functional/cocoapods/test_resolvers_cocoapods.py
|
|
+++ b/tests/functional/cocoapods/test_resolvers_cocoapods.py
|
|
@@ -5,7 +5,6 @@
|
|
import re
|
|
import string
|
|
|
|
-import commentjson # type: ignore
|
|
import pytest
|
|
|
|
from resolvelib import AbstractProvider, ResolutionImpossible, Resolver
|
|
@@ -124,14 +123,18 @@ def _version_in_specset(version, specset):
|
|
|
|
|
|
def _safe_json_load(filename):
|
|
- # Some fixtures has comments so the stdlib implementation doesn't work.
|
|
- # We only use commentjson if we absolutely need to because it's SLOW.
|
|
- try:
|
|
- with open(filename) as f:
|
|
+ # Some fixtures have comments so they are not valid json.
|
|
+ # We could use commentjson/json5 to load them,
|
|
+ # but it's easier to strip the comments.
|
|
+ # We only do it when json.load() fails to avoid unnecessary loading
|
|
+ # all the json files to strings.
|
|
+ with open(filename) as f:
|
|
+ try:
|
|
data = json.load(f)
|
|
- except ValueError:
|
|
- with open(filename) as f:
|
|
- data = commentjson.load(f)
|
|
+ except ValueError:
|
|
+ f.seek(0)
|
|
+ strippedjson = re.sub(r"//.*$", "", f.read(), flags=re.MULTILINE)
|
|
+ data = json.loads(strippedjson)
|
|
return data
|
|
|
|
|