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)
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.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 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)
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}
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 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'])
def setUp(self): self.config = testing.setUp() self.request = testing.DummyRequest() self.regis = Registry() self.regis.register_provider(provider(1)) self.request.skos_registry = self.regis self.request.db = db(self.request)
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)
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 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)
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)
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 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}
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 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')
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
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)
def _build_skos_registry(registry): skos_registry = registry.queryUtility(ISkosRegistry) if skos_registry is not None: return skos_registry skos_registry = Registry() registry.registerUtility(skos_registry, ISkosRegistry) return registry.queryUtility(ISkosRegistry)
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')
def test_get_skos_registry(self): settings = { 'skosprovider.skosregistry_location': 'registry', } r = TestRegistry(settings=settings) SR = Registry(instance_scope='threaded_global') r.registerUtility(SR, ISkosRegistry) SR2 = get_skos_registry(r) assert SR == SR2
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']))
def _register_request_skos_registry(request): ''' Get the :class:`skosprovider.registry.Registry` attached to this request. :param request: The Pyramid request :rtype: :class:`skosprovider.registry.Registry` ''' settings = _parse_settings(request.registry.settings) if 'skosregistry_factory' in settings: r = DottedNameResolver() skos_registry = r.resolve(settings['skosregistry_factory'])(request) else: skos_registry = Registry(instance_scope='threaded_thread') return skos_registry
def _register_global_skos_registry(registry): ''' Build a :class:`skosprovider.registry.Registry` and attach it to the Pyramid registry. :param registry: The Pyramid registry :rtype: :class:`skosprovider.registry.Registry` ''' settings = _parse_settings(registry.settings) if 'skosregistry_factory' in settings: r = DottedNameResolver() skos_registry = r.resolve(settings['skosregistry_factory'])() else: skos_registry = Registry(instance_scope='threaded_global') registry.registerUtility(skos_registry, ISkosRegistry) return registry.queryUtility(ISkosRegistry)
def setUp(self): self.config = testing.setUp() self.regis = Registry() self.regis.register_provider(trees)
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)
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 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 _skosregis_factory_global(): return Registry(instance_scope='threaded_global')
def _skosregis_factory_request(request): return Registry(instance_scope='threaded_thread')
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)
def test_register_global_skos_registry_already_exists(self): r = TestRegistry() SR = Registry(instance_scope='threaded_global') r.registerUtility(SR, ISkosRegistry) SR2 = _register_global_skos_registry(r) assert isinstance(SR, Registry)
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' } ] } ] )
def setUp(self): self.reg = Registry() self.prov = trees self.prov2 = geo
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') )