-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
104 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<rdf:RDF | ||
xmlns:dcterms="http://purl.org/dc/terms/" | ||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
xmlns:skos="http://www.w3.org/2004/02/skos/core#" | ||
> | ||
<rdf:Description rdf:about="http://id.trees.org/1"> | ||
<skos:inScheme rdf:resource="urn:x-skosprovider:tree"/> | ||
<dcterms:identifier>1</dcterms:identifier> | ||
<skos:prefLabel xml:lang="en">The Larch</skos:prefLabel> | ||
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> | ||
<skos:definition xml:lang="en">A type of tree.</skos:definition> | ||
<skos:prefLabel xml:lang="nl">De Lariks</skos:prefLabel> | ||
</rdf:Description> | ||
<rdf:Description rdf:about="http://id.trees.org/3"> | ||
<dcterms:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">3</dcterms:identifier> | ||
<skos:member rdf:resource="http://id.trees.org/2"/> | ||
<skos:prefLabel xml:lang="nl">Bomen per soort</skos:prefLabel> | ||
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Collection"/> | ||
<skos:inScheme rdf:resource="urn:x-skosprovider:tree"/> | ||
<skos:member rdf:resource="http://id.trees.org/1"/> | ||
<skos:prefLabel xml:lang="en">Trees by species</skos:prefLabel> | ||
</rdf:Description> | ||
<rdf:Description rdf:about="http://id.trees.org/2"> | ||
<skos:altLabel xml:lang="nl">De Paardekastanje</skos:altLabel> | ||
<skos:inScheme rdf:resource="urn:x-skosprovider:tree"/> | ||
<skos:altLabel xml:lang="fr">la châtaigne</skos:altLabel> | ||
<skos:prefLabel xml:lang="en">The Chestnut</skos:prefLabel> | ||
<skos:definition xml:lang="en">A different type of tree.</skos:definition> | ||
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> | ||
<dcterms:identifier>2</dcterms:identifier> | ||
</rdf:Description> | ||
</rdf:RDF> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# -*- coding: utf-8 -*- | ||
import os | ||
import sys | ||
from pyramid.paster import get_appsettings | ||
import unittest | ||
|
||
from sqlalchemy import engine_from_config | ||
from sqlalchemy.orm import sessionmaker | ||
from zope.sqlalchemy import ZopeTransactionExtension | ||
|
||
from skosprovider_sqlalchemy.models import Base | ||
from skosprovider_sqlalchemy.providers import SQLAlchemyProvider | ||
from skosprovider.utils import dict_dumper | ||
|
||
from atramhasis.scripts import import_rdf | ||
|
||
here = os.path.dirname(__file__) | ||
settings = get_appsettings(os.path.join(here, '../', 'tests/conf_test.ini')) | ||
|
||
|
||
class ImportTests(unittest.TestCase): | ||
@classmethod | ||
def setUpClass(cls): | ||
settings['sqlalchemy.url'] = 'sqlite:///%s/dbtest.sqlite' % here | ||
cls.engine = engine_from_config(settings, prefix='sqlalchemy.') | ||
Base.metadata.drop_all(cls.engine) | ||
Base.metadata.create_all(cls.engine) | ||
|
||
def setUp(self): | ||
Base.metadata.drop_all(self.engine) | ||
Base.metadata.create_all(self.engine) | ||
Base.metadata.bind = self.engine | ||
self.session_maker = sessionmaker( | ||
bind=self.engine, | ||
extension=ZopeTransactionExtension() | ||
) | ||
|
||
def tearDown(self): | ||
Base.metadata.drop_all(self.engine) | ||
|
||
def test_import_rdf(self): | ||
sys.argv = ['import_rdf', '--from', 'data/trees.xml', '--to', 'sqlite:///dbtest.sqlite'] | ||
import_rdf.main(sys.argv) | ||
|
||
sql_prov = SQLAlchemyProvider({'id': 'TREES', 'conceptscheme_id': 1}, self.session_maker) | ||
dump = dict_dumper(sql_prov) | ||
|
||
self.assertEqual(len(dump), 3) | ||
obj_1 = [item for item in dump if item['uri'] == 'http://id.trees.org/2'][0] | ||
self.assertEqual(obj_1['broader'], []) | ||
self.assertEqual(obj_1['id'], 2) | ||
self.assertEqual(obj_1['member_of'], [3]) | ||
self.assertEqual(obj_1['narrower'], []) | ||
label_en = [label for label in obj_1['labels'] if label['language'] == 'en'][0] | ||
self.assertDictEqual(label_en, {'label': 'The Chestnut', 'language': 'en', 'type': 'prefLabel'}) | ||
label_nl = [label for label in obj_1['labels'] if label['language'] == 'nl'][0] | ||
self.assertDictEqual(label_nl, {'label': 'De Paardekastanje', 'language': 'nl', 'type': 'altLabel'}) | ||
label_fr = [label for label in obj_1['labels'] if label['language'] == 'fr'][0] | ||
self.assertDictEqual(label_fr, {'label': u'la châtaigne', 'language': 'fr', 'type': 'altLabel'}) | ||
self.assertDictEqual(obj_1['notes'][0], | ||
{'language': 'en', 'note': 'A different type of tree.', 'type': 'definition'}) | ||
|
||
|
||
|
||
|