コード例 #1
0
    def test_default_language_scottish_gaelic(self):
        provider_gd = HeritagedataProvider(
            {
                'id': 'Heritagedata',
                'default_language': 'gd'
            },
            scheme_uri='http://purl.org/heritagedata/schemes/1')
        concept = provider_gd.get_by_id('500614')
        concept = concept.__dict__
        self.assertEqual(
            concept['uri'],
            'http://purl.org/heritagedata/schemes/1/concepts/500614')

        result = provider_gd.find({'label': 'LOCH', 'type': 'concept'})
        for r in result:
            self.assertIn("LOCH", r['label'])
            self.assertTrue(r['lang'] in ('en', 'gd'))

        provider_en = HeritagedataProvider(
            {'id': 'Heritagedata'},
            scheme_uri='http://purl.org/heritagedata/schemes/1')
        concept = provider_en.get_by_id('500614')
        concept = concept.__dict__
        self.assertEqual(
            concept['uri'],
            'http://purl.org/heritagedata/schemes/1/concepts/500614')

        result = provider_en.find({'label': 'LOCH', 'type': 'concept'})
        for r in result:
            self.assertIn("LOCH", r['label'])
            self.assertTrue(r['lang'] in ('en', 'gd'))
コード例 #2
0
 def test_get_by_id_nonexistant_id(self):
     concept = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).get_by_id('123')
     self.assertFalse(concept)
コード例 #3
0
 def test_find_collections(self):
     r = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period').find(
             {'type': 'collection'})
     self.assertEqual(r, [])
コード例 #4
0
 def test_set_custom_session(self):
     import requests
     sess = requests.Session()
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://heritagedata.org/live/services/',
         session=sess)
     self.assertEqual(sess, provider.session)
コード例 #5
0
 def test_expand_invalid(self):
     all_childeren_invalid = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).expand('invalid')
     self.assertFalse(all_childeren_invalid)
コード例 #6
0
 def test_get_all(self):
     kwargs = {'language': 'nl'}
     self.assertFalse(
         HeritagedataProvider(
             {
                 'id': 'Heritagedata'
             },
             scheme_uri='http://purl.org/heritagedata/schemes/eh_period').
         get_all(**kwargs))
コード例 #7
0
 def test_find_wrong_type(self):
     self.assertRaises(
         ValueError,
         HeritagedataProvider(
             {
                 'id': 'Heritagedata'
             },
             scheme_uri='http://purl.org/heritagedata/schemes/eh_period').
         find, {'type': 'collectie'})
コード例 #8
0
 def test_default_provider(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://heritagedata.org/live/services/')
     self.assertEqual(provider.base_scheme_uri,
                      'http://purl.org/heritagedata/schemes')
     self.assertEqual(provider.scheme_id, 'eh_period')
     self.assertEqual(provider.service_scheme_uri,
                      'http://heritagedata.org/live/services')
コード例 #9
0
 def test_get_top_concepts(self):
     kwargs = {'language': 'nl'}
     top_heritagedata_concepts = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).get_top_concepts(**kwargs)
     self.assertIsInstance(top_heritagedata_concepts, list)
     self.assertGreater(len(top_heritagedata_concepts), 0)
コード例 #10
0
 def test_get_top_display_sort_sort(self):
     prov = HeritagedataProvider(
         {'id': 'Heritagedata'},
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period')
     sorted_by_id = prov.get_top_display(sort='id')
     sorted_by_uri = prov.get_top_display(sort='uri', sort_order='desc')
     assert len(sorted_by_id) > 1
     assert len(sorted_by_id) == len(sorted_by_uri)
     assert [c['id']
             for c in sorted_by_id] != [c['id'] for c in sorted_by_uri]
コード例 #11
0
 def test_get_items_non_exist_provider(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://not_existent.org/live/services/')
     self.assertRaises(
         ProviderUnavailableException, provider._get_items,
         "getConceptLabelMatch", {
             'contains': 'VICTORIAN',
             'schemeURI': 'http://purl.org/heritagedata/schemes/eh_period'
         })
コード例 #12
0
 def test_expand(self):
     all_childeren_pm = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).expand('PM')
     self.assertIsInstance(all_childeren_pm, list)
     self.assertGreater(len(all_childeren_pm), 0)
     self.assertIn('PM', all_childeren_pm)
コード例 #13
0
 def test_get_by_uri(self):
     concept = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).get_by_uri(
         'http://purl.org/heritagedata/schemes/eh_period/concepts/PM')
     concept = concept.__dict__
     self.assertEqual(
         concept['uri'],
         'http://purl.org/heritagedata/schemes/eh_period/concepts/PM')
     self.assertEqual(concept['id'], 'PM')
コード例 #14
0
 def test_find_kwargs_language(self):
     kwargs = {'language': 'gd'}
     provider_gd = HeritagedataProvider(
         {
             'id': 'Heritagedata',
             'default_language': 'en'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/1')
     result = provider_gd.find({
         'label': 'LOCH',
         'type': 'concept'
     }, **kwargs)
     for r in result:
         self.assertIn("LOCH", r['label'])
         self.assertTrue(r['lang'] in ('en', 'gd'))
コード例 #15
0
 def test_find_with_collection(self):
     self.assertRaises(
         ValueError,
         HeritagedataProvider(
             {
                 'id': 'Heritagedata'
             },
             scheme_uri='http://purl.org/heritagedata/schemes/eh_period').
         find, {
             'type': 'concept',
             'collection': {
                 'id': '300007466',
                 'depth': 'all'
             }
         })
コード例 #16
0
 def test_get_top_display(self):
     kwargs = {'language': 'nl'}
     top_heritagedata_display = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).get_top_display(**kwargs)
     self.assertIsInstance(top_heritagedata_display, list)
     self.assertGreater(len(top_heritagedata_display), 0)
     keys_first_display = top_heritagedata_display[0].keys()
     for key in ['id', 'type', 'label', 'uri']:
         self.assertIn(key, keys_first_display)
     self.assertIn('POST MEDIEVAL',
                   [label['label'] for label in top_heritagedata_display])
コード例 #17
0
 def test_find_multiple_keywords(self):
     r = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period').find({
             'label':
             'iron Age',
             'type':
             'concept'
         })
     self.assertIsInstance(r, list)
     self.assertGreater(len(r), 0)
     for res in r:
         self.assertEqual(res['type'], 'concept')
コード例 #18
0
 def test_find_one_keyword_language(self):
     kwargs = {'language': 'nl'}
     r = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period').find(
             {
                 'label': 'VICTORIAN',
                 'type': 'concept'
             }, **kwargs)
     self.assertIsInstance(r, list)
     self.assertGreater(len(r), 0)
     for res in r:
         self.assertEqual(res['type'], 'concept')
コード例 #19
0
 def test_scheme_uri_not_available(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri=
         'http://heritagedata.org/live/services_not_available/')
     self.assertEqual(provider.base_scheme_uri,
                      'http://purl.org/heritagedata/schemes')
     self.assertEqual(provider.scheme_id, 'eh_period')
     self.assertEqual(
         provider.service_scheme_uri,
         'http://heritagedata.org/live/services_not_available')
     self.assertRaises(ProviderUnavailableException, provider.find, {
         'label': 'LOCH',
         'type': 'concept'
     })
コード例 #20
0
 def test_get_childeren_display(self):
     kwargs = {'language': 'nl'}
     childeren_Heritagedata_pm = HeritagedataProvider(
         {
             'id': 'Heritagedata'
         },
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
     ).get_children_display('PM', **kwargs)
     self.assertIsInstance(childeren_Heritagedata_pm, list)
     self.assertGreater(len(childeren_Heritagedata_pm), 0)
     keys_first_display = childeren_Heritagedata_pm[0].keys()
     for key in ['id', 'type', 'label', 'uri']:
         self.assertIn(key, keys_first_display)
     self.assertIn("TUDOR",
                   [label['label'] for label in childeren_Heritagedata_pm])
コード例 #21
0
 def test_get_top_concepts_sort(self):
     prov = HeritagedataProvider(
         {'id': 'Heritagedata'},
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period')
     not_sorted = prov.get_top_concepts()
     sorted_by_id = prov.get_top_concepts(sort='id')
     assert [c['id'] for c in not_sorted] == [c['id'] for c in sorted_by_id]
     sorted_by_uri = prov.get_top_concepts(sort='uri')
     assert len(sorted_by_id) == 8
     assert len(sorted_by_id) == len(sorted_by_uri)
     assert [c['id']
             for c in sorted_by_id] == [c['id'] for c in sorted_by_uri]
     sorted_by_label = prov.get_top_concepts(sort='label')
     assert len(sorted_by_id) == len(sorted_by_label)
     assert [c['id']
             for c in sorted_by_id] == [c['id'] for c in sorted_by_label]
コード例 #22
0
 def test_get_items(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://heritagedata.org/live/services/')
     res = provider._get_items(
         "getConceptLabelMatch", {
             'contains': 'VICTORIAN',
             'schemeURI': 'http://purl.org/heritagedata/schemes/eh_period'
         })
     self.assertEqual(len(res), 1)
     self.assertEqual(res[0]['label'], 'VICTORIAN')
     self.assertEqual(res[0]['id'], 'VIC')
     self.assertEqual(res[0]['lang'], 'en')
     self.assertEqual(res[0]['type'], 'concept')
     self.assertEqual(
         res[0]['uri'],
         'http://purl.org/heritagedata/schemes/eh_period/concepts/VIC')
コード例 #23
0
 def test_find_sort(self):
     prov = HeritagedataProvider(
         {'id': 'Heritagedata'},
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period')
     sorted_by_id = prov.find({'label': 'century', 'sort': 'id'})
     sorted_by_uri = prov.find({'label': 'century', 'sort': 'uri'})
     assert len(sorted_by_id) > 1
     assert len(sorted_by_id) == len(sorted_by_uri)
     assert [c for c in sorted_by_id] == [c for c in sorted_by_uri]
     sorted_by_label = prov.find({'label': 'century', 'sort': 'label'})
     assert len(sorted_by_id) == len(sorted_by_label)
     assert [c for c in sorted_by_id] == [c for c in sorted_by_label]
     sorted_by_sortlabel = prov.find({
         'label': 'century',
         'sort': 'sortlabel'
     })
     assert sorted_by_sortlabel == sorted_by_label
コード例 #24
0
 def test_get_children_display_sort(self):
     prov = HeritagedataProvider(
         {'id': 'Heritagedata'},
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period')
     not_sorted = prov.get_children_display('PM')
     sorted_by_id = prov.get_children_display('PM', sort='id')
     assert [c['id'] for c in not_sorted] == [c['id'] for c in sorted_by_id]
     assert len(sorted_by_id) == len(not_sorted)
     sorted_by_label = prov.get_children_display('PM', sort='label')
     assert len(sorted_by_id) == len(sorted_by_label)
     assert [c['id']
             for c in sorted_by_id] == [c['id'] for c in sorted_by_label]
     sorted_by_label_desc = prov.get_children_display('PM',
                                                      sort='label',
                                                      sort_order='desc')
     assert [c['id'] for c in sorted_by_label
             ] != [c['id'] for c in sorted_by_label_desc]
コード例 #25
0
    def test_get_by_id_concept(self):
        concept = HeritagedataProvider(
            {
                'id': 'Heritagedata'
            },
            scheme_uri='http://purl.org/heritagedata/schemes/eh_period'
        ).get_by_id('PM')
        concept = concept.__dict__
        self.assertEqual(
            concept['uri'],
            'http://purl.org/heritagedata/schemes/eh_period/concepts/PM')
        self.assertEqual(concept['type'], 'concept')
        self.assertIsInstance(concept['labels'], list)

        preflabels = [{'en': 'POST MEDIEVAL'}]
        preflabels_conc = [{
            label.language: label.label
        } for label in concept['labels'] if label.type == 'prefLabel']
        self.assertGreater(len(preflabels_conc), 0)
        for label in preflabels:
            self.assertIn(label, preflabels_conc)

        self.assertGreater(len(concept['notes']), 0)
        self.assertIsNotNone(concept['notes'][0])
        self.assertEqual(concept['notes'][0].language, 'en')
        self.assertEqual(
            concept['notes'][0].note,
            'Begins with the dissolution of the monasteries and'
            ' ends with the death of Queen Victoria. '
            'Use more specific period where known.')
        self.assertEqual(concept['notes'][0].type, 'scopeNote')

        self.assertEqual(concept['id'], 'PM')
        self.assertEqual(len(concept['broader']), 0)
        self.assertEqual(len(concept['related']), 0)
        self.assertIn('STU', concept['narrower'])
コード例 #26
0
 def test_get_top_concepts_provider(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         scheme_uri='http://purl.org/heritagedata/schemes/eh_period')
     self.assertEqual(len(provider.get_top_concepts()), 8)
コード例 #27
0
 def test_get_items_wrong_params(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://heritagedata.org/live/services/')
     self.assertRaises(ValueError, provider._get_items,
                       "getConceptLabelMatch", {"fhgfhg"})
コード例 #28
0
 def test_get_items_non_exist_service2(self):
     provider = HeritagedataProvider(
         {'id': 'Heritagedata'},
         service_scheme_uri='http://heritagedata.org/live/services/')
     self.assertRaises(ProviderUnavailableException, provider._get_items,
                       "invalid", {})
コード例 #29
0
#!/usr/bin/python
'''
This script demonstrates using the HeritagedataProvider to find the concepts with 'iron' in their label
'''

from skosprovider_heritagedata.providers import HeritagedataProvider

periodprovider = HeritagedataProvider(
    {'id': 'Heritagedata'},
    scheme_uri='http://purl.org/heritagedata/schemes/eh_period')

results = periodprovider.find({'label': 'iron', 'type': 'concept'})

print('Results')
print('------')
for result in results:
    print(result)
コード例 #30
0
def includeme(config):  # pragma: no cover
    TREES = SQLAlchemyProvider({
        'id': 'TREES',
        'conceptscheme_id': 1
    }, config.registry.dbmaker)

    GEO = SQLAlchemyProvider({
        'id': 'GEOGRAPHY',
        'conceptscheme_id': 2
    }, config.registry.dbmaker)

    STYLES = SQLAlchemyProvider({
        'id': 'STYLES',
        'conceptscheme_id': 3
    }, config.registry.dbmaker)

    MATERIALS = SQLAlchemyProvider(
        {
            'id': 'MATERIALS',
            'conceptscheme_id': 4
        },
        config.registry.dbmaker,
        uri_generator=UriPatternGenerator('urn:x-vioe:materials:%s'))

    # use 'subject': ['external'] for read only external providers (only available in REST service)

    AAT = AATProvider({'id': 'AAT', 'subject': ['external']}, )

    TGN = TGNProvider({'id': 'TGN', 'subject': ['external']})

    EH_PERIOD = HeritagedataProvider(
        {
            'id': 'EH_PERIOD',
            'subject': ['external']
        },
        scheme_uri='http://purl.org/heritagedata/schemes/eh_period')

    EH_MONUMENT_TYPE = HeritagedataProvider(
        {
            'id': 'EH_MONUMENT_TYPE',
            'subject': ['external']
        },
        scheme_uri='http://purl.org/heritagedata/schemes/eh_tmt2')

    EH_MATERIALS = HeritagedataProvider(
        {
            'id': 'EH_MATERIALS',
            'subject': ['external']
        },
        scheme_uri='http://purl.org/heritagedata/schemes/eh_tbm')

    skosregis = config.get_skos_registry()
    skosregis.register_provider(TREES)
    skosregis.register_provider(GEO)
    skosregis.register_provider(STYLES)
    skosregis.register_provider(MATERIALS)
    skosregis.register_provider(AAT)
    skosregis.register_provider(TGN)
    skosregis.register_provider(EH_PERIOD)
    skosregis.register_provider(EH_MONUMENT_TYPE)
    skosregis.register_provider(EH_MATERIALS)