diff --git a/requirements-dev.txt b/requirements-dev.txt index 9ac277d..2a7347d 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,6 +6,7 @@ pytest==4.6.9 ; python_version < '3.0' pytest==5.3.5 ; python_version >= '3.0' pytest-cov==2.8.1 coveralls==1.11.1 +nose == 1.3.7 # Documentation Sphinx==1.8.5 ; python_version < '3.5' diff --git a/skosprovider_getty/utils.py b/skosprovider_getty/utils.py index c609cc2..5d39d3f 100644 --- a/skosprovider_getty/utils.py +++ b/skosprovider_getty/utils.py @@ -279,7 +279,10 @@ def hierarchy_notetypes(list): def uri_to_id(uri): - return uri.strip('/').rsplit('/', 1)[1] + try: + return uri.strip('/').rsplit('/', 1)[1] + except IndexError: + return uri def uri_to_graph(uri, **kwargs): diff --git a/tests/test_providers.py b/tests/test_providers.py index d14fb92..1cfab26 100644 --- a/tests/test_providers.py +++ b/tests/test_providers.py @@ -123,6 +123,11 @@ def test_get_by_uri(self): self.assertEqual(concept['uri'], 'http://vocab.getty.edu/aat/300007466') self.assertEqual(concept['id'], '300007466') + def test_get_by_uri_invalid(self): + # Default GettyProvider is an AAT provider + concept = GettyProvider({'id': 'AAT'}).get_by_uri('urn:skosprovider:5') + self.assertFalse(concept) + def test_get_by_id_tgn(self): concept = TGNProvider({'id': 'TGN'}).get_by_id('1000063') concept = concept.__dict__