diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index f8a7659..d41a0d9 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -25,7 +25,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - pip install pytest + pip install pytest dill - name: Test with pytest run: | pytest diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index 8b3d4e9..97e0f97 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -27,7 +27,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - pip install pytest + pip install pytest dill - name: Test with pytest run: | pytest diff --git a/optionsfactory/tests/test_options.py b/optionsfactory/tests/test_options.py index f1ae233..6303957 100644 --- a/optionsfactory/tests/test_options.py +++ b/optionsfactory/tests/test_options.py @@ -708,3 +708,13 @@ def test_nested_with_arg_initialise(self): assert opts.doc["subsection2"]["e"] is None assert opts.subsection2.subsubsection.doc["f"] == "option f" assert opts.subsection3.doc["z"] == "option z" + + def test_dill_pickling(self): + import dill + + factory = OptionsFactory(foo="bar") + options = factory.create() + pickled = dill.dumps(options) + unpickled = dill.loads(pickled, ignore=True) + + assert unpickled.foo == "bar" diff --git a/setup.py b/setup.py index 22e7bef..c94a7f4 100644 --- a/setup.py +++ b/setup.py @@ -15,6 +15,7 @@ "checking" ), extras_require={"yaml": "PyYAML>=5.1"}, + tests_require=["dill>=0.3.0"], license="OSI Approved :: GNU General Public License v3 or later (GPLv3+)", long_description=long_description, long_description_content_type="text/markdown",