Skip to content

Commit

Permalink
Raise exception when attempting to deregister and un-registered toolkit
Browse files Browse the repository at this point in the history
  • Loading branch information
mattwthompson committed Jun 26, 2020
1 parent 6abb1ca commit 45ab3da
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
6 changes: 5 additions & 1 deletion openforcefield/tests/test_toolkits.py
Expand Up @@ -2407,11 +2407,15 @@ def test_deregister_toolkit_by_class(self):
reason='RDKitToolkit and AmberToolsToolkit not available')
def test_deregister_toolkit_bad_inputs(self):
"""Test bad inputs to deregister_toolkit"""
toolkit_registry = ToolkitRegistry(toolkit_precedence=[AmberToolsToolkitWrapper, RDKitToolkitWrapper])
toolkit_registry = ToolkitRegistry(toolkit_precedence=[AmberToolsToolkitWrapper])

with pytest.raises(InvalidToolkitError):
toolkit_registry.deregister_toolkit('rdkit as a string')

# Attempt to deregister a toolkit that is not registered
with pytest.raises(ToolkitUnavailableException):
toolkit_registry.deregister_toolkit(RDKitToolkitWrapper)

def test_register_builtintoolkit(self):
"""Test creation of toolkit registry with Built-in toolkit"""
# Test registration of BuiltInToolkitWrapper
Expand Down
8 changes: 7 additions & 1 deletion openforcefield/utils/toolkits.py
Expand Up @@ -4342,7 +4342,13 @@ def deregister_toolkit(self, toolkit_wrapper):
for toolkit in self._toolkits:
if type(toolkit) == type(toolkit_wrapper):
toolkits_to_remove.append(toolkit)
# TODO: add else clause to warn user if toolkits_to_remove is empty?

if not toolkits_to_remove:
msg = (
f"Did not find {toolkit_wrapper} in registry. "
f"Currently registered toolkits are {self._toolkits}"
)
raise ToolkitUnavailableException(msg)

for toolkit_to_remove in toolkits_to_remove:
self._toolkits.remove(toolkit_to_remove)
Expand Down

0 comments on commit 45ab3da

Please sign in to comment.