diff --git a/pyiron_workflow/storage.py b/pyiron_workflow/storage.py index 9e7a93ca..7f1b7b6f 100644 --- a/pyiron_workflow/storage.py +++ b/pyiron_workflow/storage.py @@ -297,11 +297,15 @@ def available_backends( """ standard_backends = {"pickle": PickleStorage} - backend = standard_backends.get(backend, PickleStorage)() if isinstance(backend, str) else backend - - if backend is not None: - yield backend + backend_instance = ( + standard_backends.get(backend, PickleStorage)() + if isinstance(backend, str) + else backend + ) + + if backend_instance is not None: + yield backend_instance if only_requested: return - yield from (v() for v in standard_backends.values() if not isinstance(backend, v)) + yield from (v() for k, v in standard_backends.items() if k != backend) diff --git a/tests/unit/test_node.py b/tests/unit/test_node.py index 25119400..4a34435d 100644 --- a/tests/unit/test_node.py +++ b/tests/unit/test_node.py @@ -217,7 +217,7 @@ def test_failure_recovery(self): msg="Expect a recovery file to be saved on failure", ) - reloaded = ANode(label="failing", autoload=True) + reloaded = ANode(label="failing") self.assertIs( reloaded.inputs.x.value, NOT_DATA, diff --git a/tests/unit/test_storage.py b/tests/unit/test_storage.py index 8587c4ba..0883bd3e 100644 --- a/tests/unit/test_storage.py +++ b/tests/unit/test_storage.py @@ -30,15 +30,24 @@ def test_specific_backend(self): self.assertIsInstance(backends[0], PickleStorage) def test_extra_backend(self): - my_interface = PickleStorage() - backends = list(available_backends(my_interface)) - self.assertEqual( - len(backends), 2, msg="We expect both the one we passed, and all defaults" - ) - self.assertIs(backends[0], my_interface) - self.assertIsNot( - backends[0], backends[1], msg="They should be separate instances" - ) + with self.subTest("String backend"): + backends = list(available_backends("pickle")) + print(backends) + self.assertEqual(len(backends), 1, msg="We expect only the defaults") + self.assertIsInstance(backends[0], PickleStorage) + + with self.subTest("Object backend"): + my_interface = PickleStorage() + backends = list(available_backends(my_interface)) + self.assertEqual( + len(backends), + 2, + msg="We expect both the one we passed, and all defaults", + ) + self.assertIs(backends[0], my_interface) + self.assertIsNot( + backends[0], backends[1], msg="They should be separate instances" + ) def test_exclusive_backend(self): my_interface = PickleStorage() diff --git a/tests/unit/test_type_hinting.py b/tests/unit/test_type_hinting.py index e4e3454d..d4058ef1 100644 --- a/tests/unit/test_type_hinting.py +++ b/tests/unit/test_type_hinting.py @@ -118,7 +118,7 @@ def test_hint_comparisons(self): def test_get_type_hints(self): for hint, origin in [ - (int | float, type(int| float)), + (int | float, type(int | float)), (typing.Annotated[int | float, "foo"], type(int | float)), (int, None), (typing.Annotated[int, "foo"], None), @@ -129,6 +129,5 @@ def test_get_type_hints(self): self.assertEqual(_get_type_hints(hint)[0], origin) - if __name__ == "__main__": unittest.main()