class TestConceptSchemeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.accept = 'text/html' self.request.data_managers = data_managers(self.request) self.request.skos_registry = self.regis def tearDown(self): testing.tearDown() def test_conceptschemes_view(self): atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptschemes_view() self.assertIn('conceptschemes', res) self.assertEqual(len(res['conceptschemes']), 1) cs = res['conceptschemes'][0] self.assertIn('id', cs) self.assertIn('conceptscheme', cs) def test_conceptscheme_view(self): self.request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptscheme_view() self.assertIsNotNone(res) self.assertIsNotNone(res['conceptscheme']) self.assertEqual(res['conceptscheme']['title'], 'TREES') self.assertEqual(res['conceptscheme']['scheme_id'], 'TREES') self.assertEqual(res['conceptscheme']['uri'], 'urn:x-skosprovider:trees') self.assertIsNotNone(res['conceptscheme']['labels']) self.assertIsNotNone(res['conceptscheme']['notes']) self.assertIsNotNone(res['conceptscheme']['top_concepts'])
class TestConceptSchemeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.db = db(self.request) self.request.skos_registry = self.regis def tearDown(self): testing.tearDown() def test_conceptschemes_view(self): atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptschemes_view() self.assertEqual( {'conceptschemes': [{ 'id': u'TREES', 'uri': 'urn:test:test' }]}, res) def test_conceptscheme_view(self): self.request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptscheme_view() self.assertIsNotNone(res) self.assertIsNotNone(res['conceptscheme']) self.assertEqual(res['conceptscheme']['title'], 'TREES') self.assertEqual(res['conceptscheme']['scheme_id'], 'TREES') self.assertEqual(res['conceptscheme']['uri'], 'urn:x-skosprovider:trees') self.assertIsNotNone(res['conceptscheme']['labels']) self.assertIsNotNone(res['conceptscheme']['notes']) self.assertIsNotNone(res['conceptscheme']['top_concepts'])
class TestAdminView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_no_registry(self): error_raised = False request = testing.DummyRequest() try: AtramhasisAdminView(request) except SkosRegistryNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.admin_view() self.assertIsNotNone(info) self.assertTrue('admin' in info) def test_invalidate_scheme_tree(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.invalidate_scheme_tree() self.assertIsNotNone(info)
class TestConceptSchemeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.db = db(self.request) self.request.skos_registry = self.regis def tearDown(self): testing.tearDown() def test_conceptschemes_view(self): atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptschemes_view() self.assertEqual({'conceptschemes': [{'id': u'TREES', 'uri': 'urn:test:test'}]}, res) def test_conceptscheme_view(self): self.request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptscheme_view() self.assertIsNotNone(res) self.assertIsNotNone(res['conceptscheme']) self.assertEqual(res['conceptscheme']['title'], 'TREES') self.assertEqual(res['conceptscheme']['scheme_id'], 'TREES') self.assertEqual(res['conceptscheme']['uri'], 'urn:x-skosprovider:trees') self.assertIsNotNone(res['conceptscheme']['labels']) self.assertIsNotNone(res['conceptscheme']['notes']) self.assertIsNotNone(res['conceptscheme']['top_concepts'])
class TestAdminView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_no_registry(self): error_raised = False request = testing.DummyRequest() try: AtramhasisAdminView(request) except SkosRegistryNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.admin_view() self.assertIsNotNone(info) self.assertTrue('admin' in info) def test_invalidate_scheme_tree(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.invalidate_scheme_tree() self.assertIsNotNone(info)
class TestConceptSchemeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.accept = ['text/html'] self.request.data_managers = data_managers(self.request) self.request.skos_registry = self.regis def tearDown(self): testing.tearDown() def test_conceptschemes_view(self): atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptschemes_view() self.assertIn('conceptschemes', res) self.assertEqual(len(res['conceptschemes']), 1) cs = res['conceptschemes'][0] self.assertIn('id', cs) self.assertIn('conceptscheme', cs) def test_conceptscheme_view(self): self.request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(self.request) res = atramhasisview.conceptscheme_view() self.assertIsNotNone(res) self.assertIsNotNone(res['conceptscheme']) self.assertEqual(res['conceptscheme']['title'], 'TREES') self.assertEqual(res['conceptscheme']['scheme_id'], 'TREES') self.assertEqual(res['conceptscheme']['uri'], 'urn:x-skosprovider:trees') self.assertIsNotNone(res['conceptscheme']['labels']) self.assertIsNotNone(res['conceptscheme']['notes']) self.assertIsNotNone(res['conceptscheme']['top_concepts'])
class TestLocaleView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) config = testing.setUp() config.add_route('home', 'foo') config.add_settings(settings) self.request = testing.DummyRequest() self.request.data_managers = {'skos_manager': None, 'conceptscheme_manager': None, 'audit_manager': None} def tearDown(self): testing.tearDown() def test_default_locale(self): config_default_lang = settings.get('pyramid.default_locale_name') self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + config_default_lang)) def test_unsupported_lang(self): config_default_lang = settings.get('pyramid.default_locale_name') self.request.GET['language'] = 'XX' self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + config_default_lang)) def test_locale(self): testlang = 'it' self.request.GET['language'] = testlang self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + testlang)) def test_locale_uppercase(self): testlang = 'it' self.request.GET['language'] = testlang.upper() self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + testlang)) def test_referer(self): testlang = 'it' testurl = 'http://www.foo.bar' self.request.GET['language'] = testlang.upper() self.request.referer = testurl self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertEqual(res.status, '302 Found') self.assertEqual(res.location, testurl)
class TestLocaleView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) config = testing.setUp() config.add_route('home', 'foo') config.add_settings(settings) self.request = testing.DummyRequest() self.request.data_managers = {'skos_manager': None, 'conceptscheme_manager': None, 'audit_manager': None} def tearDown(self): testing.tearDown() def test_default_locale(self): config_default_lang = settings.get('pyramid.default_locale_name') self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + config_default_lang)) def test_unsupported_lang(self): config_default_lang = settings.get('pyramid.default_locale_name') self.request.GET['language'] = 'XX' self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + config_default_lang)) def test_locale(self): testlang = 'it' self.request.GET['language'] = testlang self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + testlang)) def test_locale_uppercase(self): testlang = 'it' self.request.GET['language'] = testlang.upper() self.request.referer = None self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertTrue((res.headers.get('Set-Cookie')).startswith('_LOCALE_=' + testlang)) def test_referer(self): testlang = 'it' testurl = 'http://www.foo.bar' self.request.GET['language'] = testlang.upper() self.request.referer = testurl self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) res = atramhasisview.set_locale_cookie() self.assertEqual(res.status, '302 Found') self.assertEqual(res.location, testurl)
class TestSearchResultView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.data_managers = { 'skos_manager': None, 'conceptscheme_manager': None, 'audit_manager': None } def tearDown(self): testing.tearDown() def test_find_by_label(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('label', 'De Paardekastanje') self.request.params.add('_LOCALE_', 'nl') self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) concept = info['concepts'][0] self.assertIsNotNone(concept) self.assertEqual(concept['label'], 'De Paardekastanje') self.assertEqual(info['scheme_id'], 'TREES') def test_find_by_concept(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('ctype', 'concept') self.request.params.add('_LOCALE_', 'nl') self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) concept = info['concepts'][0] self.assertIsNotNone(concept) self.assertEqual(info['scheme_id'], 'TREES') def test_no_querystring(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) self.assertEqual(len(info['concepts']), 3) def test_no_schema(self): self.request.matchdict['scheme_id'] = 'GG' self.request.params = MultiDict() self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.search_result() self.assertEqual(info.status_int, 404)
class TestSearchResultView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_find_by_label(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.params = MultiDict() request.params.add('label', 'De Paardekastanje') request.params.add('_LOCALE_', 'nl') request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) concept = info['concepts'][0] self.assertIsNotNone(concept) self.assertEqual(concept['label'], 'De Paardekastanje') self.assertEqual(info['scheme_id'], 'TREES') def test_find_by_concept(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.params = MultiDict() request.params.add('ctype', 'concept') request.params.add('_LOCALE_', 'nl') request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) concept = info['concepts'][0] self.assertIsNotNone(concept) self.assertEqual(info['scheme_id'], 'TREES') def test_no_querystring(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.params = MultiDict() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.search_result() self.assertIsNotNone(info['concepts']) self.assertEqual(len(info['concepts']), 3) def test_no_schema(self): request = testing.DummyRequest() request.matchdict['scheme_id'] = 'GG' request.params = MultiDict() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.search_result() self.assertEqual(info.status_int, 404)
class TestAdminView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_no_registry(self): error_raised = False request = testing.DummyRequest() try: AtramhasisAdminView(request) except SkosRegistryNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.admin_view() self.assertIsNotNone(info) self.assertTrue('admin' in info) def test_invalidate_scheme_tree(self): tree_cache_dictionary['foo |TREES nl'] = [] tree_cache_dictionary['foo |TREES fr'] = [] tree_cache_dictionary['bar |MATERIALS fr'] = [] request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) response = atramhasisAdminview.invalidate_scheme_tree() self.assertEqual(response.status_int, 200) self.assertIn('bar |MATERIALS fr', tree_cache_dictionary.keys()) self.assertNotIn('foo |TREES nl', tree_cache_dictionary.keys()) self.assertNotIn('foo |TREES fr', tree_cache_dictionary.keys()) def test_invalidate_tree(self): tree_cache_dictionary['foo |TREES nl'] = [] tree_cache_dictionary['foo |TREES fr'] = [] tree_cache_dictionary['bar |MATERIALS fr'] = [] request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) response = atramhasisAdminview.invalidate_tree() self.assertEqual(response.status_int, 200) self.assertEqual(len(tree_cache_dictionary), 0)
class TestAdminView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_no_registry(self): error_raised = False request = testing.DummyRequest() try: AtramhasisAdminView(request) except SkosRegistryNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) info = atramhasisAdminview.admin_view() self.assertIsNotNone(info) self.assertTrue('admin' in info) def test_invalidate_scheme_tree(self): tree_cache_dictionary['foo |TREES nl'] = [] tree_cache_dictionary['foo |TREES fr'] = [] tree_cache_dictionary['bar |MATERIALS fr'] = [] request = testing.DummyRequest() request.matchdict['scheme_id'] = 'TREES' request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) response = atramhasisAdminview.invalidate_scheme_tree() self.assertEqual(response.status_int, 200) self.assertIn('bar |MATERIALS fr', tree_cache_dictionary.keys()) self.assertNotIn('foo |TREES nl', tree_cache_dictionary.keys()) self.assertNotIn('foo |TREES fr', tree_cache_dictionary.keys()) def test_invalidate_tree(self): tree_cache_dictionary['foo |TREES nl'] = [] tree_cache_dictionary['foo |TREES fr'] = [] tree_cache_dictionary['bar |MATERIALS fr'] = [] request = testing.DummyRequest() request.skos_registry = self.regis atramhasisAdminview = AtramhasisAdminView(request) response = atramhasisAdminview.invalidate_tree() self.assertEqual(response.status_int, 200) self.assertEqual(len(tree_cache_dictionary), 0)
class TestHomeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.home_view() self.assertIsNotNone(info['conceptschemes'][0]) self.assertEqual(info['conceptschemes'][0]['id'], 'TREES')
class TestHomeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.home_view() self.assertIsNotNone(info['conceptschemes'][0]) self.assertEqual(info['conceptschemes'][0]['id'], 'TREES')
class TestFavicoView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) response = atramhasisview.favicon_view() self.assertEqual(response.status_int, 200) self.assertIn('image/x-icon', response.headers['Content-Type']) self.assertIsNotNone(response.body)
class TestFavicoView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis atramhasisview = AtramhasisView(request) response = atramhasisview.favicon_view() self.assertEqual(response.status_int, 200) self.assertIn('image/x-icon', response.headers['Content-Type']) self.assertIsNotNone(response.body)
class TestHtmlTreeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(request) response = atramhasisview.results_tree_html() self.assertEqual(response['conceptType'], None) self.assertEqual(response['concept'], None) self.assertEqual(response['scheme_id'], 'TREES')
class TestHtmlTreeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() def test_passing_view(self): request = testing.DummyRequest() request.skos_registry = self.regis request.matchdict['scheme_id'] = 'TREES' atramhasisview = AtramhasisView(request) response = atramhasisview.results_tree_html() self.assertEqual(response['conceptType'], None) self.assertEqual(response['concept'], None) self.assertEqual(response['scheme_id'], 'TREES')
class TestCsvView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.request = testing.DummyRequest() self.request.accept = '*/*' self.regis = Registry() self.regis.register_provider(provider(1)) self.request.skos_registry = self.regis self.request.data_managers = data_managers(self.request) def tearDown(self): testing.tearDown() def test_csv(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows'])) def test_csv_label(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('label', 'De Paardekastanje') atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows'])) def test_csv_ctype(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('ctype', 'concept') atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows']))
class TestCsvView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.request = testing.DummyRequest() self.request.accept = '*/*' self.regis = Registry() self.regis.register_provider(provider(1)) self.request.skos_registry = self.regis self.request.data_managers = data_managers(self.request) def tearDown(self): testing.tearDown() def test_csv(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows'])) def test_csv_label(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('label', 'De Paardekastanje') atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows'])) def test_csv_ctype(self): self.request.matchdict['scheme_id'] = 'TREES' self.request.params = MultiDict() self.request.params.add('ctype', 'concept') atramhasisview = AtramhasisView(self.request) res = atramhasisview.results_csv() self.assertEqual(res['filename'], 'atramhasis_export') self.assertIsInstance(res['header'], list) self.assertIsInstance(res['rows'], list) self.assertEqual(2, len(res['rows']))
class TestHomeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.regis.register_provider(hidden_provider(2)) self.request = testing.DummyRequest() self.request.data_managers = {'skos_manager': None, 'conceptscheme_manager': None, 'audit_manager': None} def tearDown(self): testing.tearDown() def test_passing_view(self): self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.home_view() self.assertIsNotNone(info['conceptschemes'][0]) self.assertEqual(info['conceptschemes'][0]['id'], 'TREES') self.assertEqual(1, len(info['conceptschemes']))
class TestHomeView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees) self.regis.register_provider(hidden_provider(2)) self.request = testing.DummyRequest() self.request.data_managers = {'skos_manager': None, 'conceptscheme_manager': None, 'audit_manager': None} def tearDown(self): testing.tearDown() def test_passing_view(self): self.request.skos_registry = self.regis atramhasisview = AtramhasisView(self.request) info = atramhasisview.home_view() self.assertIsNotNone(info['conceptschemes'][0]) self.assertEqual(info['conceptschemes'][0]['id'], 'TREES') self.assertEqual(1, len(info['conceptschemes']))
class RegistryTests(unittest.TestCase): def setUp(self): self.reg = Registry() self.prov = trees self.prov2 = geo def tearDown(self): self.reg = None self.prov = None self.prov2 = None def test_default_metadata_is_dict(self): self.assertIsInstance(self.reg.get_metadata(), dict) def test_passed_metadata_is_dict(self): self.reg = Registry(metadata={'catalog': {'uri': 'http://my.data.org'}}) assert 'catalog' in self.reg.get_metadata() assert 'uri' in self.reg.get_metadata().get('catalog') def test_set_instance_scope(self): self.reg = Registry(instance_scope='threaded_global') assert self.reg.instance_scope == 'threaded_global' def test_set_invalid_instance_scope(self): with pytest.raises(ValueError): Registry(instance_scope='bad_scope') def test_empty_register_provider(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) def test_empty_register_removeProvider(self): self.assertFalse(self.reg.remove_provider('TREES')) def test_empty_getProviders(self): self.assertEqual(self.reg.get_providers(), []) self.assertEqual(self.reg.get_providers(ids=[]), []) def test_empty_getProviderById(self): self.assertFalse(self.reg.get_provider('TREES')) self.assertFalse(self.reg.get_provider('http://id.trees.org')) def test_empty_findConcepts(self): self.assertEqual(self.reg.find({}), []) def test_empty_getAllConcepts(self): self.assertEqual(self.reg.get_all(), []) def test_one_provider_register_provider(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) self.assertEqual( self.reg.get_provider('http://id.trees.org'), self.prov ) self.reg.register_provider(self.prov2) self.assertEqual(self.reg.get_provider('GEOGRAPHY'), self.prov2) self.assertEqual( self.reg.get_provider('urn:x-skosprovider:geography'), self.prov2 ) def test_one_provider_register_double_provider(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) self.assertRaises( RegistryException, self.reg.register_provider, self.prov ) #Change the id, but keep identical URIs self.prov.metadata['id'] = 'TREESTOO' self.assertRaises( RegistryException, self.reg.register_provider, self.prov ) self.prov.metadata['id'] = 'TREES' def test_register_provider_wrong_scope(self): from skosprovider.skos import ConceptScheme from skosprovider.providers import DictionaryProvider trees = DictionaryProvider( {'id': 'TREES', 'default_language': 'nl'}, [larch, chestnut, species], concept_scheme=ConceptScheme('urn:something'), allowed_instance_scopes = ['threaded_thread'] ) with pytest.raises(RegistryException): self.reg.register_provider(trees) def test_register_provider_no_uri(self): p = Mock() p.allowed_instance_scopes = ['single'] p.get_vocabulary_id = MagicMock(return_value='MYID') del p.get_vocabulary_uri p.concept_scheme = MagicMock() p.concept_scheme.uri = 'http://my.id.org' self.reg.register_provider(p) assert p == self.reg.get_provider('MYID') assert p == self.reg.get_provider('http://my.id.org') def test_remove_provider_no_uri(self): p = Mock() p.allowed_instance_scopes = ['single'] p.get_vocabulary_id = MagicMock(return_value='MYID') del p.get_vocabulary_uri p.concept_scheme = MagicMock() p.concept_scheme.uri = 'http://my.id.org' self.reg.register_provider(p) assert p == self.reg.get_provider('MYID') assert p == self.reg.get_provider('http://my.id.org') self.reg.remove_provider('http://my.id.org') assert not self.reg.get_provider('MYID') def test_one_provider_removeProvider(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) self.reg.remove_provider('TREES') self.assertFalse(self.reg.get_provider('TREES')) def test_one_provider_removeProviderWithUri(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) self.reg.remove_provider('http://id.trees.org') self.assertFalse(self.reg.get_provider('TREES')) def test_one_provider_getProviders(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_providers(), [self.prov]) self.assertEqual(self.reg.get_providers(ids=['TREES']), [self.prov]) def test_one_provider_getProvidersWithIds(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_providers(ids=['TREES']), [self.prov]) self.assertEqual(self.reg.get_providers(), [self.prov]) self.assertEqual(self.reg.get_providers(ids=['GEOGRAPHY']), []) def test_one_provider_getProvidersWithUris(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_providers(ids=['http://id.trees.org']), [self.prov]) self.assertEqual(self.reg.get_providers(), [self.prov]) self.assertEqual(self.reg.get_providers(ids=['urn:x-skosprovider:geography']), []) def test_one_provider_getProvidersWithSubject(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_providers(subject='something'), []) self.assertEqual(self.reg.get_providers(subject='biology'), [self.prov]) def test_one_provider_getPoviderWithId(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('TREES'), self.prov) def test_one_provider_getPoviderWithUri(self): self.reg.register_provider(self.prov) self.assertEqual(self.reg.get_provider('http://id.trees.org'), self.prov) def test_one_provider_findConcepts(self): self.reg.register_provider(self.prov) self.assertEqual( self.reg.find({'label': 'The Larch'}), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) def test_one_provider_getConceptByUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.trees.org/1') self.assertEqual(c.id, '1') self.assertEqual(c.uri, 'http://id.trees.org/1') def test_one_provider_getConceptByUriDifferentFromConceptScheme(self): from skosprovider.skos import ConceptScheme from skosprovider.providers import DictionaryProvider trees = DictionaryProvider( {'id': 'TREES', 'default_language': 'nl'}, [larch, chestnut, species], concept_scheme=ConceptScheme('urn:something') ) self.reg.register_provider(trees) c = self.reg.get_by_uri('http://id.trees.org/1') self.assertEqual(c.id, '1') self.assertEqual(c.uri, 'http://id.trees.org/1') def test_one_provider_getConceptByUnexistingUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.thingy.com/123456') self.assertFalse(c) def test_get_by_invalid_uri(self): self.assertRaises( ValueError, self.reg.get_by_uri, None ) def test_one_provider_findConceptsWithProviderid(self): self.reg.register_provider(self.prov) self.assertEqual( self.reg.find({'label': 'The Larch'}, providers=['TREES']), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) self.assertEqual( self.reg.find({'label': 'The Larch'}, providers=[]), [] ) def test_one_provider_getAllConcepts(self): self.reg.register_provider(self.prov) self.assertEqual( self.reg.get_all(), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' }, { 'id': '2', 'uri': 'http://id.trees.org/2', 'type': 'concept', 'label': 'De Paardekastanje' }, { 'id': 3, 'uri': 'http://id.trees.org/3', 'type': 'collection', 'label': 'Bomen per soort' } ] } ] ) def test_one_provider_getAllConceptsDifferentLanguage(self): self.reg.register_provider(self.prov) self.assertEqual( self.reg.get_all(language="en"), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'The Larch' }, { 'id': '2', 'uri': 'http://id.trees.org/2', 'type': 'concept', 'label': 'The Chestnut' }, { 'id': 3, 'uri': 'http://id.trees.org/3', 'type': 'collection', 'label': 'Trees by species' } ] } ] ) def test_two_providers_findConceptsWithProviderIdAndUri(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEqual( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers=['http://id.trees.org']), ) def test_two_providers_findConceptsProvidersDictionarySyntax(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEqual( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers={'ids': ['http://id.trees.org']}), ) def test_two_providers_findConceptsProvidersDictionarySyntax(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEqual( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers={'ids': ['http://id.trees.org']}), ) def test_one_provider_findConceptsWithSubject(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({})} for p in provs] self.assertEqual( res, self.reg.find({},subject='biology') ) def test_one_provider_findConceptsWithSubject_language_en(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({}, language='en')} for p in provs] self.assertEqual( res, self.reg.find({},subject='biology', language='en') ) def test_one_provider_findConceptsWithSubject_language_nl(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({})} for p in provs] self.assertEqual( res, self.reg.find({},subject='biology', language='nl') )
class ProviderViewTests(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.config.include('pyramid_skosprovider') self.regis = Registry() self.regis.register_provider(trees) def tearDown(self): testing.tearDown() del self.config del self.regis def _get_dummy_request(self, *args, **kwargs): request = testing.DummyRequest(*args, **kwargs) request.accept = 'application/json' request.skos_registry = self.regis return request def _get_provider_view(self, request): from pyramid_skosprovider.views import ProviderView return ProviderView(request) def test_get_unexisting_uri(self): request = self._get_dummy_request() request.matchdict = {'uri': 'urn:x-skosprovider:rain'} pv = self._get_provider_view(request) u = pv.get_uri() self.assertIsInstance(u, HTTPNotFound) def test_get_uri_sets_jsonld(self): request = self._get_dummy_request() request.accept = 'application/ld+json' request.matchdict = {'uri': 'http://python.com/trees'} pv = self._get_provider_view(request) u = pv.get_uri() assert request.response.content_type == 'application/ld+json' def test_get_uri_conceptscheme(self): request = self._get_dummy_request() request.matchdict = {'uri': 'http://python.com/trees'} pv = self._get_provider_view(request) u = pv.get_uri() assert '@context' in u assert 'uri' in u['@context'] assert 'id' in u['@context'] assert 'type' in u['@context'] assert u['uri'] == 'http://python.com/trees' assert u['id'] == 'TREES' assert u['type'] == 'concept_scheme' def test_get_uri_concept(self): request = self._get_dummy_request() request.matchdict = {'uri': 'http://python.com/trees/larch'} pv = self._get_provider_view(request) u = pv.get_uri() assert '@context' in u assert 'uri' in u['@context'] assert 'id' in u['@context'] assert 'type' in u['@context'] assert 'concept_scheme' in u['@context'] assert 'concept' in u['@context'] assert 'collection' in u['@context'] assert u['uri'] == 'http://python.com/trees/larch' assert u['id'] == 1 assert u['type'] == 'concept' assert u['concept_scheme'] == { 'id': 'TREES', 'type': 'skos:ConceptScheme', 'uri': 'http://python.com/trees', } def test_get_uri_collection(self): request = self._get_dummy_request() request.matchdict = {'uri': 'http://python.com/trees/species'} pv = self._get_provider_view(request) u = pv.get_uri() assert '@context' in u assert 'uri' in u['@context'] assert 'id' in u['@context'] assert 'type' in u['@context'] assert 'concept_scheme' in u['@context'] assert 'concept' in u['@context'] assert 'collection' in u['@context'] assert u['uri'] == 'http://python.com/trees/species' assert u['id'] == 3 assert u['type'] == 'collection' assert u['concept_scheme'] == { 'id': 'TREES', 'type': 'skos:ConceptScheme', 'uri': 'http://python.com/trees', } def test_get_conceptschemes(self): request = self._get_dummy_request() pv = self._get_provider_view(request) conceptschemes = pv.get_conceptschemes() self.assertIsInstance(conceptschemes, list) for cs in conceptschemes: assert isinstance(cs, dict) assert 'id' in cs assert 'uri' in cs assert 'label' in cs def test_get_conceptschemes_jsonld(self): request = self._get_dummy_request() request.accept = 'application/ld+json' pv = self._get_provider_view(request) conceptschemes = pv.get_conceptschemes() self.assertIsInstance(conceptschemes, list) for cs in conceptschemes: assert isinstance(cs, dict) assert 'id' in cs assert 'uri' in cs assert 'label' in cs assert '@context' in cs def test_get_conceptscheme(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) cs = pv.get_conceptscheme() self.assertEqual( { 'id': 'TREES', 'uri': 'http://python.com/trees', 'label': 'Different types of trees', 'subject': [], 'labels': [ Label('Different types of trees', 'prefLabel', 'en'), Label('Verschillende soorten bomen', 'prefLabel', 'nl') ], 'notes': [], 'sources': [], 'languages': [] }, cs ) def test_get_conceptscheme_jsonld(self): request = self._get_dummy_request() request.accept = 'application/ld+json' request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) cs = pv.get_conceptscheme_jsonld() assert isinstance(cs, ConceptScheme) def test_get_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'PARROTS'} pv = self._get_provider_view(request) cs = pv.get_conceptscheme() self.assertIsInstance(cs, HTTPNotFound) def test_get_unexisting_conceptscheme_jsonld(self): request = self._get_dummy_request() request.accept = 'application/ld+json' request.matchdict = {'scheme_id': 'PARROTS'} pv = self._get_provider_view(request) cs = pv.get_conceptscheme_jsonld() self.assertIsInstance(cs, HTTPNotFound) def test_get_concepts(self): request = self._get_dummy_request() pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(3, len(concepts)) for c in concepts: self.assertIsInstance(c, dict) self.assertIn('id', c) def test_get_concepts_language(self): request = self._get_dummy_request({ 'language': 'en' }, locale_name='nl' ) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) children = pv.get_concepts() request_locale = self._get_dummy_request( locale_name='nl' ) request_locale.matchdict = { 'scheme_id': 'TREES' } pv_locale = self._get_provider_view(request_locale) children_locale = pv_locale.get_concepts() self.assertEqual(children[0]['id'], children_locale[0]['id']) self.assertNotEqual(children[0]['label'], children_locale[0]['label']) def test_get_concepts_provider_subjects(self): request = self._get_dummy_request({ 'providers.subject': 'doesnt exist' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(0, len(concepts)) def test_get_concepts_provider_ids(self): request = self._get_dummy_request({ 'providers.ids': 'PARROTS' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(0, len(concepts)) def test_get_concepts_search_type_concept(self): request = self._get_dummy_request({ 'type': 'concept' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_concepts_search_type_concept(self): request = self._get_dummy_request({ 'label': 'De lariks' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, len(concepts)) def test_get_concepts_search_dfs_empty_label(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(0, len(concepts)) def test_get_concepts_search_dfs_all(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '*' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_concepts_search_dfs_label_star(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': 'De *', 'language': 'nl-BE' }) pv = self._get_provider_view(request) concepts = pv.get_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(3, len(concepts)) for c in concepts: self.assertIsInstance(c, dict) self.assertIn('id', c) def test_get_conceptscheme_concepts_complete_range(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} request.headers['Range'] = 'items=0-19' pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertEqual(3, len(concepts)) def test_get_conceptscheme_concepts_range_one_item(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} request.headers['Range'] = 'items=0-0' pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertEqual(1, len(concepts)) def test_get_conceptscheme_concepts_range_final_items(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} request.headers['Range'] = 'items=1-2' pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts_invalid_range(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} request.headers['Range'] = 'items=a-2' pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertEqual(3, len(concepts)) def test_get_unexisting_conceptscheme_concepts(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'PARROTS'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, HTTPNotFound) def test_get_conceptscheme_concepts_search_label(self): request = self._get_dummy_request({ 'label': 'Larc' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, len(concepts)) self.assertEqual(1, concepts[0]['id']) def test_get_conceptscheme_concepts_search_type_concept(self): request = self._get_dummy_request({ 'type': 'concept' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts_search_type_collection(self): request = self._get_dummy_request({ 'type': 'collection' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, len(concepts)) def test_get_conceptscheme_concepts_search_in_collection(self): request = self._get_dummy_request({ 'collection': 3 }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts_search_dfs_all(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '*' }) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts_search_dfs_empty_label(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '' }) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(0, len(concepts)) def test_get_conceptscheme_concepts_search_dfs_label_star(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': 'De *', 'language': 'nl-BE' }) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(2, len(concepts)) def test_get_conceptscheme_concepts_search_dfs_star_label(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '*iks', 'language': 'nl-BE' }) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, len(concepts)) def test_get_conceptscheme_concepts_search_dfs_star_label_star(self): request = self._get_dummy_request({ 'type': 'concept', 'mode': 'dijitFilteringSelect', 'label': '*Larik*', 'language': 'nl-BE' }) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, len(concepts)) def test_get_concept(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv = self._get_provider_view(request) concept = pv.get_concept() self.assertIsInstance(concept, Concept) self.assertEqual(1, concept.id) def test_get_unexsisting_concept(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 123456789 } pv = self._get_provider_view(request) concept = pv.get_concept() self.assertIsInstance(concept, HTTPNotFound) def test_get_concept_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'PARROTS', 'c_id': 1 } pv = self._get_provider_view(request) concept = pv.get_concept() self.assertIsInstance(concept, HTTPNotFound) def test_get_concept_display_children(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } request.params = { 'language': 'nl-BE' } pv = self._get_provider_view(request) children = pv.get_concept_display_children() self.assertIsInstance(children, list) for c in children: self.assertIn('id', c) self.assertIn('uri', c) self.assertIn('label', c) self.assertIn('type', c) def test_get_concept_display_children_language(self): request = self._get_dummy_request({'language': 'nl-BE'}) request.matchdict = { 'scheme_id': 'TREES', 'c_id': 3 } pv = self._get_provider_view(request) children = pv.get_concept_display_children() request_locale= self._get_dummy_request() request_locale.locale_name = 'en' request_locale.matchdict = { 'scheme_id': 'TREES', 'c_id': 3 } pv_locale = self._get_provider_view(request_locale) children_locale = pv_locale.get_concept_display_children() self.assertEqual(children[0]['id'], children_locale[0]['id']) self.assertNotEqual(children[0]['label'], children_locale[0]['label']) def test_get_unexsisting_concept_display_children(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 123456789 } pv = self._get_provider_view(request) concept = pv.get_concept_display_children() self.assertIsInstance(concept, HTTPNotFound) def test_get_concept_display_children_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'PARROTS', 'c_id': 1 } pv = self._get_provider_view(request) concept = pv.get_concept_display_children() self.assertIsInstance(concept, HTTPNotFound) def test_get_concept_expand(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv = self._get_provider_view(request) expanded = pv.get_expand() self.assertIsInstance(expanded, list) self.assertIn(1, expanded) def test_get_collection_expand(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 3 } pv = self._get_provider_view(request) expanded = pv.get_expand() self.assertIsInstance(expanded, list) self.assertIn(1, expanded) self.assertIn(2, expanded) self.assertNotIn(3, expanded) def test_get_expand_no_resource(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'TREES', 'c_id': 'no_resource' } pv = self._get_provider_view(request) expanded = pv.get_expand() self.assertIsInstance(expanded, HTTPNotFound) def test_get_expand_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'PARROTS'} pv = self._get_provider_view(request) tc = pv.get_conceptscheme_top_concepts() self.assertIsInstance(tc, HTTPNotFound) def test_get_top_concepts_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = { 'scheme_id': 'PARROTS', 'c_id': 1 } pv = self._get_provider_view(request) expanded = pv.get_expand() self.assertIsInstance(expanded, HTTPNotFound) def test_get_top_concepts(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) tc = pv.get_conceptscheme_top_concepts() self.assertIsInstance(tc, list) self.assertEqual(2, len(tc)) first = tc[0] for c in tc: self.assertIn('id', c) self.assertIn('uri', c) self.assertIn('label', c) self.assertEqual('concept', c['type']) def test_get_top_concepts_language(self): request = self._get_dummy_request({'language': 'nl-BE'}) request.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv = self._get_provider_view(request) children = pv.get_conceptscheme_top_concepts() request_locale= self._get_dummy_request() request_locale.locale_name = 'en' request_locale.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv_locale = self._get_provider_view(request_locale) children_locale = pv_locale.get_conceptscheme_top_concepts() self.assertEqual(children[0]['id'], children_locale[0]['id']) self.assertNotEqual(children[0]['label'], children_locale[0]['label']) def test_get_display_top_unexisting_conceptscheme(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'PARROTS'} pv = self._get_provider_view(request) tc = pv.get_conceptscheme_display_top() self.assertIsInstance(tc, HTTPNotFound) def test_get_display_top(self): request = self._get_dummy_request() request.matchdict = {'scheme_id': 'TREES'} request.params = { 'language': 'nl-BE' } pv = self._get_provider_view(request) tc = pv.get_conceptscheme_display_top() self.assertIsInstance(tc, list) for c in tc: self.assertIn('id', c) self.assertIn('uri', c) self.assertIn('label', c) self.assertIn('type', c) def test_get_display_top_language(self): request = self._get_dummy_request({'language': 'nl-BE'}) request.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv = self._get_provider_view(request) children = pv.get_conceptscheme_display_top() request_locale= self._get_dummy_request() request_locale.locale_name = 'en' request_locale.matchdict = { 'scheme_id': 'TREES', 'c_id': 1 } pv_locale = self._get_provider_view(request_locale) children_locale = pv_locale.get_conceptscheme_display_top() self.assertEqual(children[0]['id'], children_locale[0]['id']) self.assertNotEqual(children[0]['label'], children_locale[0]['label']) def test_get_conceptscheme_concepts_search_sort_id_asc(self): request = self._get_dummy_request({ 'sort': '+id', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, concepts[0]['id']) def test_get_conceptscheme_concepts_search_sort_id_space_is_asc(self): request = self._get_dummy_request({ 'sort': ' id', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, concepts[0]['id']) def test_get_conceptscheme_concepts_search_sort_id_undefined_is_asc(self): request = self._get_dummy_request({ 'sort': 'id', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(1, concepts[0]['id']) def test_get_conceptscheme_concepts_search_sort_id_desc(self): request = self._get_dummy_request({ 'sort': '-id', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(3, concepts[0]['id']) def test_get_conceptscheme_concepts_search_sort_label_default(self): request = self._get_dummy_request({ 'sort': 'label', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual("Bomen per soort", concepts[0]['label']) def test_get_conceptscheme_concepts_search_sort_label_asc(self): request = self._get_dummy_request({ 'sort': '+label', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual("Bomen per soort", concepts[0]['label']) def test_get_conceptscheme_concepts_search_sort_label_desc(self): request = self._get_dummy_request({ 'sort': '-label', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual("De Paardekastanje", concepts[0]['label']) def test_get_conceptscheme_concepts_search_sort_sortlabel_asc(self): request = self._get_dummy_request({ 'sort': '+sortlabel', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual("De Paardekastanje", concepts[0]['label']) def test_get_conceptscheme_concepts_search_sort_sortlabel_desc(self): request = self._get_dummy_request({ 'sort': '-sortlabel', 'language': 'nl-BE' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual("De Lariks", concepts[0]['label']) def test_get_conceptscheme_concepts_search_sort_unexisting_field(self): request = self._get_dummy_request({ 'sort': '-foo' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) def test_get_concept_scheme_concepts_language(self): request = self._get_dummy_request({'language': 'nl-BE'}) request.matchdict = { 'scheme_id': 'TREES' } pv = self._get_provider_view(request) children = pv.get_conceptscheme_concepts() request_locale= self._get_dummy_request() request_locale.locale_name = 'en' request_locale.matchdict = { 'scheme_id': 'TREES' } pv_locale = self._get_provider_view(request_locale) children_locale = pv_locale.get_conceptscheme_concepts() self.assertEqual(children[0]['id'], children_locale[0]['id']) self.assertNotEqual(children[0]['label'], children_locale[0]['label']) def test_get_conceptscheme_concepts_search_sort_empty_result(self): request = self._get_dummy_request({ 'sort': '-foo', 'label': 'bar' }) request.matchdict = {'scheme_id': 'TREES'} pv = self._get_provider_view(request) concepts = pv.get_conceptscheme_concepts() self.assertIsInstance(concepts, list) self.assertEqual(0, len(concepts))
class TestConceptView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.request = testing.DummyRequest() self.regis = Registry() self.regis.register_provider(provider(1)) self.request.db = db(self.request) def tearDown(self): testing.tearDown() def test_passing_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '1' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Concept') self.assertEqual(info['scheme_id'], 'TREES') def test_passing_collection_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '3' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Collection') self.assertEqual(info['scheme_id'], 'TREES') def test_provider_not_found(self): request = self.request request.matchdict['scheme_id'] = 'ZZ' request.matchdict['c_id'] = '1' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptSchemeNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_not_found(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '666' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_no_type(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '555' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertEqual(info.status_int, 500)
class TestJsonRenderer(unittest.TestCase): def setUp(self): self.concept = Concept() self.concept.type = 'concept' self.concept.id = 11 self.concept.concept_id = 101 self.concept.uri = 'urn:x-atramhasis-demo:TREES:101' self.concept.conceptscheme_id = 1 notes = [] note = Note(note='test note', notetype_id='example', language_id='en') note2 = Note(note='note def', notetype_id='definition', language_id='en') notes.append(note) notes.append(note2) self.concept.notes = notes labels = [] label = Label(label='een label', labeltype_id='prefLabel', language_id='nl') label2 = Label(label='other label', labeltype_id='altLabel', language_id='en') label3 = Label(label='and some other label', labeltype_id='altLabel', language_id='en') labels.append(label) labels.append(label2) labels.append(label3) self.concept.labels = labels sources = [] source = Source('Van Daele K. 2009') sources.append(source) self.concept.sources = sources matches = [] match = Match() match.matchtype = MatchType(name='closeMatch', description='test') match.uri = 'urn:somethingelse:st1' matches.append(match) match2 = Match() match2.matchtype = MatchType(name='closeMatch', description='test') match2.uri = 'urn:somethingelse:st2' matches.append(match2) match3 = Match() match3.matchtype = MatchType(name='exactMatch', description='test') match3.uri = 'urn:something:thingy' matches.append(match3) self.concept.matches = matches self.collection = Collection() self.collection.type = 'collection' self.collection.id = 12 self.collection.concept_id = 102 self.collection.uri = 'urn:x-atramhasis-demo:TREES:102' self.collection.conceptscheme_id = 1 self.conceptscheme = ConceptScheme() self.conceptscheme.id = 1 self.conceptscheme.labels = labels self.conceptscheme.notes = notes self.conceptscheme.sources = sources self.conceptscheme.uri = None self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.skos_registry = self.regis self.request.matchdict = {'scheme_id': 'TREES'} self.concept.member_of.add(self.collection) self.collection.members.add(self.concept) def test_label_adapter(self): from atramhasis.renderers import label_adapter l = self.concept.labels[2] label = label_adapter(l, {}) self.assertIsInstance(label, dict) self.assertEqual(label['label'], 'and some other label') self.assertEqual(label['type'], 'altLabel') self.assertEqual(label['language'], 'en') def test_note_adapter(self): from atramhasis.renderers import note_adapter n = self.concept.notes[0] note = note_adapter(n, {}) self.assertIsInstance(note, dict) self.assertEqual(note['note'], 'test note') self.assertEqual(note['type'], 'example') self.assertEqual(note['language'], 'en') def test_source_adapter(self): from atramhasis.renderers import source_adapter s = self.concept.sources[0] source = source_adapter(s, {}) self.assertIsInstance(source, dict) self.assertEqual(source['citation'], 'Van Daele K. 2009') def test_concept_adapter(self): from atramhasis.renderers import concept_adapter c = self.concept concept = concept_adapter(c, {}) self.assertIsInstance(concept, dict) self.assertEqual(concept['id'], 101) self.assertEqual(concept['type'], 'concept') self.assertEqual(concept['uri'], 'urn:x-atramhasis-demo:TREES:101') self.assertIsNotNone(concept['label'], 'een label') self.assertIsInstance(concept['labels'], list) self.assertEqual(len(concept['labels']), 3) self.assertIsInstance(concept['notes'], list) self.assertEqual(len(concept['notes']), 2) self.assertIsInstance(concept['sources'], list) self.assertEqual(len(concept['sources']), 1) self.assertIsInstance(concept['member_of'], list) self.assertEqual(len(concept['member_of']), 1) self.assertIsInstance(concept['narrower'], list) self.assertEqual(len(concept['narrower']), 0) self.assertIsInstance(concept['broader'], list) self.assertEqual(len(concept['broader']), 0) self.assertIsInstance(concept['related'], list) self.assertEqual(len(concept['related']), 0) self.assertIsInstance(concept['matches'], dict) self.assertEqual(len(concept['matches']['exact']), 1) self.assertEqual(len(concept['matches']['close']), 2) def test_collection_adapter(self): from atramhasis.renderers import collection_adapter c = self.collection collection = collection_adapter(c, {}) self.assertIsInstance(collection, dict) self.assertEqual(collection['id'], 102) self.assertEqual(collection['type'], 'collection') self.assertEqual(collection['uri'], 'urn:x-atramhasis-demo:TREES:102') self.assertIsNone(collection['label']) self.assertIsInstance(collection['labels'], list) self.assertEqual(len(collection['labels']), 0) self.assertIsInstance(collection['member_of'], list) self.assertEqual(len(collection['member_of']), 0) self.assertIsInstance(collection['members'], list) self.assertEqual(len(collection['members']), 1) def test_map_relation_concept(self): from atramhasis.renderers import map_relation c = self.concept relation = map_relation(c) self.assertIsInstance(relation, dict) self.assertEqual(relation['id'], 101) self.assertEqual(relation['type'], 'concept') self.assertEqual(relation['uri'], 'urn:x-atramhasis-demo:TREES:101') self.assertIsNotNone(relation['label'], 'een label') self.assertIsInstance(relation['labels'], list) self.assertEqual(len(relation['labels']), 3) self.assertRaises(KeyError, lambda: relation['notes']) self.assertRaises(KeyError, lambda: relation['member_of']) self.assertRaises(KeyError, lambda: relation['narrower']) self.assertRaises(KeyError, lambda: relation['broader']) self.assertRaises(KeyError, lambda: relation['related']) def test_map_relation_collection(self): from atramhasis.renderers import map_relation c = self.collection relation = map_relation(c) self.assertIsInstance(relation, dict) self.assertEqual(relation['id'], 102) self.assertEqual(relation['type'], 'collection') self.assertEqual(relation['uri'], 'urn:x-atramhasis-demo:TREES:102') self.assertIsNone(relation['label']) self.assertIsInstance(relation['labels'], list) self.assertEqual(len(relation['labels']), 0) self.assertRaises(KeyError, lambda: relation['members']) self.assertRaises(KeyError, lambda: relation['member_of']) def test_language_adaptor(self): from atramhasis.renderers import language_adaptor l = Language(id='af', name='Afrikaans') res = language_adaptor(l, None) self.assertIsNotNone(res) self.assertIsInstance(res, dict) self.assertEqual(res['id'], 'af') self.assertEqual(res['name'], 'Afrikaans') def test_conceptscheme_adapter(self): from atramhasis.renderers import conceptscheme_adapter c = self.conceptscheme conceptscheme = conceptscheme_adapter(c, self.request) self.assertGreater(len(conceptscheme['notes']), 0) self.assertGreater(len(conceptscheme['labels']), 0) self.assertGreater(len(conceptscheme['sources']), 0) self.assertIsNone(conceptscheme['uri']) self.assertEqual('een label', conceptscheme['label']) self.assertEqual(1, conceptscheme['id']) self.assertEqual(0, len(conceptscheme['subject'])) self.assertIsInstance(conceptscheme, dict)
class TestJsonRenderer(unittest.TestCase): def setUp(self): self.concept = Concept() self.concept.type = 'concept' self.concept.id = 11 self.concept.concept_id = 101 self.concept.uri = 'urn:x-atramhasis-demo:TREES:101' self.concept.conceptscheme_id = 1 notes = [] note = Note(note='test note', notetype_id='example', language_id='en') note2 = Note(note='note def', notetype_id='definition', language_id='en') notes.append(note) notes.append(note2) self.concept.notes = notes labels = [] label = Label(label='een label', labeltype_id='prefLabel', language_id='nl') label2 = Label(label='other label', labeltype_id='altLabel', language_id='en') label3 = Label(label='and some other label', labeltype_id='altLabel', language_id='en') labels.append(label) labels.append(label2) labels.append(label3) self.concept.labels = labels sources = [] source = Source('Van Daele K. 2009') sources.append(source) self.concept.sources = sources matches = [] match = Match() match.matchtype = MatchType(name='closeMatch', description='test') match.uri = 'urn:somethingelse:st1' matches.append(match) match2 = Match() match2.matchtype = MatchType(name='closeMatch', description='test') match2.uri = 'urn:somethingelse:st2' matches.append(match2) match3 = Match() match3.matchtype = MatchType(name='exactMatch', description='test') match3.uri = 'urn:something:thingy' matches.append(match3) self.concept.matches = matches self.collection = Collection() self.collection.type = 'collection' self.collection.id = 12 self.collection.concept_id = 102 self.collection.uri = 'urn:x-atramhasis-demo:TREES:102' self.collection.conceptscheme_id = 1 self.conceptscheme = ConceptScheme() self.conceptscheme.id = 1 self.conceptscheme.labels = labels self.conceptscheme.notes = notes self.conceptscheme.sources = sources self.conceptscheme.uri = None self.regis = Registry() self.regis.register_provider(trees) self.request = testing.DummyRequest() self.request.skos_registry = self.regis self.request.matchdict = {'scheme_id': 'TREES'} self.request.locale_name = 'nl' self.concept.member_of.add(self.collection) self.collection.members.add(self.concept) def test_label_adapter(self): from atramhasis.renderers import label_adapter l = self.concept.labels[2] label = label_adapter(l, {}) self.assertIsInstance(label, dict) self.assertEqual(label['label'], 'and some other label') self.assertEqual(label['type'], 'altLabel') self.assertEqual(label['language'], 'en') def test_note_adapter(self): from atramhasis.renderers import note_adapter n = self.concept.notes[0] note = note_adapter(n, {}) self.assertIsInstance(note, dict) self.assertEqual(note['note'], 'test note') self.assertEqual(note['type'], 'example') self.assertEqual(note['language'], 'en') def test_source_adapter(self): from atramhasis.renderers import source_adapter s = self.concept.sources[0] source = source_adapter(s, {}) self.assertIsInstance(source, dict) self.assertEqual(source['citation'], 'Van Daele K. 2009') def test_concept_adapter(self): from atramhasis.renderers import concept_adapter c = self.concept concept = concept_adapter(c, self.request) self.assertIsInstance(concept, dict) self.assertEqual(concept['id'], 101) self.assertEqual(concept['type'], 'concept') self.assertEqual(concept['uri'], 'urn:x-atramhasis-demo:TREES:101') self.assertIsNotNone(concept['label'], 'een label') self.assertIsInstance(concept['labels'], list) self.assertEqual(len(concept['labels']), 3) self.assertIsInstance(concept['notes'], list) self.assertEqual(len(concept['notes']), 2) self.assertIsInstance(concept['sources'], list) self.assertEqual(len(concept['sources']), 1) self.assertIsInstance(concept['member_of'], list) self.assertEqual(len(concept['member_of']), 1) self.assertIsInstance(concept['narrower'], list) self.assertEqual(len(concept['narrower']), 0) self.assertIsInstance(concept['broader'], list) self.assertEqual(len(concept['broader']), 0) self.assertIsInstance(concept['related'], list) self.assertEqual(len(concept['related']), 0) self.assertIsInstance(concept['matches'], dict) self.assertEqual(len(concept['matches']['exact']), 1) self.assertEqual(len(concept['matches']['close']), 2) def test_collection_adapter(self): from atramhasis.renderers import collection_adapter c = self.collection collection = collection_adapter(c, self.request) self.assertIsInstance(collection, dict) self.assertEqual(collection['id'], 102) self.assertEqual(collection['type'], 'collection') self.assertEqual(collection['uri'], 'urn:x-atramhasis-demo:TREES:102') self.assertIsNone(collection['label']) self.assertIsInstance(collection['labels'], list) self.assertEqual(len(collection['labels']), 0) self.assertIsInstance(collection['member_of'], list) self.assertEqual(len(collection['member_of']), 0) self.assertIsInstance(collection['members'], list) self.assertEqual(len(collection['members']), 1) def test_map_relation_concept(self): from atramhasis.renderers import map_relation c = self.concept relation = map_relation(c) self.assertIsInstance(relation, dict) self.assertEqual(relation['id'], 101) self.assertEqual(relation['type'], 'concept') self.assertEqual(relation['uri'], 'urn:x-atramhasis-demo:TREES:101') self.assertIsNotNone(relation['label'], 'een label') self.assertRaises(KeyError, lambda: relation['notes']) self.assertRaises(KeyError, lambda: relation['member_of']) self.assertRaises(KeyError, lambda: relation['narrower']) self.assertRaises(KeyError, lambda: relation['broader']) self.assertRaises(KeyError, lambda: relation['related']) def test_map_relation_collection(self): from atramhasis.renderers import map_relation c = self.collection relation = map_relation(c) self.assertIsInstance(relation, dict) self.assertEqual(relation['id'], 102) self.assertEqual(relation['type'], 'collection') self.assertEqual(relation['uri'], 'urn:x-atramhasis-demo:TREES:102') self.assertIsNone(relation['label']) self.assertRaises(KeyError, lambda: relation['members']) self.assertRaises(KeyError, lambda: relation['member_of']) def test_language_adaptor(self): from atramhasis.renderers import language_adaptor l = Language(id='af', name='Afrikaans') res = language_adaptor(l, None) self.assertIsNotNone(res) self.assertIsInstance(res, dict) self.assertEqual(res['id'], 'af') self.assertEqual(res['name'], 'Afrikaans') def test_conceptscheme_adapter(self): from atramhasis.renderers import conceptscheme_adapter c = self.conceptscheme conceptscheme = conceptscheme_adapter(c, self.request) self.assertGreater(len(conceptscheme['notes']), 0) self.assertGreater(len(conceptscheme['labels']), 0) self.assertGreater(len(conceptscheme['sources']), 0) self.assertIsNone(conceptscheme['uri']) self.assertEqual('een label', conceptscheme['label']) self.assertEqual(1, conceptscheme['id']) self.assertEqual(0, len(conceptscheme['subject'])) self.assertIsInstance(conceptscheme, dict) def test_conceptscheme_language_handling(self): from atramhasis.renderers import conceptscheme_adapter c = self.conceptscheme conceptscheme = conceptscheme_adapter(c, self.request) self.assertEqual('een label', conceptscheme['label']) self.request.locale_name = 'en' conceptscheme = conceptscheme_adapter(c, self.request) self.assertIn(conceptscheme['label'], ['other label', 'and some other label'])
class RegistryTests(unittest.TestCase): def setUp(self): self.reg = Registry() self.prov = trees self.prov2 = geo def tearDown(self): self.reg = None self.prov = None self.prov2 = None def test_empty_register_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) def test_empty_register_removeProvider(self): self.assertFalse(self.reg.remove_provider('TREES')) def test_empty_getProviders(self): self.assertEquals(self.reg.get_providers(), []) self.assertEquals(self.reg.get_providers(ids=[]), []) def test_empty_getProviderById(self): self.assertFalse(self.reg.get_provider('TREES')) self.assertFalse(self.reg.get_provider('http://id.trees.org')) def test_empty_findConcepts(self): self.assertEquals(self.reg.find({}), []) def test_empty_getAllConcepts(self): self.assertEquals(self.reg.get_all(), []) def test_one_provider_register_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.assertEquals( self.reg.get_provider('http://id.trees.org'), self.prov ) self.reg.register_provider(self.prov2) self.assertEquals(self.reg.get_provider('GEOGRAPHY'), self.prov2) self.assertEquals( self.reg.get_provider('urn:x-skosprovider:geography'), self.prov2 ) def test_one_provider_register_double_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.assertRaises( RegistryException, self.reg.register_provider, self.prov ) #Change the id, but keep identical URIs self.prov.metadata['id'] = 'TREESTOO' self.assertRaises( RegistryException, self.reg.register_provider, self.prov ) self.prov.metadata['id'] = 'TREES' def test_one_provider_removeProvider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.reg.remove_provider('TREES') self.assertFalse(self.reg.get_provider('TREES')) def test_one_provider_removeProviderWithUri(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.reg.remove_provider('http://id.trees.org') self.assertFalse(self.reg.get_provider('TREES')) def test_one_provider_getProviders(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(), [self.prov]) self.assertEquals(self.reg.get_providers(ids=['TREES']), [self.prov]) def test_one_provider_getProvidersWithIds(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(ids=['TREES']), [self.prov]) self.assertEquals(self.reg.get_providers(), [self.prov]) self.assertEquals(self.reg.get_providers(ids=['GEOGRAPHY']), []) def test_one_provider_getProvidersWithUris(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(ids=['http://id.trees.org']), [self.prov]) self.assertEquals(self.reg.get_providers(), [self.prov]) self.assertEquals(self.reg.get_providers(ids=['urn:x-skosprovider:geography']), []) def test_one_provider_getProvidersWithSubject(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(subject='something'), []) self.assertEquals(self.reg.get_providers(subject='biology'), [self.prov]) def test_one_provider_getPoviderWithId(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) def test_one_provider_getPoviderWithUri(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('http://id.trees.org'), self.prov) def test_one_provider_findConcepts(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) def test_one_provider_getConceptByUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.trees.org/1') self.assertEqual(c.id, '1') self.assertEqual(c.uri, 'http://id.trees.org/1') def test_one_provider_getConceptByUriDifferentFromConceptScheme(self): from skosprovider.skos import ConceptScheme from skosprovider.providers import DictionaryProvider trees = DictionaryProvider( {'id': 'TREES', 'default_language': 'nl'}, [larch, chestnut, species], concept_scheme=ConceptScheme('urn:something') ) self.reg.register_provider(trees) c = self.reg.get_by_uri('http://id.trees.org/1') self.assertEqual(c.id, '1') self.assertEqual(c.uri, 'http://id.trees.org/1') def test_one_provider_getConceptByUnexistingUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.thingy.com/123456') self.assertFalse(c) def test_get_by_invalid_uri(self): self.assertRaises( ValueError, self.reg.get_by_uri, None ) def test_one_provider_findConceptsWithProviderid(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=['TREES']), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=[]), [] ) def test_one_provider_getAllConcepts(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.get_all(), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' }, { 'id': '2', 'uri': 'http://id.trees.org/2', 'type': 'concept', 'label': 'De Paardekastanje' }, { 'id': 3, 'uri': 'http://id.trees.org/3', 'type': 'collection', 'label': 'Bomen per soort' } ] } ] ) def test_one_provider_getAllConceptsDifferentLanguage(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.get_all(language="en"), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'The Larch' }, { 'id': '2', 'uri': 'http://id.trees.org/2', 'type': 'concept', 'label': 'The Chestnut' }, { 'id': 3, 'uri': 'http://id.trees.org/3', 'type': 'collection', 'label': 'Trees by species' } ] } ] ) def test_two_providers_findConceptsWithProviderIdAndUri(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers=['http://id.trees.org']), ) def test_two_providers_findConceptsProvidersDictionarySyntax(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers={'ids': ['http://id.trees.org']}), ) def test_two_providers_findConceptsProvidersDictionarySyntax(self): self.reg.register_provider(self.prov2) self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=['TREES']), self.reg.find({'label': 'The Larch'}, providers={'ids': ['http://id.trees.org']}), ) def test_one_provider_findConceptsWithSubject(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({})} for p in provs] self.assertEquals( res, self.reg.find({},subject='biology') ) def test_one_provider_findConceptsWithSubject_language_en(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({}, language='en')} for p in provs] self.assertEquals( res, self.reg.find({},subject='biology', language='en') ) def test_one_provider_findConceptsWithSubject_language_nl(self): self.reg.register_provider(self.prov) provs = self.reg.get_providers(subject='biology') res = [{'id': p.get_vocabulary_id(), 'concepts': p.find({})} for p in provs] self.assertEquals( res, self.reg.find({},subject='biology', language='nl') )
class TestConceptView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.config.add_route('concept', pattern='/conceptschemes/{scheme_id}/c/{c_id}', accept='text/html', request_method="GET") self.request = testing.DummyRequest() self.request.accept = ['text/html'] self.regis = Registry() self.regis.register_provider(provider(1)) self.request.data_managers = data_managers(self.request) def tearDown(self): testing.tearDown() def test_passing_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '1' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Concept') self.assertEqual(info['scheme_id'], 'TREES') def test_passing_collection_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '3' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Collection') self.assertEqual(info['scheme_id'], 'TREES') def test_provider_not_found(self): request = self.request request.matchdict['scheme_id'] = 'ZZ' request.matchdict['c_id'] = '1' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptSchemeNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_not_found(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '666' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_no_type(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '555' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertEqual(info.status_int, 500)
class RegistryTests(unittest.TestCase): def setUp(self): self.reg = Registry() self.prov = trees self.prov2 = geo def tearDown(self): self.reg = None self.prov = None self.prov2 = None def test_empty_register_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) def test_empty_register_removeProvider(self): self.assertFalse(self.reg.remove_provider('TREES')) def test_empty_getProviders(self): self.assertEquals(self.reg.get_providers(), []) self.assertEquals(self.reg.get_providers(ids=[]), []) def test_empty_getProviderById(self): self.assertFalse(self.reg.get_provider('TREES')) def test_empty_findConcepts(self): self.assertEquals(self.reg.find({}), []) def test_empty_getAllConcepts(self): self.assertEquals(self.reg.get_all(), []) def test_one_provider_register_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.reg.register_provider(self.prov2) self.assertEquals(self.reg.get_provider('GEOGRAPHY'), self.prov2) def test_one_provider_register_double_provider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.assertRaises( RegistryException, self.reg.register_provider, self.prov ) def test_one_provider_removeProvider(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) self.reg.remove_provider('TREES') self.assertFalse(self.reg.get_provider('TREES')) def test_one_provider_getProviders(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(), [self.prov]) self.assertEquals(self.reg.get_providers(ids=['TREES']), [self.prov]) def test_one_provider_getProvidersWithIds(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_providers(ids=['TREES']), [self.prov]) self.assertEquals(self.reg.get_providers(), [self.prov]) self.assertEquals(self.reg.get_providers(ids=['GEOGRAPHY']), []) def test_one_provider_getPoviderWithId(self): self.reg.register_provider(self.prov) self.assertEquals(self.reg.get_provider('TREES'), self.prov) def test_one_provider_findConcepts(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) def test_one_provider_getConceptByUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.trees.org/1') self.assertEqual(c.id, '1') self.assertEqual(c.uri, 'http://id.trees.org/1') def test_one_provider_getConceptByUnexistingUri(self): self.reg.register_provider(self.prov) c = self.reg.get_by_uri('http://id.thingy.com/123456') self.assertFalse(c) def test_one_provider_findConceptsWithProviderid(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=['TREES']), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' } ] } ] ) self.assertEquals( self.reg.find({'label': 'The Larch'}, providers=[]), [] ) def test_one_provider_getAllConcepts(self): self.reg.register_provider(self.prov) self.assertEquals( self.reg.get_all(), [ { 'id': 'TREES', 'concepts': [ { 'id': '1', 'uri': 'http://id.trees.org/1', 'type': 'concept', 'label': 'De Lariks' }, { 'id': '2', 'uri': 'http://id.trees.org/2', 'type': 'concept', 'label': 'De Paardekastanje' }, { 'id': 3, 'uri': 'http://id.trees.org/3', 'type': 'collection', 'label': 'Bomen per soort' } ] } ] )
class TestConceptView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.request = testing.DummyRequest() self.regis = Registry() self.regis.register_provider(provider(1)) self.request.db = db(self.request) def tearDown(self): testing.tearDown() def test_passing_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '1' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Concept') self.assertEqual(info['scheme_id'], 'TREES') def test_passing_collection_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '3' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Collection') self.assertEqual(info['scheme_id'], 'TREES') def test_provider_not_found(self): request = self.request request.matchdict['scheme_id'] = 'ZZ' request.matchdict['c_id'] = '1' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptSchemeNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_not_found(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '666' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_no_type(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '555' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertEqual(info.status_int, 500)
class TestConceptView(unittest.TestCase): def setUp(self): self.config = testing.setUp() self.config.add_route('concept', pattern='/conceptschemes/{scheme_id}/c/{c_id}', accept='text/html', request_method="GET") self.request = testing.DummyRequest() self.request.accept = ['text/html'] self.regis = Registry() self.regis.register_provider(provider(1)) self.request.data_managers = data_managers(self.request) def tearDown(self): testing.tearDown() def test_passing_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '1' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Concept') self.assertEqual(info['scheme_id'], 'TREES') def test_passing_collection_view(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '3' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertIsNotNone(info['concept']) self.assertEqual(info['conceptType'], 'Collection') self.assertEqual(info['scheme_id'], 'TREES') def test_provider_not_found(self): request = self.request request.matchdict['scheme_id'] = 'ZZ' request.matchdict['c_id'] = '1' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptSchemeNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_not_found(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '666' request.skos_registry = self.regis error_raised = False try: atramhasisview = AtramhasisView(request) atramhasisview.concept_view() except ConceptNotFoundException as e: error_raised = True self.assertIsNotNone(e.__str__()) self.assertTrue(error_raised) def test_no_type(self): request = self.request request.matchdict['scheme_id'] = 'TREES' request.matchdict['c_id'] = '555' request.skos_registry = self.regis atramhasisview = AtramhasisView(request) info = atramhasisview.concept_view() self.assertEqual(info.status_int, 500)