From 0fbcb9ace9da6b11c9518560be7067453464a6a7 Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:17:56 -0800 Subject: [PATCH 01/12] Refactor pytests to make pickle testing in-memory --- tests/cimultidict-c-extension.pickle.0 | 14 ------ tests/cimultidict-c-extension.pickle.1 | Bin 71 -> 0 bytes tests/cimultidict-c-extension.pickle.2 | Bin 70 -> 0 bytes tests/cimultidict-c-extension.pickle.3 | Bin 70 -> 0 bytes tests/cimultidict-c-extension.pickle.4 | Bin 73 -> 0 bytes tests/cimultidict-c-extension.pickle.5 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.0 | 14 ------ tests/cimultidict-pure-python.pickle.1 | Bin 74 -> 0 bytes tests/cimultidict-pure-python.pickle.2 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.3 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.4 | Bin 76 -> 0 bytes tests/cimultidict-pure-python.pickle.5 | Bin 76 -> 0 bytes tests/conftest.py | 61 +++++++++++++++++-------- tests/gen_pickles.py | 28 ------------ tests/multidict-c-extension.pickle.0 | 14 ------ tests/multidict-c-extension.pickle.1 | Bin 69 -> 0 bytes tests/multidict-c-extension.pickle.2 | Bin 68 -> 0 bytes tests/multidict-c-extension.pickle.3 | Bin 68 -> 0 bytes tests/multidict-c-extension.pickle.4 | Bin 71 -> 0 bytes tests/multidict-c-extension.pickle.5 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.0 | 14 ------ tests/multidict-pure-python.pickle.1 | Bin 72 -> 0 bytes tests/multidict-pure-python.pickle.2 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.3 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.4 | Bin 74 -> 0 bytes tests/multidict-pure-python.pickle.5 | Bin 74 -> 0 bytes tests/test_pickle.py | 6 +-- 27 files changed, 43 insertions(+), 108 deletions(-) delete mode 100644 tests/cimultidict-c-extension.pickle.0 delete mode 100644 tests/cimultidict-c-extension.pickle.1 delete mode 100644 tests/cimultidict-c-extension.pickle.2 delete mode 100644 tests/cimultidict-c-extension.pickle.3 delete mode 100644 tests/cimultidict-c-extension.pickle.4 delete mode 100644 tests/cimultidict-c-extension.pickle.5 delete mode 100644 tests/cimultidict-pure-python.pickle.0 delete mode 100644 tests/cimultidict-pure-python.pickle.1 delete mode 100644 tests/cimultidict-pure-python.pickle.2 delete mode 100644 tests/cimultidict-pure-python.pickle.3 delete mode 100644 tests/cimultidict-pure-python.pickle.4 delete mode 100644 tests/cimultidict-pure-python.pickle.5 delete mode 100644 tests/gen_pickles.py delete mode 100644 tests/multidict-c-extension.pickle.0 delete mode 100644 tests/multidict-c-extension.pickle.1 delete mode 100644 tests/multidict-c-extension.pickle.2 delete mode 100644 tests/multidict-c-extension.pickle.3 delete mode 100644 tests/multidict-c-extension.pickle.4 delete mode 100644 tests/multidict-c-extension.pickle.5 delete mode 100644 tests/multidict-pure-python.pickle.0 delete mode 100644 tests/multidict-pure-python.pickle.1 delete mode 100644 tests/multidict-pure-python.pickle.2 delete mode 100644 tests/multidict-pure-python.pickle.3 delete mode 100644 tests/multidict-pure-python.pickle.4 delete mode 100644 tests/multidict-pure-python.pickle.5 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 225458ba2998e4bffa0743efd5a7deaf743fec8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmYe!EzK#(Ovy|x(Tj&Oxtu+HLBcLTVXi_3jo3m)4UGs!1_p-2LMCsF|Fmekfl)}TT*Jph?>7Hj|j diff --git a/tests/cimultidict-pure-python.pickle.3 b/tests/cimultidict-pure-python.pickle.3 deleted file mode 100644 index 821659fe0c533bab0878905c546eecba0a615e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZo*PR=dODalO9OfJ!jhcn{~D!H6JeL*rVKpCz=hS)+zjR-~t28P5!CU3^JLgox6 RZ>F|Fmekfl)}TT*Jph@!7Ht3k diff --git a/tests/cimultidict-pure-python.pickle.4 b/tests/cimultidict-pure-python.pickle.4 deleted file mode 100644 index a17c6e9b7310ef336d979e789fd08eb0164595f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmZo*nd-;@0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sss!8rT2; diff --git a/tests/cimultidict-pure-python.pickle.5 b/tests/cimultidict-pure-python.pickle.5 deleted file mode 100644 index 479bfe3a5d31230a148347800a204feb4e67f5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmZo*o$AN{0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sstq8rc8< diff --git a/tests/conftest.py b/tests/conftest.py index 0d003950c..5f3d82751 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,10 +13,10 @@ except ImportError: from functools import lru_cache as _lru_cache + def cached_property(func): return property(_lru_cache()(func)) - import pytest from multidict import MultiMapping, MutableMultiMapping @@ -59,11 +59,11 @@ def __str__(self): @pytest.fixture( scope="session", params=( - pytest.param( - MultidictImplementation(is_pure_python=False), - marks=C_EXT_MARK, - ), - MultidictImplementation(is_pure_python=True), + pytest.param( + MultidictImplementation(is_pure_python=False), + marks=C_EXT_MARK, + ), + MultidictImplementation(is_pure_python=True), ), ids=str, ) @@ -74,7 +74,7 @@ def multidict_implementation(request: pytest.FixtureRequest) -> MultidictImpleme @pytest.fixture(scope="session") def multidict_module( - multidict_implementation: MultidictImplementation, + multidict_implementation: MultidictImplementation, ) -> ModuleType: """Return a pre-imported module containing a multidict variant.""" return multidict_implementation.imported_module @@ -92,8 +92,8 @@ def any_multidict_class_name(request: pytest.FixtureRequest) -> str: @pytest.fixture(scope="session") def any_multidict_class( - any_multidict_class_name: str, - multidict_module: ModuleType, + any_multidict_class_name: str, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a class object of a mutable multidict implementation.""" return getattr(multidict_module, any_multidict_class_name) @@ -101,7 +101,7 @@ def any_multidict_class( @pytest.fixture(scope="session") def case_sensitive_multidict_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-sensitive mutable multidict class.""" return multidict_module.MultiDict @@ -109,7 +109,7 @@ def case_sensitive_multidict_class( @pytest.fixture(scope="session") def case_insensitive_multidict_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-insensitive mutable multidict class.""" return multidict_module.CIMultiDict @@ -129,8 +129,8 @@ def any_multidict_proxy_class_name(any_multidict_class_name: str) -> str: @pytest.fixture(scope="session") def any_multidict_proxy_class( - any_multidict_proxy_class_name: str, - multidict_module: ModuleType, + any_multidict_proxy_class_name: str, + multidict_module: ModuleType, ) -> Type[MultiMapping[str]]: """Return an immutable multidict implementation class object.""" return getattr(multidict_module, any_multidict_proxy_class_name) @@ -138,7 +138,7 @@ def any_multidict_proxy_class( @pytest.fixture(scope="session") def case_sensitive_multidict_proxy_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-sensitive immutable multidict class.""" return multidict_module.MultiDictProxy @@ -146,7 +146,7 @@ def case_sensitive_multidict_proxy_class( @pytest.fixture(scope="session") def case_insensitive_multidict_proxy_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-insensitive immutable multidict class.""" return multidict_module.CIMultiDictProxy @@ -158,9 +158,30 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion +def write(cls, proto): + d = cls([("a", 1), ("a", 2)]) + return pickle.dumps(d, proto) + + +@pytest.fixture(scope="function") +def in_memory_pickle_classes(multidict_module: ModuleType) -> Callable: + """Return a ``getversion()`` function for current implementation.""" + pickle_dict = {} + _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: + pickle_dict[f"{cls.__name__.lower()}-{tag}.pickle.{proto}"] = write(cls, proto) + return pickle_dict + + def pytest_addoption( - parser: pytest.Parser, - pluginmanager: pytest.PytestPluginManager, + parser: pytest.Parser, + pluginmanager: pytest.PytestPluginManager, ) -> None: """Define a new ``--c-extensions`` flag. @@ -187,9 +208,9 @@ def pytest_addoption( def pytest_collection_modifyitems( - session: pytest.Session, - config: pytest.Config, - items: list[pytest.Item], + session: pytest.Session, + config: pytest.Config, + items: list[pytest.Item], ) -> None: """Deselect tests against C-extensions when requested via CLI.""" test_c_extensions = config.getoption("--c-extensions") is True 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 a4f211d7b1b279f17193e02902eb401bdb048284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmYe!EzK#(Ovy|x(Tj&OxqLx_EEw$ Nmei6$)}TT*Jpd+E6j=ZO diff --git a/tests/multidict-c-extension.pickle.2 b/tests/multidict-c-extension.pickle.2 deleted file mode 100644 index b4563f879d07a3b464ce12750446f8f83f96f701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZo*O3p3KDalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102F={m;e9( diff --git a/tests/multidict-c-extension.pickle.3 b/tests/multidict-c-extension.pickle.3 deleted file mode 100644 index 415960a3eed71ea29e91f5b999b47d2a295126f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZo*PR=dODalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102IL#nE(I) diff --git a/tests/multidict-c-extension.pickle.4 b/tests/multidict-c-extension.pickle.4 deleted file mode 100644 index 00ef17c3f7fe56b2bf60cd9dc8475165d587c8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*nQFrT0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05wn;`Tzg` diff --git a/tests/multidict-c-extension.pickle.5 b/tests/multidict-c-extension.pickle.5 deleted file mode 100644 index 2c4ae0a0d38c23c01f355afdaf9478080befb4a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*ood4X0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05z5v`v3p{ 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 acce9bf79393e3f2dc041c4a3d43ad1f236a7204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmYe!EzK#(Ovy|x(Tj&O;|nUed_m$aKyj`@294N4Mh%S!Mg|6k#6l)-#*#v2jSMDl QrjkOI)RIEhph7l10Dt%up#T5? diff --git a/tests/multidict-pure-python.pickle.2 b/tests/multidict-pure-python.pickle.2 deleted file mode 100644 index 900446ad8da48c67a13c728ec7fb6ffa7d255c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*O3p3KDalO9OfJ!jhcn{~D!F_?;x0gOu0n>`LPm`UMg|6k#6l)-#`LPm`UMg|6k#6l)-# Date: Tue, 16 Jan 2024 20:24:43 -0800 Subject: [PATCH 02/12] Fix formatting --- tests/conftest.py | 44 +++++++++++++++++++++++--------------------- tests/test_pickle.py | 7 ++++++- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5f3d82751..932595831 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,10 +13,10 @@ except ImportError: from functools import lru_cache as _lru_cache - def cached_property(func): return property(_lru_cache()(func)) + import pytest from multidict import MultiMapping, MutableMultiMapping @@ -59,11 +59,11 @@ def __str__(self): @pytest.fixture( scope="session", params=( - pytest.param( - MultidictImplementation(is_pure_python=False), - marks=C_EXT_MARK, - ), - MultidictImplementation(is_pure_python=True), + pytest.param( + MultidictImplementation(is_pure_python=False), + marks=C_EXT_MARK, + ), + MultidictImplementation(is_pure_python=True), ), ids=str, ) @@ -74,7 +74,7 @@ def multidict_implementation(request: pytest.FixtureRequest) -> MultidictImpleme @pytest.fixture(scope="session") def multidict_module( - multidict_implementation: MultidictImplementation, + multidict_implementation: MultidictImplementation, ) -> ModuleType: """Return a pre-imported module containing a multidict variant.""" return multidict_implementation.imported_module @@ -92,8 +92,8 @@ def any_multidict_class_name(request: pytest.FixtureRequest) -> str: @pytest.fixture(scope="session") def any_multidict_class( - any_multidict_class_name: str, - multidict_module: ModuleType, + any_multidict_class_name: str, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a class object of a mutable multidict implementation.""" return getattr(multidict_module, any_multidict_class_name) @@ -101,7 +101,7 @@ def any_multidict_class( @pytest.fixture(scope="session") def case_sensitive_multidict_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-sensitive mutable multidict class.""" return multidict_module.MultiDict @@ -109,7 +109,7 @@ def case_sensitive_multidict_class( @pytest.fixture(scope="session") def case_insensitive_multidict_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-insensitive mutable multidict class.""" return multidict_module.CIMultiDict @@ -129,8 +129,8 @@ def any_multidict_proxy_class_name(any_multidict_class_name: str) -> str: @pytest.fixture(scope="session") def any_multidict_proxy_class( - any_multidict_proxy_class_name: str, - multidict_module: ModuleType, + any_multidict_proxy_class_name: str, + multidict_module: ModuleType, ) -> Type[MultiMapping[str]]: """Return an immutable multidict implementation class object.""" return getattr(multidict_module, any_multidict_proxy_class_name) @@ -138,7 +138,7 @@ def any_multidict_proxy_class( @pytest.fixture(scope="session") def case_sensitive_multidict_proxy_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-sensitive immutable multidict class.""" return multidict_module.MultiDictProxy @@ -146,7 +146,7 @@ def case_sensitive_multidict_proxy_class( @pytest.fixture(scope="session") def case_insensitive_multidict_proxy_class( - multidict_module: ModuleType, + multidict_module: ModuleType, ) -> Type[MutableMultiMapping[str]]: """Return a case-insensitive immutable multidict class.""" return multidict_module.CIMultiDictProxy @@ -175,13 +175,15 @@ def in_memory_pickle_classes(multidict_module: ModuleType) -> Callable: for tag, impl_name in _impl_map.items(): impl = import_module(f"multidict.{impl_name}") for cls in impl.CIMultiDict, impl.MultiDict: - pickle_dict[f"{cls.__name__.lower()}-{tag}.pickle.{proto}"] = write(cls, proto) + pickle_dict[f"{cls.__name__.lower()}-{tag}.pickle.{proto}"] = write( + cls, proto + ) return pickle_dict def pytest_addoption( - parser: pytest.Parser, - pluginmanager: pytest.PytestPluginManager, + parser: pytest.Parser, + pluginmanager: pytest.PytestPluginManager, ) -> None: """Define a new ``--c-extensions`` flag. @@ -208,9 +210,9 @@ def pytest_addoption( def pytest_collection_modifyitems( - session: pytest.Session, - config: pytest.Config, - items: list[pytest.Item], + session: pytest.Session, + config: pytest.Config, + items: list[pytest.Item], ) -> None: """Deselect tests against C-extensions when requested via CLI.""" test_c_extensions = config.getoption("--c-extensions") is True diff --git a/tests/test_pickle.py b/tests/test_pickle.py index 9aa8b1aab..9a3c148db 100644 --- a/tests/test_pickle.py +++ b/tests/test_pickle.py @@ -21,7 +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, in_memory_pickle_classes, pickle_protocol): +def test_load_from_file( + any_multidict_class, + multidict_implementation, + in_memory_pickle_classes, + pickle_protocol, +): multidict_class_name = any_multidict_class.__name__ pickle_file_basename = "-".join( ( From 28d6acb43cb05dd379f31bc0a3df585c11fcff87 Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:26:12 -0800 Subject: [PATCH 03/12] Fix comment --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 932595831..d79446862 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -165,7 +165,7 @@ def write(cls, proto): @pytest.fixture(scope="function") def in_memory_pickle_classes(multidict_module: ModuleType) -> Callable: - """Return a ``getversion()`` function for current implementation.""" + """Generates a dict for in-memory storage of pickled classes""" pickle_dict = {} _impl_map = { "c-extension": "_multidict", From 7b9f81583e97ed0816aab50e554e5b69a5875bd5 Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:30:07 -0800 Subject: [PATCH 04/12] Fix typing --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index d79446862..e21b9d946 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -164,7 +164,7 @@ def write(cls, proto): @pytest.fixture(scope="function") -def in_memory_pickle_classes(multidict_module: ModuleType) -> Callable: +def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, str]: """Generates a dict for in-memory storage of pickled classes""" pickle_dict = {} _impl_map = { From 5300c00862b63df2be4a73771b1c9a739e04e18c Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:33:33 -0800 Subject: [PATCH 05/12] Fix ci stuff --- tests/conftest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e21b9d946..29e12988f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -158,12 +158,12 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion -def write(cls, proto): +def write(cls: Any, proto: int) -> str: d = cls([("a", 1), ("a", 2)]) return pickle.dumps(d, proto) -@pytest.fixture(scope="function") +@pytest.fixture def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, str]: """Generates a dict for in-memory storage of pickled classes""" pickle_dict = {} From ec3739b2c8d47c5af2ba90b0bd5331ed82990336 Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:34:35 -0800 Subject: [PATCH 06/12] Fix ci stuff again --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 29e12988f..7a1fd77a1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,7 @@ from importlib import import_module from sys import version_info as _version_info from types import ModuleType -from typing import Callable, Type +from typing import Any, Callable, Type try: from functools import cached_property # Python 3.8+ From 3eba40ea42c42b5b8339be82c8eba03f602014fa Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Tue, 16 Jan 2024 20:38:35 -0800 Subject: [PATCH 07/12] Last attempt --- tests/conftest.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 7a1fd77a1..c47dd1f6a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -158,13 +158,13 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion -def write(cls: Any, proto: int) -> str: +def write(cls: Any, proto: int) -> bytes: d = cls([("a", 1), ("a", 2)]) return pickle.dumps(d, proto) @pytest.fixture -def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, str]: +def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, bytes]: """Generates a dict for in-memory storage of pickled classes""" pickle_dict = {} _impl_map = { @@ -175,9 +175,8 @@ def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, str]: for tag, impl_name in _impl_map.items(): impl = import_module(f"multidict.{impl_name}") for cls in impl.CIMultiDict, impl.MultiDict: - pickle_dict[f"{cls.__name__.lower()}-{tag}.pickle.{proto}"] = write( - cls, proto - ) + file_key = f"{cls.__name__.lower()}-{tag}.pickle.{proto}" + pickle_dict[file_key] = write(cls, proto) return pickle_dict From 57117400ce6d46a90db583681f7becd98d3b7536 Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Sun, 21 Jan 2024 04:31:31 +0530 Subject: [PATCH 08/12] Addressing review comments --- .gitignore | 3 +++ tests/conftest.py | 32 ++++++++++++-------------------- tests/test_pickle.py | 12 ++---------- 3 files changed, 17 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index df84ce08a..901ee9d0e 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,6 @@ TAGS # pyenv .python-version + +# .pkl files in tests folder +tests/*.pickle.* diff --git a/tests/conftest.py b/tests/conftest.py index c47dd1f6a..2bcf3964e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,7 @@ from importlib import import_module from sys import version_info as _version_info from types import ModuleType -from typing import Any, Callable, Type +from typing import Callable, Type try: from functools import cached_property # Python 3.8+ @@ -158,28 +158,20 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion -def write(cls: Any, proto: int) -> bytes: - d = cls([("a", 1), ("a", 2)]) +@pytest.fixture( + scope="function", + 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) -@pytest.fixture -def in_memory_pickle_classes(multidict_module: ModuleType) -> dict[str, bytes]: - """Generates a dict for in-memory storage of pickled classes""" - pickle_dict = {} - _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: - file_key = f"{cls.__name__.lower()}-{tag}.pickle.{proto}" - pickle_dict[file_key] = write(cls, proto) - return pickle_dict - - def pytest_addoption( parser: pytest.Parser, pluginmanager: pytest.PytestPluginManager, diff --git a/tests/test_pickle.py b/tests/test_pickle.py index 9a3c148db..f144e17a6 100644 --- a/tests/test_pickle.py +++ b/tests/test_pickle.py @@ -24,18 +24,10 @@ def test_pickle_proxy(any_multidict_class, any_multidict_proxy_class): def test_load_from_file( any_multidict_class, multidict_implementation, - in_memory_pickle_classes, + in_memory_pickle_object, pickle_protocol, ): - multidict_class_name = any_multidict_class.__name__ - pickle_file_basename = "-".join( - ( - multidict_class_name.lower(), - multidict_implementation.tag, - ) - ) d = any_multidict_class([("a", 1), ("a", 2)]) - fname = f"{pickle_file_basename}.pickle.{pickle_protocol}" - obj = pickle.loads(in_memory_pickle_classes[fname]) + obj = pickle.loads(in_memory_pickle_object) assert d == obj assert isinstance(obj, any_multidict_class) From 187f1b147434cecf49ad8327238996d342afaabc Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Sun, 21 Jan 2024 04:38:37 +0530 Subject: [PATCH 09/12] Add back pickle files --- .gitignore | 2 -- tests/cimultidict-c-extension.pickle.0 | 14 ++++++++++++++ tests/cimultidict-c-extension.pickle.1 | Bin 0 -> 71 bytes tests/cimultidict-c-extension.pickle.2 | Bin 0 -> 70 bytes tests/cimultidict-c-extension.pickle.3 | Bin 0 -> 70 bytes tests/cimultidict-c-extension.pickle.4 | Bin 0 -> 73 bytes tests/cimultidict-c-extension.pickle.5 | Bin 0 -> 73 bytes tests/cimultidict-pure-python.pickle.0 | 14 ++++++++++++++ tests/cimultidict-pure-python.pickle.1 | Bin 0 -> 74 bytes tests/cimultidict-pure-python.pickle.2 | Bin 0 -> 73 bytes tests/cimultidict-pure-python.pickle.3 | Bin 0 -> 73 bytes tests/cimultidict-pure-python.pickle.4 | Bin 0 -> 76 bytes tests/cimultidict-pure-python.pickle.5 | Bin 0 -> 76 bytes tests/multidict-c-extension.pickle.0 | 14 ++++++++++++++ tests/multidict-c-extension.pickle.1 | Bin 0 -> 69 bytes tests/multidict-c-extension.pickle.2 | Bin 0 -> 68 bytes tests/multidict-c-extension.pickle.3 | Bin 0 -> 68 bytes tests/multidict-c-extension.pickle.4 | Bin 0 -> 71 bytes tests/multidict-c-extension.pickle.5 | Bin 0 -> 71 bytes tests/multidict-pure-python.pickle.0 | 14 ++++++++++++++ tests/multidict-pure-python.pickle.1 | Bin 0 -> 72 bytes tests/multidict-pure-python.pickle.2 | Bin 0 -> 71 bytes tests/multidict-pure-python.pickle.3 | Bin 0 -> 71 bytes tests/multidict-pure-python.pickle.4 | Bin 0 -> 74 bytes tests/multidict-pure-python.pickle.5 | Bin 0 -> 74 bytes 25 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 tests/cimultidict-c-extension.pickle.0 create mode 100644 tests/cimultidict-c-extension.pickle.1 create mode 100644 tests/cimultidict-c-extension.pickle.2 create mode 100644 tests/cimultidict-c-extension.pickle.3 create mode 100644 tests/cimultidict-c-extension.pickle.4 create mode 100644 tests/cimultidict-c-extension.pickle.5 create mode 100644 tests/cimultidict-pure-python.pickle.0 create mode 100644 tests/cimultidict-pure-python.pickle.1 create mode 100644 tests/cimultidict-pure-python.pickle.2 create mode 100644 tests/cimultidict-pure-python.pickle.3 create mode 100644 tests/cimultidict-pure-python.pickle.4 create mode 100644 tests/cimultidict-pure-python.pickle.5 create mode 100644 tests/multidict-c-extension.pickle.0 create mode 100644 tests/multidict-c-extension.pickle.1 create mode 100644 tests/multidict-c-extension.pickle.2 create mode 100644 tests/multidict-c-extension.pickle.3 create mode 100644 tests/multidict-c-extension.pickle.4 create mode 100644 tests/multidict-c-extension.pickle.5 create mode 100644 tests/multidict-pure-python.pickle.0 create mode 100644 tests/multidict-pure-python.pickle.1 create mode 100644 tests/multidict-pure-python.pickle.2 create mode 100644 tests/multidict-pure-python.pickle.3 create mode 100644 tests/multidict-pure-python.pickle.4 create mode 100644 tests/multidict-pure-python.pickle.5 diff --git a/.gitignore b/.gitignore index 901ee9d0e..558519b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -87,5 +87,3 @@ TAGS # pyenv .python-version -# .pkl files in tests folder -tests/*.pickle.* diff --git a/tests/cimultidict-c-extension.pickle.0 b/tests/cimultidict-c-extension.pickle.0 new file mode 100644 index 000000000..7b2ed0084 --- /dev/null +++ b/tests/cimultidict-c-extension.pickle.0 @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..225458ba2998e4bffa0743efd5a7deaf743fec8d GIT binary patch literal 71 zcmYe!EzK#(Ovy|x(Tj&Oxtu+HLBcLTVXi_3jo3m)4UGs!1_p-2LMCsF|Fmekfl)}TT*Jph?>7Hj|j literal 0 HcmV?d00001 diff --git a/tests/cimultidict-pure-python.pickle.3 b/tests/cimultidict-pure-python.pickle.3 new file mode 100644 index 0000000000000000000000000000000000000000..821659fe0c533bab0878905c546eecba0a615e06 GIT binary patch literal 73 zcmZo*PR=dODalO9OfJ!jhcn{~D!H6JeL*rVKpCz=hS)+zjR-~t28P5!CU3^JLgox6 RZ>F|Fmekfl)}TT*Jph@!7Ht3k literal 0 HcmV?d00001 diff --git a/tests/cimultidict-pure-python.pickle.4 b/tests/cimultidict-pure-python.pickle.4 new file mode 100644 index 0000000000000000000000000000000000000000..a17c6e9b7310ef336d979e789fd08eb0164595f1 GIT binary patch literal 76 zcmZo*nd-;@0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sss!8rT2; literal 0 HcmV?d00001 diff --git a/tests/cimultidict-pure-python.pickle.5 b/tests/cimultidict-pure-python.pickle.5 new file mode 100644 index 0000000000000000000000000000000000000000..479bfe3a5d31230a148347800a204feb4e67f5ab GIT binary patch literal 76 zcmZo*o$AN{0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sstq8rc8< literal 0 HcmV?d00001 diff --git a/tests/multidict-c-extension.pickle.0 b/tests/multidict-c-extension.pickle.0 new file mode 100644 index 000000000..eb979fcf7 --- /dev/null +++ b/tests/multidict-c-extension.pickle.0 @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..a4f211d7b1b279f17193e02902eb401bdb048284 GIT binary patch literal 69 zcmYe!EzK#(Ovy|x(Tj&OxqLx_EEw$ Nmei6$)}TT*Jpd+E6j=ZO literal 0 HcmV?d00001 diff --git a/tests/multidict-c-extension.pickle.2 b/tests/multidict-c-extension.pickle.2 new file mode 100644 index 0000000000000000000000000000000000000000..b4563f879d07a3b464ce12750446f8f83f96f701 GIT binary patch literal 68 zcmZo*O3p3KDalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102F={m;e9( literal 0 HcmV?d00001 diff --git a/tests/multidict-c-extension.pickle.3 b/tests/multidict-c-extension.pickle.3 new file mode 100644 index 0000000000000000000000000000000000000000..415960a3eed71ea29e91f5b999b47d2a295126f3 GIT binary patch literal 68 zcmZo*PR=dODalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102IL#nE(I) literal 0 HcmV?d00001 diff --git a/tests/multidict-c-extension.pickle.4 b/tests/multidict-c-extension.pickle.4 new file mode 100644 index 0000000000000000000000000000000000000000..00ef17c3f7fe56b2bf60cd9dc8475165d587c8c0 GIT binary patch literal 71 zcmZo*nQFrT0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05wn;`Tzg` literal 0 HcmV?d00001 diff --git a/tests/multidict-c-extension.pickle.5 b/tests/multidict-c-extension.pickle.5 new file mode 100644 index 0000000000000000000000000000000000000000..2c4ae0a0d38c23c01f355afdaf9478080befb4a8 GIT binary patch literal 71 zcmZo*ood4X0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05z5v`v3p{ literal 0 HcmV?d00001 diff --git a/tests/multidict-pure-python.pickle.0 b/tests/multidict-pure-python.pickle.0 new file mode 100644 index 000000000..e91023ecf --- /dev/null +++ b/tests/multidict-pure-python.pickle.0 @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..acce9bf79393e3f2dc041c4a3d43ad1f236a7204 GIT binary patch literal 72 zcmYe!EzK#(Ovy|x(Tj&O;|nUed_m$aKyj`@294N4Mh%S!Mg|6k#6l)-#*#v2jSMDl QrjkOI)RIEhph7l10Dt%up#T5? literal 0 HcmV?d00001 diff --git a/tests/multidict-pure-python.pickle.2 b/tests/multidict-pure-python.pickle.2 new file mode 100644 index 0000000000000000000000000000000000000000..900446ad8da48c67a13c728ec7fb6ffa7d255c62 GIT binary patch literal 71 zcmZo*O3p3KDalO9OfJ!jhcn{~D!F_?;x0gOu0n>`LPm`UMg|6k#6l)-#`LPm`UMg|6k#6l)-# Date: Sun, 21 Jan 2024 04:40:57 +0530 Subject: [PATCH 10/12] Removing back pickle files completely and updating gitignore --- .gitignore | 2 ++ tests/cimultidict-c-extension.pickle.0 | 14 -------------- tests/cimultidict-c-extension.pickle.1 | Bin 71 -> 0 bytes tests/cimultidict-c-extension.pickle.2 | Bin 70 -> 0 bytes tests/cimultidict-c-extension.pickle.3 | Bin 70 -> 0 bytes tests/cimultidict-c-extension.pickle.4 | Bin 73 -> 0 bytes tests/cimultidict-c-extension.pickle.5 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.0 | 14 -------------- tests/cimultidict-pure-python.pickle.1 | Bin 74 -> 0 bytes tests/cimultidict-pure-python.pickle.2 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.3 | Bin 73 -> 0 bytes tests/cimultidict-pure-python.pickle.4 | Bin 76 -> 0 bytes tests/cimultidict-pure-python.pickle.5 | Bin 76 -> 0 bytes tests/multidict-c-extension.pickle.0 | 14 -------------- tests/multidict-c-extension.pickle.1 | Bin 69 -> 0 bytes tests/multidict-c-extension.pickle.2 | Bin 68 -> 0 bytes tests/multidict-c-extension.pickle.3 | Bin 68 -> 0 bytes tests/multidict-c-extension.pickle.4 | Bin 71 -> 0 bytes tests/multidict-c-extension.pickle.5 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.0 | 14 -------------- tests/multidict-pure-python.pickle.1 | Bin 72 -> 0 bytes tests/multidict-pure-python.pickle.2 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.3 | Bin 71 -> 0 bytes tests/multidict-pure-python.pickle.4 | Bin 74 -> 0 bytes tests/multidict-pure-python.pickle.5 | Bin 74 -> 0 bytes 25 files changed, 2 insertions(+), 56 deletions(-) delete mode 100644 tests/cimultidict-c-extension.pickle.0 delete mode 100644 tests/cimultidict-c-extension.pickle.1 delete mode 100644 tests/cimultidict-c-extension.pickle.2 delete mode 100644 tests/cimultidict-c-extension.pickle.3 delete mode 100644 tests/cimultidict-c-extension.pickle.4 delete mode 100644 tests/cimultidict-c-extension.pickle.5 delete mode 100644 tests/cimultidict-pure-python.pickle.0 delete mode 100644 tests/cimultidict-pure-python.pickle.1 delete mode 100644 tests/cimultidict-pure-python.pickle.2 delete mode 100644 tests/cimultidict-pure-python.pickle.3 delete mode 100644 tests/cimultidict-pure-python.pickle.4 delete mode 100644 tests/cimultidict-pure-python.pickle.5 delete mode 100644 tests/multidict-c-extension.pickle.0 delete mode 100644 tests/multidict-c-extension.pickle.1 delete mode 100644 tests/multidict-c-extension.pickle.2 delete mode 100644 tests/multidict-c-extension.pickle.3 delete mode 100644 tests/multidict-c-extension.pickle.4 delete mode 100644 tests/multidict-c-extension.pickle.5 delete mode 100644 tests/multidict-pure-python.pickle.0 delete mode 100644 tests/multidict-pure-python.pickle.1 delete mode 100644 tests/multidict-pure-python.pickle.2 delete mode 100644 tests/multidict-pure-python.pickle.3 delete mode 100644 tests/multidict-pure-python.pickle.4 delete mode 100644 tests/multidict-pure-python.pickle.5 diff --git a/.gitignore b/.gitignore index 558519b2d..551382e6b 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,5 @@ 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 225458ba2998e4bffa0743efd5a7deaf743fec8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmYe!EzK#(Ovy|x(Tj&Oxtu+HLBcLTVXi_3jo3m)4UGs!1_p-2LMCsF|Fmekfl)}TT*Jph?>7Hj|j diff --git a/tests/cimultidict-pure-python.pickle.3 b/tests/cimultidict-pure-python.pickle.3 deleted file mode 100644 index 821659fe0c533bab0878905c546eecba0a615e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZo*PR=dODalO9OfJ!jhcn{~D!H6JeL*rVKpCz=hS)+zjR-~t28P5!CU3^JLgox6 RZ>F|Fmekfl)}TT*Jph@!7Ht3k diff --git a/tests/cimultidict-pure-python.pickle.4 b/tests/cimultidict-pure-python.pickle.4 deleted file mode 100644 index a17c6e9b7310ef336d979e789fd08eb0164595f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmZo*nd-;@0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sss!8rT2; diff --git a/tests/cimultidict-pure-python.pickle.5 b/tests/cimultidict-pure-python.pickle.5 deleted file mode 100644 index 479bfe3a5d31230a148347800a204feb4e67f5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmZo*o$AN{0X^cmr8y;;DVfP7dhu{(d_m=u9&Tq(Uyz&&P;ScPDX~*DdKeR@cr&(5 R$zbtjYMYYUIwfd|9sstq8rc8< 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 a4f211d7b1b279f17193e02902eb401bdb048284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmYe!EzK#(Ovy|x(Tj&OxqLx_EEw$ Nmei6$)}TT*Jpd+E6j=ZO diff --git a/tests/multidict-c-extension.pickle.2 b/tests/multidict-c-extension.pickle.2 deleted file mode 100644 index b4563f879d07a3b464ce12750446f8f83f96f701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZo*O3p3KDalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102F={m;e9( diff --git a/tests/multidict-c-extension.pickle.3 b/tests/multidict-c-extension.pickle.3 deleted file mode 100644 index 415960a3eed71ea29e91f5b999b47d2a295126f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmZo*PR=dODalO9OfJ!jhcmf+L4qzoL9RlE*g{5)2u215hQvZ9Z^pJl<_soprnW+s M)Yd}Qph7l102IL#nE(I) diff --git a/tests/multidict-c-extension.pickle.4 b/tests/multidict-c-extension.pickle.4 deleted file mode 100644 index 00ef17c3f7fe56b2bf60cd9dc8475165d587c8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*nQFrT0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05wn;`Tzg` diff --git a/tests/multidict-c-extension.pickle.5 b/tests/multidict-c-extension.pickle.5 deleted file mode 100644 index 2c4ae0a0d38c23c01f355afdaf9478080befb4a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*ood4X0X-tQr8y;;DVfP7dhu}PlpaoBkgy9-c*^7{u~Rg97!#*>Gqz31VDV;Z Mo08f(C1{Es05z5v`v3p{ 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 acce9bf79393e3f2dc041c4a3d43ad1f236a7204..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 zcmYe!EzK#(Ovy|x(Tj&O;|nUed_m$aKyj`@294N4Mh%S!Mg|6k#6l)-#*#v2jSMDl QrjkOI)RIEhph7l10Dt%up#T5? diff --git a/tests/multidict-pure-python.pickle.2 b/tests/multidict-pure-python.pickle.2 deleted file mode 100644 index 900446ad8da48c67a13c728ec7fb6ffa7d255c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71 zcmZo*O3p3KDalO9OfJ!jhcn{~D!F_?;x0gOu0n>`LPm`UMg|6k#6l)-#`LPm`UMg|6k#6l)-# Date: Sun, 21 Jan 2024 04:47:44 +0530 Subject: [PATCH 11/12] Remove superflous pickle_protocol cause it was repeating tests --- tests/test_pickle.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_pickle.py b/tests/test_pickle.py index f144e17a6..5fc963cdc 100644 --- a/tests/test_pickle.py +++ b/tests/test_pickle.py @@ -25,7 +25,6 @@ def test_load_from_file( any_multidict_class, multidict_implementation, in_memory_pickle_object, - pickle_protocol, ): d = any_multidict_class([("a", 1), ("a", 2)]) obj = pickle.loads(in_memory_pickle_object) From a10412cd1f9c3a64e40ee870dac1330c6a345cca Mon Sep 17 00:00:00 2001 From: Vinay Damodaran Date: Sun, 21 Jan 2024 05:02:49 +0530 Subject: [PATCH 12/12] Trying to placate mypy --- tests/conftest.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 2bcf3964e..deec11dfe 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -158,10 +158,7 @@ def multidict_getversion_callable(multidict_module: ModuleType) -> Callable: return multidict_module.getversion -@pytest.fixture( - scope="function", - params=list(range(pickle.HIGHEST_PROTOCOL + 1)), -) +@pytest.fixture(params=list(range(pickle.HIGHEST_PROTOCOL + 1))) def in_memory_pickle_object( request: pytest.FixtureRequest, any_multidict_class: Type[MutableMultiMapping[str]],