Example #1
0
    def test_buildings(self):
        from skosprovider_sqlalchemy.models import (Concept as ConceptModel)

        buildingprovider = _get_buildings()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(buildingprovider, cs, self.session)
        vc = VisitationCalculator(self.session)
        visit = vc.visit(cs)
        assert len(visit) == 5
        # Check that castle is present twice
        ids = [
            self.session.query(ConceptModel).get(v['id']).concept_id
            for v in visit
        ]
        assert ids.count(2) == 2
        for v in visit:
            # Check that fortification has one child
            if v['id'] == 1:
                assert v['lft'] + 3 == v['rght']
                assert 1 == v['depth']
            # Check that habitations has two children
            if v['id'] == 3:
                assert v['lft'] + 5 == v['rght']
                assert 1 == v['depth']
            # Check that castle has no children
            if v['id'] == 2:
                assert v['lft'] + 1 == v['rght']
                assert 2 == v['depth']
def provider_to_db(provider, conceptscheme, session):
    """
    import provider data into the database
    """
    session.add(conceptscheme)
    import_provider(provider, conceptscheme, session)
    session.commit()
    def test_buildings(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel
        )

        buildingprovider = _get_buildings()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(buildingprovider, cs, self.session)
        vc = VisitationCalculator(self.session)
        visit = vc.visit(cs)
        assert len(visit) == 5
        # Check that castle is present twice
        ids = [self.session.query(ConceptModel).get(v['id']).concept_id for v in visit]
        assert ids.count(2) == 2
        for v in visit:
            # Check that fortification has one child
            if v['id'] == 1:
                assert v['lft'] + 3 == v['rght']
                assert 1 == v['depth']
            # Check that habitations has two children
            if v['id'] == 3:
                assert v['lft'] + 5 == v['rght']
                assert 1 == v['depth']
            # Check that castle has no children
            if v['id'] == 2:
                assert v['lft'] + 1 == v['rght']
                assert 2 == v['depth']
Example #4
0
def provider_to_db(provider, conceptscheme, session):
    """
    import provider data into the database
    """
    session.add(conceptscheme)
    import_provider(provider, conceptscheme, session)
    session.commit()
 def test_geo(self):
     from skosprovider_sqlalchemy.models import (
         Concept as ConceptModel,
         Collection as CollectionModel
     )
     geoprovider = _get_geo()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(geoprovider, cs, self.session)
     world = self.session.query(ConceptModel)\
                         .filter(ConceptModel.conceptscheme == cs)\
                         .filter(ConceptModel.concept_id == 1)\
                         .one()
     self.assertEqual(1, world.concept_id)
     self.assertEqual('World', str(world.label('en')))
     self.assertEqual(1, len(world.labels))
     self.assertEqual(2, len(world.narrower_concepts))
     dutch = self.session.query(CollectionModel)\
                         .filter(CollectionModel.conceptscheme == cs)\
                         .filter(CollectionModel.concept_id == 333)\
                         .one()
     self.assertEqual(333, dutch.concept_id)
     self.assertEqual('collection', dutch.type)
     self.assertEqual(1, len(dutch.labels))
     self.assertEqual(4, len(dutch.members))
     netherlands = self.session\
                       .query(ConceptModel)\
                       .filter(ConceptModel.conceptscheme == cs)\
                       .filter(ConceptModel.concept_id == 10)\
                       .one()
     self.assertEqual(10, netherlands.concept_id)
     self.assertEqual('concept', netherlands.type)
     self.assertEqual(1, len(netherlands.labels))
     self.assertEqual(2, netherlands.broader_concepts.pop().concept_id)
     self.assertEqual(1, len(netherlands.related_concepts))
 def test_empty_provider(self):
     from skosprovider.providers import DictionaryProvider
     p = DictionaryProvider({'id': 'EMPTY'}, [])
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(p, cs, self.session)
     vc = VisitationCalculator(self.session)
     v = vc.visit(cs)
     self.assertEqual(0, len(v))
Example #7
0
    def test_empty_provider(self):
        from skosprovider.providers import DictionaryProvider

        p = DictionaryProvider({'id': 'EMPTY'}, [])
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(p, cs, self.session)
        vc = VisitationCalculator(self.session)
        v = vc.visit(cs)
        assert 0 == len(v)
Example #8
0
 def test_menu(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     assert 11 == len(visit)
     for v in visit:
         assert v['lft'] + 1 == v['rght']
         assert 1 == v['depth']
 def test_menu(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     self.assertEqual(11, len(visit))
     for v in visit:
         self.assertEqual(v['lft']+1, v['rght'])
         self.assertEqual(1, v['depth'])
 def test_menu(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     assert 11 == len(visit)
     for v in visit:
         assert v['lft'] + 1 == v['rght']
         assert 1 == v['depth']
 def test_empty_provider(self):
     from skosprovider_sqlalchemy.models import (
         ConceptScheme as ConceptSchemeModel
     )
     from skosprovider.providers import DictionaryProvider
     p = DictionaryProvider({'id': 'EMPTY'}, [])
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(p, cs, self.session)
     scheme = self.session.query(ConceptSchemeModel).get(1)
     self.assertEqual(scheme, cs)
Example #12
0
    def test_empty_provider(self):
        from skosprovider_sqlalchemy.models import (ConceptScheme as
                                                    ConceptSchemeModel)
        from skosprovider.providers import DictionaryProvider

        p = DictionaryProvider({'id': 'EMPTY'}, [])
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(p, cs, self.session)
        scheme = self.session.query(ConceptSchemeModel).get(68)
        assert scheme == cs
 def test_menu_sorted(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     self.assertEqual(11, len(visit))
     left = 1
     for v in visit:
         self.assertEqual(v['lft'], left)
         left += 2
 def test_menu_sorted(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     assert 11 == len(visit)
     left = 1
     for v in visit:
         assert v['lft'] == left
         left += 2
Example #15
0
 def test_menu_sorted(self):
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     assert 11 == len(visit)
     left = 1
     for v in visit:
         assert v['lft'] == left
         left += 2
Example #16
0
    def test_materials(self):
        from skosprovider_sqlalchemy.models import (
            Thing as ThingModel, )

        materialsprovider = _get_materials()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(materialsprovider, cs, self.session)
        materials = self.session.query(ThingModel) \
            .filter(ThingModel.conceptscheme == cs) \
            .all()
        assert 2 == len(materials)
    def test_materials(self):
        from skosprovider_sqlalchemy.models import (
            Thing as ThingModel,
        )

        materialsprovider = _get_materials()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(materialsprovider, cs, self.session)
        materials = self.session.query(ThingModel) \
            .filter(ThingModel.conceptscheme == cs) \
            .all()
        assert 2 == len(materials)
Example #18
0
    def test_event_types(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel, )

        eventtypesprovider = _get_event_types()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(eventtypesprovider, cs, self.session)
        archeologische_opgravingen = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 38) \
            .one()
        assert 3 == len(archeologische_opgravingen.narrower_collections)
    def test_event_types(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel,
        )

        eventtypesprovider = _get_event_types()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(eventtypesprovider, cs, self.session)
        archeologische_opgravingen = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 38) \
            .one()
        assert 3 == len(archeologische_opgravingen.narrower_collections)
    def test_heritage_types(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel,
        )

        heritagetypesprovider = _get_heritage_types()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(heritagetypesprovider, cs, self.session)
        bomen = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 72) \
            .one()
        assert 2 == len(bomen.narrower_collections)
Example #21
0
def main(argv=sys.argv):
    from fixtures.data import trees, geo
    from fixtures.styles_and_cultures import styles_and_cultures
    from fixtures.materials import materials
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    session_maker = sessionmaker(bind=engine,
                                 extension=ZopeTransactionExtension())
    db_session = session_maker()
    with transaction.manager:
        import_provider(trees,
                        ConceptScheme(id=1, uri='urn:x-skosprovider:trees'),
                        db_session)
        import_provider(geo, ConceptScheme(id=2, uri='urn:x-skosprovider:geo'),
                        db_session)
        import_provider(styles_and_cultures,
                        ConceptScheme(id=3, uri='urn:x-vioe:styles'),
                        db_session)
        import_provider(materials,
                        ConceptScheme(id=4, uri='urn:x-vioe:materials'),
                        db_session)
    print('--atramhasis-db-initialized--')
Example #22
0
    def test_menu(self):
        from skosprovider_sqlalchemy.models import (Concept as ConceptModel)

        csvprovider = _get_menu()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(csvprovider, cs, self.session)
        lobster = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 11) \
            .one()
        assert 11 == lobster.concept_id
        assert 'urn:x-skosprovider:menu:11' == lobster.uri
        assert 'Lobster Thermidor' == str(lobster.label())
        assert 1 == len(lobster.notes)
 def test_menu(self):
     from skosprovider_sqlalchemy.models import (
         Concept as ConceptModel
     )
     csvprovider = _get_menu()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(csvprovider, cs, self.session)
     lobster = self.session.query(ConceptModel)\
                           .filter(ConceptModel.conceptscheme == cs)\
                           .filter(ConceptModel.concept_id == 11)\
                           .one()
     self.assertEqual(11, lobster.id)
     self.assertEqual('Lobster Thermidor', str(lobster.label()))
     self.assertEqual(1, len(lobster.notes))
Example #24
0
    def test_provider_invalid_language(self):
        from skosprovider.providers import DictionaryProvider

        with self.assertRaises(ValueError):
            p = DictionaryProvider({'id': 'EMPTY'}, [{
                'id':
                '1',
                'labels': [{
                    'type': 'prefLabel',
                    'language': 'nederlands',
                    'label': 'Versterkingen'
                }]
            }])
            cs = self._get_cs()
            self.session.add(cs)
            import_provider(p, cs, self.session)
Example #25
0
    def test_heritage_types(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel, )

        heritagetypesprovider = _get_heritage_types()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(heritagetypesprovider, cs, self.session)
        bomen = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 72) \
            .one()
        assert 2 == len(bomen.narrower_collections)
        assert 2 == len(cs.labels)
        assert 'Erfgoedtypes' == cs.label('nl').label
        assert 2 == len(cs.notes)
        assert 2 == len(cs.languages)
    def test_menu(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel
        )

        csvprovider = _get_menu()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(csvprovider, cs, self.session)
        lobster = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 11) \
            .one()
        assert 11 == lobster.concept_id
        assert 'urn:x-skosprovider:menu:11' == lobster.uri
        assert 'Lobster Thermidor' == str(lobster.label())
        assert 1 == len(lobster.notes)
 def test_buildings(self):
     from skosprovider_sqlalchemy.models import (
         Concept as ConceptModel
     )
     buildingprovider = _get_buildings()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(buildingprovider, cs, self.session)
     castle = self.session.query(ConceptModel)\
                          .filter(ConceptModel.conceptscheme == cs)\
                          .filter(ConceptModel.concept_id == 2)\
                          .one()
     self.assertEqual(2, len(castle.broader_concepts))
     hut = self.session.query(ConceptModel)\
                       .filter(ConceptModel.conceptscheme == cs)\
                       .filter(ConceptModel.concept_id == 4)\
                       .one()
     self.assertEqual(1, len(hut.broader_concepts))
    def test_provider_invalid_language(self):
        from skosprovider.providers import DictionaryProvider

        with self.assertRaises(ValueError):
            p = DictionaryProvider({'id': 'EMPTY'}, [
                {
                    'id': '1',
                    'labels': [
                        {
                            'type': 'prefLabel',
                            'language': 'nederlands',
                            'label': 'Versterkingen'
                        }
                    ]
                }
            ])
            cs = self._get_cs()
            self.session.add(cs)
            import_provider(p, cs, self.session)
Example #29
0
    def test_buildings(self):
        from skosprovider_sqlalchemy.models import (Concept as ConceptModel)

        buildingprovider = _get_buildings()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(buildingprovider, cs, self.session)
        castle = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 2) \
            .one()
        assert 2 == len(castle.broader_concepts)
        hut = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 4) \
            .one()
        assert 1 == len(hut.broader_concepts)
        assert 1 == len(hut.matches)
        assert 'exactMatch' == hut.matches[0].matchtype_id
        assert 'http://vocab.getty.edu/aat/300004824' == hut.matches[0].uri
 def test_geo(self):
     geoprovider = _get_geo()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(geoprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     self.assertEqual(10, len(visit))
     world = visit[0]
     self.assertEqual(1, world['id'])
     self.assertEqual(1, world['lft'])
     self.assertEqual(20, world['rght'])
     self.assertEqual(1, world['depth'])
     for v in visit:
         if v['id'] == 3:
             self.assertEqual(v['lft']+3, v['rght'])
             self.assertEqual(2, v['depth'])
         if v['id'] == 6:
             self.assertEqual(v['lft']+1, v['rght'])
             self.assertEqual(3, v['depth'])
Example #31
0
    def setUp(self):
        self.config = Configurator(settings=settings)
        self.config.add_route('login', '/auth/login')
        self.config.add_route('logout', '/auth/logout')
        includeme(self.config)
        self.config.add_static_view('atramhasis/static', 'atramhasis:static')

        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)

        Base.metadata.bind = self.engine

        self.config.registry.dbmaker = self.session_maker
        self.config.add_request_method(db, reify=True)

        self.config.include('atramhasis.skos')

        with transaction.manager:
            local_session = self.session_maker()
            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2), local_session)
            local_session.add(LabelType('hiddenLabel', 'A hidden label.'))
            local_session.add(LabelType('altLabel', 'An alternative label.'))
            local_session.add(LabelType('prefLabel', 'A preferred label.'))
            local_session.add(Language('nl', 'Dutch'))
            local_session.add(Language('en', 'English'))

        self.app = self.config.make_wsgi_app()
        self.testapp = TestApp(self.app)
Example #32
0
    def setUp(self):
        settings["sqlalchemy.url"] = "sqlite:///%s/dbtest.sqlite" % here
        self.engine = engine_from_config(settings, prefix="sqlalchemy.")
        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)

        session_maker = sessionmaker(bind=self.engine, extension=ZopeTransactionExtension())

        with transaction.manager:
            local_session = session_maker()
            import_provider(trees, ConceptScheme(id=1, uri="urn:x-skosprovider:trees"), local_session)
            import_provider(materials, ConceptScheme(id=4, uri="urn:x-vioe:materials"), local_session)
            import_provider(geo, ConceptScheme(id=2), local_session)
            import_provider(styles_and_cultures, ConceptScheme(id=3), local_session)
    def test_buildings(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel
        )

        buildingprovider = _get_buildings()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(buildingprovider, cs, self.session)
        castle = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 2) \
            .one()
        assert 2 == len(castle.broader_concepts)
        hut = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 4) \
            .one()
        assert 1 == len(hut.broader_concepts)
        assert 1 == len(hut.matches)
        assert 'exactMatch' == hut.matches[0].matchtype_id
        assert 'http://vocab.getty.edu/aat/300004824' == hut.matches[0].uri
    def test_geo(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel,
            Collection as CollectionModel
        )

        geoprovider = _get_geo()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(geoprovider, cs, self.session)
        world = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 1) \
            .one()
        assert world.concept_id == 1
        assert 'urn:x-skosprovider:geography:1' == world.uri
        assert 'World' == str(world.label('en'))
        assert 1 == len(world.labels)
        assert 2 == len(world.narrower_concepts)

        dutch = self.session.query(CollectionModel) \
            .filter(CollectionModel.conceptscheme == cs) \
            .filter(CollectionModel.concept_id == 333) \
            .one()
        assert 333 == dutch.concept_id
        assert 'urn:x-skosprovider:geography:333' == dutch.uri
        assert 'collection' == dutch.type
        assert 1 == len(dutch.labels)
        assert 4 == len(dutch.members)

        netherlands = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 10) \
            .one()
        assert 10 == netherlands.concept_id
        assert 'concept' == netherlands.type
        assert 1 == len(netherlands.labels)
        assert 2 == netherlands.broader_concepts.pop().concept_id
        assert 1 == len(netherlands.related_concepts)
Example #35
0
    def test_geo(self):
        from skosprovider_sqlalchemy.models import (Concept as ConceptModel,
                                                    Collection as
                                                    CollectionModel)

        geoprovider = _get_geo()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(geoprovider, cs, self.session)
        world = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 1) \
            .one()
        assert world.concept_id == 1
        assert 'urn:x-skosprovider:geography:1' == world.uri
        assert 'World' == str(world.label('en'))
        assert 1 == len(world.labels)
        assert 2 == len(world.narrower_concepts)

        dutch = self.session.query(CollectionModel) \
            .filter(CollectionModel.conceptscheme == cs) \
            .filter(CollectionModel.concept_id == 333) \
            .one()
        assert 333 == dutch.concept_id
        assert 'urn:x-skosprovider:geography:333' == dutch.uri
        assert 'collection' == dutch.type
        assert 1 == len(dutch.labels)
        assert 4 == len(dutch.members)

        netherlands = self.session.query(ConceptModel) \
            .filter(ConceptModel.conceptscheme == cs) \
            .filter(ConceptModel.concept_id == 10) \
            .one()
        assert 10 == netherlands.concept_id
        assert 'concept' == netherlands.type
        assert 1 == len(netherlands.labels)
        assert 2 == netherlands.broader_concepts.pop().concept_id
        assert 1 == len(netherlands.related_concepts)
Example #36
0
    def test_geo(self):
        from skosprovider_sqlalchemy.models import (Concept as ConceptModel)

        geoprovider = _get_geo()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(geoprovider, cs, self.session)
        vc = VisitationCalculator(self.session)
        visit = vc.visit(cs)
        assert 10 == len(visit)
        world = visit[0]
        assert self.session.query(ConceptModel).get(
            world['id']).concept_id == 1
        assert 1 == world['lft']
        assert 20 == world['rght']
        assert 1 == world['depth']
        for v in visit:
            if v['id'] == 3:
                assert v['lft'] + 3 == v['rght']
                assert 2 == v['depth']
            if v['id'] == 6:
                assert v['lft'] + 1 == v['rght']
                assert 3 == v['depth']
    def test_geo(self):
        from skosprovider_sqlalchemy.models import (
            Concept as ConceptModel
        )

        geoprovider = _get_geo()
        cs = self._get_cs()
        self.session.add(cs)
        import_provider(geoprovider, cs, self.session)
        vc = VisitationCalculator(self.session)
        visit = vc.visit(cs)
        assert 10 == len(visit)
        world = visit[0]
        assert self.session.query(ConceptModel).get(world['id']).concept_id == 1
        assert 1 == world['lft']
        assert 20 == world['rght']
        assert 1 == world['depth']
        for v in visit:
            if v['id'] == 3:
                assert v['lft'] + 3 == v['rght']
                assert 2 == v['depth']
            if v['id'] == 6:
                assert v['lft'] + 1 == v['rght']
                assert 3 == v['depth']
 def test_buildings(self):
     buildingprovider = _get_buildings()
     cs = self._get_cs()
     self.session.add(cs)
     import_provider(buildingprovider, cs, self.session)
     vc = VisitationCalculator(self.session)
     visit = vc.visit(cs)
     self.assertEqual(5, len(visit))
     # Check that castle is present twice
     ids = [v['id'] for v in visit]
     self.assertEqual(2, ids.count(2))
     for v in visit:
         # Check that fortification has one child
         if v['id'] == 1:
             self.assertEqual(v['lft']+3, v['rght'])
             self.assertEqual(1, v['depth'])
         # Check that habitations has two children
         if v['id'] == 3:
             self.assertEqual(v['lft']+5, v['rght'])
             self.assertEqual(1, v['depth'])
         # Check that castle has no children
         if v['id'] == 2:
             self.assertEqual(v['lft']+1, v['rght'])
             self.assertEqual(2, v['depth'])
    def setUp(self):
        settings['sqlalchemy.url'] = 'sqlite:///%s/dbtest.sqlite' % here
        self.engine = engine_from_config(settings, prefix='sqlalchemy.')
        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)

        session_maker = sessionmaker(
            bind=self.engine,
            extension=ZopeTransactionExtension()
        )

        with transaction.manager:
            local_session = session_maker()
            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2, uri='urn:x-vioe:geo'), local_session)
            import_provider(styles_and_cultures, ConceptScheme(id=3, uri='urn:x-vioe:styles'), local_session)
Example #40
0
    def setUp(self):
        self.engine = engine_from_config(settings, 'sqlalchemy.')
        Base.metadata.bind = self.engine
        SkosBase.metadata.bind = self.engine
        session_maker = sessionmaker(
            bind=self.engine,
        )
        SkosBase.metadata.drop_all(self.engine)
        SkosBase.metadata.create_all(self.engine)
        self.config = testing.setUp()
        self.config.registry.dbmaker = session_maker

        with transaction.manager:
            local_session = session_maker()
            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2), local_session)
            import_provider(styles_and_cultures, ConceptScheme(id=3), local_session)
Example #41
0
    def setUp(self):
        self.engine = engine_from_config(settings, 'sqlalchemy.')
        Base.metadata.bind = self.engine
        SkosBase.metadata.bind = self.engine
        session_maker = sessionmaker(
            bind=self.engine,
        )
        SkosBase.metadata.drop_all(self.engine)
        SkosBase.metadata.create_all(self.engine)
        self.config = testing.setUp()
        self.config.registry.dbmaker = session_maker

        with transaction.manager:
            local_session = session_maker()
            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2, uri='urn:x-vioe:geo'), local_session)
            import_provider(styles_and_cultures, ConceptScheme(id=3, uri='urn:x-vioe:styles'), local_session)
Example #42
0
def main(argv=sys.argv):
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    session_maker = sessionmaker(
        bind=engine,
        extension=ZopeTransactionExtension()
    )
    db_session = session_maker()
    with transaction.manager:
        import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), db_session)
        import_provider(geo, ConceptScheme(id=2, uri='urn:x-skosprovider:geo'), db_session)
        import_provider(styles_and_cultures, ConceptScheme(id=3, uri='urn:x-vioe:styles'), db_session)
        import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), db_session)
    print('--atramhasis-db-initialized--')
    def setUp(self):
        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)
        Base.metadata.bind = self.engine
        VisitLogBase.metadata.drop_all(self.engine)
        VisitLogBase.metadata.create_all(self.engine)
        VisitLogBase.metadata.bind = self.engine

        with transaction.manager:
            local_session = self.session_maker()
            local_session.add(Language('nl', 'Dutch'))
            local_session.add(Language('nl-BE', 'Dutch'))
            local_session.add(Language('en', 'English'))

            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2, uri='urn:x-vioe:geo'), local_session)
            local_session.add(ConceptScheme(id=3, uri='urn:x-vioe:test'))
            local_session.add(LabelType('hiddenLabel', 'A hidden label.'))
            local_session.add(LabelType('altLabel', 'An alternative label.'))
            local_session.add(LabelType('prefLabel', 'A preferred label.'))

            local_session.add(MatchType('broadMatch', ''))
            local_session.add(MatchType('closeMatch', ''))
            local_session.add(MatchType('exactMatch', ''))
            local_session.add(MatchType('narrowMatch', ''))
            local_session.add(MatchType('relatedMatch', ''))

            local_session.flush()

            match = Match()
            match.matchtype_id = 'narrowMatch'
            match.uri = 'urn:test'
            match.concept_id = 1
            local_session.add(match)

            local_session.add(ConceptVisitLog(concept_id=1, conceptscheme_id=1, origin='REST',
                                              visited_at=datetime(2015, 8, 27, 10, 58, 3)))
            local_session.add(ConceptVisitLog(concept_id=1, conceptscheme_id=1, origin='REST',
                                              visited_at=datetime(2015, 8, 27, 11, 58, 3)))
            local_session.add(ConceptVisitLog(concept_id=2, conceptscheme_id=1, origin='REST',
                                              visited_at=datetime(2015, 8, 27, 10, 58, 3)))
            local_session.add(ConceptVisitLog(concept_id=2, conceptscheme_id=2, origin='REST',
                                              visited_at=datetime(2015, 8, 27, 10, 58, 3)))
Example #44
0
    def setUp(self):
        self.config = Configurator(settings=settings)
        self.config.add_route('login', '/auth/login')
        self.config.add_route('logout', '/auth/logout')
        includeme(self.config)
        self.config.add_static_view('atramhasis/static', 'atramhasis:static')

        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)

        Base.metadata.bind = self.engine

        self.config.registry.dbmaker = self.session_maker
        self.config.add_request_method(db, reify=True)

        with transaction.manager:
            local_session = self.session_maker()
            import_provider(
                trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'),
                local_session)
            import_provider(materials,
                            ConceptScheme(id=4, uri='urn:x-vioe:materials'),
                            local_session)
            import_provider(geo, ConceptScheme(id=2), local_session)
            local_session.add(ConceptScheme(id=3))
            local_session.add(LabelType('hiddenLabel', 'A hidden label.'))
            local_session.add(LabelType('altLabel', 'An alternative label.'))
            local_session.add(LabelType('prefLabel', 'A preferred label.'))
            local_session.add(Language('nl', 'Dutch'))
            local_session.add(Language('en', 'English'))

            local_session.add(MatchType('broadMatch', ''))
            local_session.add(MatchType('closeMatch', ''))
            local_session.add(MatchType('exactMatch', ''))
            local_session.add(MatchType('narrowMatch', ''))
            local_session.add(MatchType('relatedMatch', ''))
            local_session.add(Language(id='de', name='test'))

        TREES = SQLAlchemyProvider({
            'id': 'TREES',
            'conceptscheme_id': 1
        }, self.config.registry.dbmaker)

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

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

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

        self.config.add_subscriber(self.mock_event_handler,
                                   ProtectedResourceEvent)
        self.config.add_subscriber(
            self.mock_event_handler_provider_unavailable,
            ProtectedResourceEvent)

        skosregis = self.config.get_skos_registry()
        skosregis.register_provider(TREES)
        skosregis.register_provider(GEO)
        skosregis.register_provider(STYLES)
        skosregis.register_provider(MATERIALS)
        skosregis.register_provider(TEST)

        self.app = self.config.make_wsgi_app()
        self.testapp = TestApp(self.app)
def main(argv=sys.argv):
    from fixtures.data import trees, geo
    from fixtures.styles_and_cultures import styles_and_cultures
    from fixtures.materials import materials
    from fixtures.eventtypes import eventtypes
    from fixtures.heritagetypes import heritagetypes
    from fixtures.periods import periods
    from fixtures.species import species
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    session_maker = sessionmaker(
        bind=engine,
        extension=ZopeTransactionExtension()
    )
    db_session = session_maker()
    with transaction.manager:
        import_provider(
            trees,
            ConceptScheme(
                id=1,
                uri='urn:x-skosprovider:trees',
                labels=[
                    Label('Verschillende soorten bomen', u'prefLabel', u'nl'),
                    Label('Different types of trees', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            geo,
            ConceptScheme(
                id=2,
                uri='urn:x-skosprovider:geo',
                labels=[
                    Label('Geografie', u'prefLabel', u'nl'),
                    Label('Geography', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            styles_and_cultures,
            ConceptScheme(
                id=3,
                uri='https://id.erfgoed.net/thesauri/stijlen_en_culturen',
                labels=[
                    Label('Stijlen en Culturen', u'prefLabel', u'nl'),
                    Label('Styles and Cultures', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            materials,
            ConceptScheme(
                id=4,
                uri='https://id.erfgoed.net/thesauri/materialen',
                labels=[
                    Label('Materialen', u'prefLabel', u'nl'),
                    Label('Materials', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            eventtypes,
            ConceptScheme(
                id=5,
                uri='https://id.erfgoed.net/thesauri/gebeurtenistypes',
                labels=[
                    Label('Gebeurtenistypes', u'prefLabel', u'nl'),
                    Label('Event types', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            heritagetypes,
            ConceptScheme(
                id=6,
                uri='https://id.erfgoed.net/thesauri/erfgoedtypes',
                labels=[
                    Label('Erfgoedtypes', u'prefLabel', u'nl'),
                    Label('Heritage types', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            periods,
            ConceptScheme(
                id=7,
                uri='https://id.erfgoed.net/thesauri/dateringen',
                labels=[
                    Label('Dateringen', u'prefLabel', u'nl'),
                    Label('Periods', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
        import_provider(
            species,
            ConceptScheme(
                id=8,
                uri='https://id.erfgoed.net/thesauri/soorten',
                labels=[
                    Label('Soorten', u'prefLabel', u'nl'),
                    Label('Species', u'prefLabel', u'en')
                ]
            ),
            db_session
        )
    print('--atramhasis-db-initialized--')
    def setUp(self):
        self.config = Configurator(settings=settings, package='tests')
        self.config.add_route('login', '/auth/login')
        self.config.add_route('logout', '/auth/logout')
        includeme(self.config)
        self.config.add_static_view('atramhasis/static', 'atramhasis:static')

        Base.metadata.drop_all(self.engine)
        Base.metadata.create_all(self.engine)
        VisitLogBase.metadata.drop_all(self.engine)
        VisitLogBase.metadata.create_all(self.engine)

        Base.metadata.bind = self.engine

        self.config.registry.dbmaker = self.session_maker
        self.config.add_request_method(data_managers, reify=True)

        with transaction.manager:
            local_session = self.session_maker()

            import_provider(trees, ConceptScheme(id=1, uri='urn:x-skosprovider:trees'), local_session)
            import_provider(materials, ConceptScheme(id=4, uri='urn:x-vioe:materials'), local_session)
            import_provider(geo, ConceptScheme(id=2, uri='urn:x-vioe:geography'), local_session)
            local_session.add(ConceptScheme(id=3, uri='urn:x-vioe:styles'))
            local_session.add(LabelType('hiddenLabel', 'A hidden label.'))
            local_session.add(LabelType('altLabel', 'An alternative label.'))
            local_session.add(LabelType('prefLabel', 'A preferred label.'))
            local_session.add(LabelType('sortLabel', 'A sorting label.'))

            local_session.add(MatchType('broadMatch', ''))
            local_session.add(MatchType('closeMatch', ''))
            local_session.add(MatchType('exactMatch', ''))
            local_session.add(MatchType('narrowMatch', ''))
            local_session.add(MatchType('relatedMatch', ''))
            local_session.add(Language(id='de', name='test'))

        TREES = SQLAlchemyProvider(
            {'id': 'TREES', 'conceptscheme_id': 1},
            self.config.registry.dbmaker
        )

        GEO = SQLAlchemyProvider(
            {'id': 'GEOGRAPHY', 'conceptscheme_id': 2},
            self.config.registry.dbmaker,
            uri_generator=UriPatternGenerator('urn:x-vioe:geography:%s')
        )

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

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

        self.config.add_subscriber(self.mock_event_handler, ProtectedResourceEvent)
        self.config.add_subscriber(self.mock_event_handler_provider_unavailable, ProtectedResourceEvent)

        skosregis = self.config.get_skos_registry()
        skosregis.register_provider(TREES)
        skosregis.register_provider(GEO)
        skosregis.register_provider(STYLES)
        skosregis.register_provider(MATERIALS)
        skosregis.register_provider(TEST)

        self.app = self.config.make_wsgi_app()
        self.testapp = TestApp(self.app)
def main(argv=sys.argv):
    from fixtures.data import trees, geo
    from fixtures.styles_and_cultures import styles_and_cultures
    from fixtures.materials import materials
    from fixtures.eventtypes import eventtypes
    from fixtures.heritagetypes import heritagetypes
    from fixtures.periods import periods
    from fixtures.species import species
    if len(argv) < 2:
        usage(argv)
    config_uri = argv[1]
    options = parse_vars(argv[2:])
    setup_logging(config_uri)
    settings = get_appsettings(config_uri, options=options)
    engine = engine_from_config(settings, 'sqlalchemy.')
    session_maker = sessionmaker(bind=engine,
                                 extension=ZopeTransactionExtension())
    db_session = session_maker()
    with transaction.manager:
        import_provider(
            trees,
            ConceptScheme(id=1,
                          uri='urn:x-skosprovider:trees',
                          labels=[
                              Label('Verschillende soorten bomen',
                                    u'prefLabel', u'nl'),
                              Label('Different types of trees', u'prefLabel',
                                    u'en')
                          ]), db_session)
        import_provider(
            geo,
            ConceptScheme(id=2,
                          uri='urn:x-skosprovider:geo',
                          labels=[
                              Label('Geografie', u'prefLabel', u'nl'),
                              Label('Geography', u'prefLabel', u'en')
                          ]), db_session)
        import_provider(
            styles_and_cultures,
            ConceptScheme(
                id=3,
                uri='https://id.erfgoed.net/thesauri/stijlen_en_culturen',
                labels=[
                    Label('Stijlen en Culturen', u'prefLabel', u'nl'),
                    Label('Styles and Cultures', u'prefLabel', u'en')
                ]), db_session)
        import_provider(
            materials,
            ConceptScheme(id=4,
                          uri='https://id.erfgoed.net/thesauri/materialen',
                          labels=[
                              Label('Materialen', u'prefLabel', u'nl'),
                              Label('Materials', u'prefLabel', u'en')
                          ]), db_session)
        import_provider(
            eventtypes,
            ConceptScheme(
                id=5,
                uri='https://id.erfgoed.net/thesauri/gebeurtenistypes',
                labels=[
                    Label('Gebeurtenistypes', u'prefLabel', u'nl'),
                    Label('Event types', u'prefLabel', u'en')
                ]), db_session)
        import_provider(
            heritagetypes,
            ConceptScheme(id=6,
                          uri='https://id.erfgoed.net/thesauri/erfgoedtypes',
                          labels=[
                              Label('Erfgoedtypes', u'prefLabel', u'nl'),
                              Label('Heritage types', u'prefLabel', u'en')
                          ]), db_session)
        import_provider(
            periods,
            ConceptScheme(id=7,
                          uri='https://id.erfgoed.net/thesauri/dateringen',
                          labels=[
                              Label('Dateringen', u'prefLabel', u'nl'),
                              Label('Periods', u'prefLabel', u'en')
                          ]), db_session)
        import_provider(
            species,
            ConceptScheme(id=8,
                          uri='https://id.erfgoed.net/thesauri/soorten',
                          labels=[
                              Label('Soorten', u'prefLabel', u'nl'),
                              Label('Species', u'prefLabel', u'en')
                          ]), db_session)
    print('--atramhasis-db-initialized--')