diff --git a/.gitignore b/.gitignore index df84ce08a..551382e6b 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,6 @@ TAGS # pyenv .python-version + +# .pkl files in tests folder + tests/*.pickle.* \ No newline at end of file diff --git a/tests/cimultidict-c-extension.pickle.0 b/tests/cimultidict-c-extension.pickle.0 deleted file mode 100644 index 7b2ed0084..000000000 --- a/tests/cimultidict-c-extension.pickle.0 +++ /dev/null @@ -1,14 +0,0 @@ -cmultidict._multidict -CIMultiDict -p0 -((lp1 -(Va -p2 -L1L -tp3 -a(g2 -L2L -tp4 -atp5 -Rp6 -. \ No newline at end of file diff --git a/tests/cimultidict-c-extension.pickle.1 b/tests/cimultidict-c-extension.pickle.1 deleted file mode 100644 index 225458ba2..000000000 Binary files a/tests/cimultidict-c-extension.pickle.1 and /dev/null differ diff --git a/tests/cimultidict-c-extension.pickle.2 b/tests/cimultidict-c-extension.pickle.2 deleted file mode 100644 index d33600e61..000000000 Binary files a/tests/cimultidict-c-extension.pickle.2 and /dev/null differ diff --git a/tests/cimultidict-c-extension.pickle.3 b/tests/cimultidict-c-extension.pickle.3 deleted file mode 100644 index cbb8624db..000000000 Binary files a/tests/cimultidict-c-extension.pickle.3 and /dev/null differ diff --git a/tests/cimultidict-c-extension.pickle.4 b/tests/cimultidict-c-extension.pickle.4 deleted file mode 100644 index 1f5164ca3..000000000 Binary files a/tests/cimultidict-c-extension.pickle.4 and /dev/null differ diff --git a/tests/cimultidict-c-extension.pickle.5 b/tests/cimultidict-c-extension.pickle.5 deleted file mode 100644 index 11bf552c4..000000000 Binary files a/tests/cimultidict-c-extension.pickle.5 and /dev/null differ diff --git a/tests/cimultidict-pure-python.pickle.0 b/tests/cimultidict-pure-python.pickle.0 deleted file mode 100644 index bd39b6db2..000000000 --- a/tests/cimultidict-pure-python.pickle.0 +++ /dev/null @@ -1,14 +0,0 @@ -cmultidict._multidict_py -CIMultiDict -p0 -((lp1 -(Va -p2 -L1L -tp3 -a(g2 -L2L -tp4 -atp5 -Rp6 -. \ No newline at end of file diff --git a/tests/cimultidict-pure-python.pickle.1 b/tests/cimultidict-pure-python.pickle.1 deleted file mode 100644 index 866003d26..000000000 Binary files a/tests/cimultidict-pure-python.pickle.1 and /dev/null differ diff --git a/tests/cimultidict-pure-python.pickle.2 b/tests/cimultidict-pure-python.pickle.2 deleted file mode 100644 index c9e43fef9..000000000 Binary files a/tests/cimultidict-pure-python.pickle.2 and /dev/null differ diff --git a/tests/cimultidict-pure-python.pickle.3 b/tests/cimultidict-pure-python.pickle.3 deleted file mode 100644 index 821659fe0..000000000 Binary files a/tests/cimultidict-pure-python.pickle.3 and /dev/null differ diff --git a/tests/cimultidict-pure-python.pickle.4 b/tests/cimultidict-pure-python.pickle.4 deleted file mode 100644 index a17c6e9b7..000000000 Binary files a/tests/cimultidict-pure-python.pickle.4 and /dev/null differ diff --git a/tests/cimultidict-pure-python.pickle.5 b/tests/cimultidict-pure-python.pickle.5 deleted file mode 100644 index 479bfe3a5..000000000 Binary files a/tests/cimultidict-pure-python.pickle.5 and /dev/null differ diff --git a/tests/conftest.py b/tests/conftest.py index 0d003950c..deec11dfe 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -158,6 +158,17 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion +@pytest.fixture(params=list(range(pickle.HIGHEST_PROTOCOL + 1))) +def in_memory_pickle_object( + request: pytest.FixtureRequest, + any_multidict_class: Type[MutableMultiMapping[str]], +) -> bytes: + """Generate an in-memory pickle of the multi-dict object.""" + proto = request.param + d = any_multidict_class([("a", 1), ("a", 2)]) + return pickle.dumps(d, proto) + + def pytest_addoption( parser: pytest.Parser, pluginmanager: pytest.PytestPluginManager, diff --git a/tests/gen_pickles.py b/tests/gen_pickles.py deleted file mode 100644 index 4e0d268be..000000000 --- a/tests/gen_pickles.py +++ /dev/null @@ -1,28 +0,0 @@ -import pickle -from importlib import import_module -from pathlib import Path - -TESTS_DIR = Path(__file__).parent.resolve() - - -def write(tag, cls, proto): - d = cls([("a", 1), ("a", 2)]) - file_basename = f"{cls.__name__.lower()}-{tag}" - with (TESTS_DIR / f"{file_basename}.pickle.{proto}").open("wb") as f: - pickle.dump(d, f, proto) - - -def generate(): - _impl_map = { - "c-extension": "_multidict", - "pure-python": "_multidict_py", - } - for proto in range(pickle.HIGHEST_PROTOCOL + 1): - for tag, impl_name in _impl_map.items(): - impl = import_module(f"multidict.{impl_name}") - for cls in impl.CIMultiDict, impl.MultiDict: - write(tag, cls, proto) - - -if __name__ == "__main__": - generate() diff --git a/tests/multidict-c-extension.pickle.0 b/tests/multidict-c-extension.pickle.0 deleted file mode 100644 index eb979fcf7..000000000 --- a/tests/multidict-c-extension.pickle.0 +++ /dev/null @@ -1,14 +0,0 @@ -cmultidict._multidict -MultiDict -p0 -((lp1 -(Va -p2 -L1L -tp3 -a(g2 -L2L -tp4 -atp5 -Rp6 -. \ No newline at end of file diff --git a/tests/multidict-c-extension.pickle.1 b/tests/multidict-c-extension.pickle.1 deleted file mode 100644 index a4f211d7b..000000000 Binary files a/tests/multidict-c-extension.pickle.1 and /dev/null differ diff --git a/tests/multidict-c-extension.pickle.2 b/tests/multidict-c-extension.pickle.2 deleted file mode 100644 index b4563f879..000000000 Binary files a/tests/multidict-c-extension.pickle.2 and /dev/null differ diff --git a/tests/multidict-c-extension.pickle.3 b/tests/multidict-c-extension.pickle.3 deleted file mode 100644 index 415960a3e..000000000 Binary files a/tests/multidict-c-extension.pickle.3 and /dev/null differ diff --git a/tests/multidict-c-extension.pickle.4 b/tests/multidict-c-extension.pickle.4 deleted file mode 100644 index 00ef17c3f..000000000 Binary files a/tests/multidict-c-extension.pickle.4 and /dev/null differ diff --git a/tests/multidict-c-extension.pickle.5 b/tests/multidict-c-extension.pickle.5 deleted file mode 100644 index 2c4ae0a0d..000000000 Binary files a/tests/multidict-c-extension.pickle.5 and /dev/null differ diff --git a/tests/multidict-pure-python.pickle.0 b/tests/multidict-pure-python.pickle.0 deleted file mode 100644 index e91023ecf..000000000 --- a/tests/multidict-pure-python.pickle.0 +++ /dev/null @@ -1,14 +0,0 @@ -cmultidict._multidict_py -MultiDict -p0 -((lp1 -(Va -p2 -L1L -tp3 -a(g2 -L2L -tp4 -atp5 -Rp6 -. \ No newline at end of file diff --git a/tests/multidict-pure-python.pickle.1 b/tests/multidict-pure-python.pickle.1 deleted file mode 100644 index acce9bf79..000000000 Binary files a/tests/multidict-pure-python.pickle.1 and /dev/null differ diff --git a/tests/multidict-pure-python.pickle.2 b/tests/multidict-pure-python.pickle.2 deleted file mode 100644 index 900446ad8..000000000 Binary files a/tests/multidict-pure-python.pickle.2 and /dev/null differ diff --git a/tests/multidict-pure-python.pickle.3 b/tests/multidict-pure-python.pickle.3 deleted file mode 100644 index 9b9073515..000000000 Binary files a/tests/multidict-pure-python.pickle.3 and /dev/null differ diff --git a/tests/multidict-pure-python.pickle.4 b/tests/multidict-pure-python.pickle.4 deleted file mode 100644 index db363f8d3..000000000 Binary files a/tests/multidict-pure-python.pickle.4 and /dev/null differ diff --git a/tests/multidict-pure-python.pickle.5 b/tests/multidict-pure-python.pickle.5 deleted file mode 100644 index 7dc772d58..000000000 Binary files a/tests/multidict-pure-python.pickle.5 and /dev/null differ diff --git a/tests/test_pickle.py b/tests/test_pickle.py index c1c2522c4..5fc963cdc 100644 --- a/tests/test_pickle.py +++ b/tests/test_pickle.py @@ -21,18 +21,12 @@ def test_pickle_proxy(any_multidict_class, any_multidict_proxy_class): pickle.dumps(proxy) -def test_load_from_file(any_multidict_class, multidict_implementation, pickle_protocol): - multidict_class_name = any_multidict_class.__name__ - pickle_file_basename = "-".join( - ( - multidict_class_name.lower(), - multidict_implementation.tag, - ) - ) +def test_load_from_file( + any_multidict_class, + multidict_implementation, + in_memory_pickle_object, +): d = any_multidict_class([("a", 1), ("a", 2)]) - fname = f"{pickle_file_basename}.pickle.{pickle_protocol}" - p = here / fname - with p.open("rb") as f: - obj = pickle.load(f) + obj = pickle.loads(in_memory_pickle_object) assert d == obj assert isinstance(obj, any_multidict_class)