Ejemplo n.º 1
0
    def tearDown(self):  # noqa
        testing.tearDown()

        functionality.FUNCTIONALITIES_TYPES = None

        from c2cgeoportal.models import DBSession, User, Role, Layer, \
            RestrictionArea, Theme, LayerGroup, Interface, OGCServer

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra1").one()
        ra.roles = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra2").one()
        ra.roles = []
        DBSession.delete(ra)

        DBSession.query(Role).filter(Role.name == "__test_role1").delete()
        DBSession.query(Role).filter(Role.name == "__test_role2").delete()

        for t in DBSession.query(Theme).filter(
                Theme.name == "__test_theme").all():
            DBSession.delete(t)
        for g in DBSession.query(LayerGroup).all():
            DBSession.delete(g)
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 2
0
    def tearDown(self):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, User, Role, Layer, \
                RestrictionArea, Theme, LayerGroup

        DBSession.query(User).filter(User.username == '__test_user1').delete()
        DBSession.query(User).filter(User.username == '__test_user2').delete()

        ra = DBSession.query(RestrictionArea).filter(
                RestrictionArea.name == '__test_ra1').one()
        ra.roles = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
                RestrictionArea.name == '__test_ra2').one()
        ra.roles = []
        DBSession.delete(ra)

        DBSession.query(Role).filter(Role.name == '__test_role1').delete()
        DBSession.query(Role).filter(Role.name == '__test_role2').delete()

        for t in DBSession.query(Theme).filter(Theme.name == '__test_theme').all():
            DBSession.delete(t)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)  # pragma: nocover
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)  # pragma: nocover

        transaction.commit()
Ejemplo n.º 3
0
    def setUp(self):  # noqa
        import sqlahelper
        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Interface, TreeItem
        from c2cgeoportal.lib.dbreflection import init

        for treeitem in DBSession.query(TreeItem).all():
            DBSession.delete(treeitem)

        self.metadata = None
        self.layer_ids = []

        self.role = Role(name=u"__test_role")
        self.user = User(username=u"__test_user",
                         password=u"__test_user",
                         role=self.role)
        self.main = Interface(name=u"main")

        DBSession.add(self.user)
        DBSession.add(self.role)
        DBSession.add(self.main)
        transaction.commit()

        engine = sqlahelper.get_engine()
        init(engine)
Ejemplo n.º 4
0
    def tearDown(self):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, User, Role, Layer, \
            RestrictionArea, Theme, LayerGroup

        DBSession.query(User).filter(User.username == '__test_user1').delete()
        DBSession.query(User).filter(User.username == '__test_user2').delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra1').one()
        ra.roles = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra2').one()
        ra.roles = []
        DBSession.delete(ra)

        DBSession.query(Role).filter(Role.name == '__test_role1').delete()
        DBSession.query(Role).filter(Role.name == '__test_role2').delete()

        for t in DBSession.query(Theme).filter(
                Theme.name == '__test_theme').all():
            DBSession.delete(t)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)  # pragma: nocover
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)  # pragma: nocover

        transaction.commit()
Ejemplo n.º 5
0
    def tearDown(self):  # noqa
        import transaction
        from c2cgeoportal.models import DBSession, Role, User,  \
            TreeItem, RestrictionArea, Interface

        transaction.commit()

        for treeitem in DBSession.query(TreeItem).all():
            DBSession.delete(treeitem)

        DBSession.query(User).filter(
            User.username == u"__test_user"
        ).delete()
        r = DBSession.query(Role).filter(
            Role.name == u"__test_role"
        ).one()
        r.restrictionareas = []
        DBSession.delete(r)
        DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == u"__test_ra"
        ).delete()

        DBSession.query(Interface).filter(
            Interface.name == u"main"
        ).delete()

        if self._tables is not None:
            for table in self._tables[::-1]:
                table.drop()

        transaction.commit()
Ejemplo n.º 6
0
    def setUp(self):  # noqa
        import sqlahelper
        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Interface, TreeItem
        from c2cgeoportal.lib.dbreflection import init

        for treeitem in DBSession.query(TreeItem).all():
            DBSession.delete(treeitem)

        self.metadata = None
        self.layer_ids = []

        self.role = Role(name=u"__test_role")
        self.user = User(
            username=u"__test_user",
            password=u"__test_user",
            role=self.role
        )
        self.main = Interface(name=u"main")

        DBSession.add(self.user)
        DBSession.add(self.role)
        DBSession.add(self.main)
        transaction.commit()

        engine = sqlahelper.get_engine()
        init(engine)
Ejemplo n.º 7
0
    def teardown_method(self, _):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, TreeItem, Interface, Metadata

        for t in DBSession.query(Metadata).all():
            DBSession.delete(t)
        for item in DBSession.query(TreeItem).all():
            DBSession.delete(item)
        DBSession.query(Interface).filter(Interface.name == "desktop").delete()

        transaction.commit()
Ejemplo n.º 8
0
    def teardown_method(self, _):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, TreeItem, Interface, OGCServer

        for item in DBSession.query(TreeItem).all():
            DBSession.delete(item)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
        PointTest.__table__.drop(bind=DBSession.bind, checkfirst=True)
Ejemplo n.º 9
0
    def teardown_method(self, _):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, TreeItem, \
            Interface, Dimension, OGCServer

        DBSession.query(Dimension).delete()
        for item in DBSession.query(TreeItem).all():
            DBSession.delete(item)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 10
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, LayerV1, \
            Theme, LayerGroup

        for t in DBSession.query(Theme).filter(Theme.name == "__test_theme").all():
            DBSession.delete(t)
        DBSession.query(LayerGroup).delete()
        for layer in DBSession.query(LayerV1).all():
            DBSession.delete(layer)  # pragma: no cover

        transaction.commit()
Ejemplo n.º 11
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, TreeItem, Interface

        for item in DBSession.query(TreeItem).all():
            DBSession.delete(item)
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()

        transaction.commit()
        TestPoint.__table__.drop(bind=DBSession.bind, checkfirst=True)
Ejemplo n.º 12
0
    def teardown_method(self, _):
        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Functionality, OGCServer

        functionality.FUNCTIONALITIES_TYPES = None

        transaction.commit()

        for o in DBSession.query(User).filter(
                User.username == "__test_user1").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(User).filter(
                User.username == "__test_user2").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == "__test_role1").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == "__test_role2").all():
            o.functionalities = []
            DBSession.delete(o)
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_s").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_a").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_s").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_a").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 13
0
    def tearDown(self):  # noqa
        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Functionality

        functionality.FUNCTIONALITIES_TYPES = None

        transaction.commit()

        for o in DBSession.query(User).filter(
                User.username == "__test_user1").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(User).filter(
                User.username == "__test_user2").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == "__test_role1").all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == "__test_role2").all():
            o.functionalities = []
            DBSession.delete(o)
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_s").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_a").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_s").delete()
        DBSession.query(Functionality).filter(
            Functionality.name == "__test_a").delete()

        transaction.commit()
Ejemplo n.º 14
0
    def tearDown(self):
        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Functionality

        transaction.commit()

        for o in DBSession.query(User).filter(
                User.username == '__test_user1').all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(User).filter(
                User.username == '__test_user2').all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == '__test_role1').all():
            o.functionalities = []
            DBSession.delete(o)
        for o in DBSession.query(Role).filter(
                Role.name == '__test_role2').all():
            o.functionalities = []
            DBSession.delete(o)
        DBSession.query(Functionality).filter(
            Functionality.name == '__test_s').delete()
        DBSession.query(Functionality).filter(
            Functionality.name == '__test_a').delete()
        DBSession.query(Functionality).filter(
            Functionality.name == '__test_s').delete()
        DBSession.query(Functionality).filter(
            Functionality.name == '__test_a').delete()

        transaction.commit()
    def tearDown():  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, Theme, LayerGroup, Interface, Dimension, OGCServer

        DBSession.query(Dimension).delete()
        for l in DBSession.query(Layer).all():
            DBSession.delete(l)
        DBSession.query(LayerGroup).delete()
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 16
0
def main():  # pragma: no cover
    parser = ArgumentParser(
        prog=sys.argv[0], add_help=True,
        description="Tool used to migrate your old layers from the old structure to the new one.",
    )

    parser.add_argument(
        "-i", "--app-config",
        default="production.ini",
        dest="app_config",
        help="the application .ini config file (optional, default is 'production.ini')"
    )
    parser.add_argument(
        "-n", "--app-name",
        default="app",
        dest="app_name",
        help="the application name (optional, default is 'app')"
    )
    options = parser.parse_args()

    app_config = options.app_config
    app_name = options.app_name
    if app_name is None and "#" in app_config:
        app_config, app_name = app_config.split("#", 1)
    get_app(app_config, name=app_name)

    # must be done only once we have loaded the project config
    from c2cgeoportal.models import DBSession, \
        ServerOGC, LayerWMS, LayerWMTS, LayerV1

    session = DBSession()

    table_list = [LayerWMTS, LayerWMS, ServerOGC]
    for table in table_list:
        print "Emptying table %s." % str(table.__table__)
        # must be done exactly this way othewise the cascade config in the
        # models are not used
        for t in session.query(table).all():
            session.delete(t)

    # list and create all distinct server_ogc
    server_ogc(session)

    print "Converting layerv1."
    for layer in session.query(LayerV1).all():
        layer_v1tov2(session, layer)

    transaction.commit()
Ejemplo n.º 17
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup, Interface, Dimension, OGCServer

        DBSession.query(Dimension).delete()
        for l in DBSession.query(Layer).all():
            DBSession.delete(l)
        DBSession.query(LayerGroup).delete()
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 18
0
    def tearDown(self):  # noqa
        testing.tearDown()

        functionality.FUNCTIONALITIES_TYPES = None

        from c2cgeoportal.models import DBSession, LayerV1, \
            Theme, LayerGroup, Interface

        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(LayerGroup).delete()
        for layer in DBSession.query(LayerV1).all():
            DBSession.delete(layer)  # pragma: no cover
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()

        transaction.commit()
Ejemplo n.º 19
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup, Interface, UIMetadata, WMTSDimension

        DBSession.query(UIMetadata).delete()
        DBSession.query(WMTSDimension).delete()
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        DBSession.query(LayerGroup).delete()
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()

        transaction.commit()
    def tearDown(self):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup, Interface, OGCServer

        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        DBSession.query(LayerGroup).delete()
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(OGCServer).filter(
            OGCServer.name == "__test_ogc_server"
        ).delete()
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()

        transaction.commit()
Ejemplo n.º 21
0
    def setup_method(self, _):
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None

        cleanup_db()

        self._tables = []

        import transaction
        from c2cgeoportal.models import DBSession, Role, User, Interface, TreeItem, Theme, \
            LayerGroup, OGCSERVER_AUTH_NOAUTH

        for treeitem in DBSession.query(TreeItem).all():
            DBSession.delete(treeitem)

        self.role = Role(name="__test_role")
        self.user = User(
            username="******",
            password="******",
            role=self.role
        )
        self.main = Interface(name="main")

        self.ogc_server, external_ogc_server = create_default_ogcserver()
        self.ogc_server.auth = OGCSERVER_AUTH_NOAUTH
        external_ogc_server.auth = OGCSERVER_AUTH_NOAUTH

        self.metadata = None
        self.layer_ids = []

        self.layer_group_1 = LayerGroup(name="__test_layer_group_1")

        theme = Theme(name="__test_theme")
        theme.interfaces = [self.main]
        theme.children = [self.layer_group_1]

        DBSession.add_all([self.main, self.user, self.role, theme, self.layer_group_1])

        transaction.commit()
Ejemplo n.º 22
0
    def tearDown(self):  # noqa
        testing.tearDown()

        functionality.FUNCTIONALITIES_TYPES = None

        from c2cgeoportal.models import (
            DBSession,
            User,
            Role,
            Layer,
            RestrictionArea,
            Theme,
            LayerGroup,
            Interface,
            OGCServer,
        )

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()

        ra = DBSession.query(RestrictionArea).filter(RestrictionArea.name == "__test_ra1").one()
        ra.roles = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(RestrictionArea.name == "__test_ra2").one()
        ra.roles = []
        DBSession.delete(ra)

        DBSession.query(Role).filter(Role.name == "__test_role1").delete()
        DBSession.query(Role).filter(Role.name == "__test_role2").delete()

        for t in DBSession.query(Theme).filter(Theme.name == "__test_theme").all():
            DBSession.delete(t)
        for g in DBSession.query(LayerGroup).all():
            DBSession.delete(g)
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
    def tearDown(self):  # noqa
        from c2cgeoportal.models import User, Role, LayerV1, RestrictionArea, \
            Interface, DBSession, OGCServer

        DBSession.query(User).filter(User.username == "__test_user1").delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra1"
        ).one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == "__test_role1").one()
        DBSession.delete(r)

        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name.in_(["testpoint_group", "testpoint_protected_2"])
        ).all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 24
0
    def tearDown(self):
        import transaction
        from c2cgeoportal.models import (DBSession, Role, User,
                                         Layer, TreeItem, RestrictionArea)

        transaction.commit()

        if self.metadata is not None:
            self.metadata.drop_all()

        for i in self.layer_ids:
            treeitem = DBSession.query(TreeItem).get(i)
            DBSession.delete(treeitem)
            layer = DBSession.query(Layer).get(i)
            DBSession.delete(layer)

        DBSession.query(User).filter(
            User.username == '__test_user'
        ).delete()
        r = DBSession.query(Role).filter(
            Role.name == '__test_role'
        ).one()
        r.restrictionareas = []
        DBSession.delete(r)
        DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra'
        ).delete()

        transaction.commit()
Ejemplo n.º 25
0
    def tearDown(self):  # noqa
        import transaction
        from c2cgeoportal.models import DBSession, Role, User,  \
            TreeItem, RestrictionArea, Interface

        transaction.commit()

        for treeitem in DBSession.query(TreeItem).all():
            DBSession.delete(treeitem)

        DBSession.query(User).filter(User.username == u"__test_user").delete()
        r = DBSession.query(Role).filter(Role.name == u"__test_role").one()
        r.restrictionareas = []
        DBSession.delete(r)
        DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == u"__test_ra").delete()

        DBSession.query(Interface).filter(Interface.name == u"main").delete()

        if self._tables is not None:
            for table in self._tables[::-1]:
                table.drop()

        transaction.commit()
Ejemplo n.º 26
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup, Interface, Metadata

        for t in DBSession.query(Metadata).all():
            DBSession.delete(t)
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(Interface).filter(
            Interface.name == "desktop"
        ).delete()

        transaction.commit()
Ejemplo n.º 27
0
    def tearDown(self):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup

        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)  # pragma: nocover
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)  # pragma: nocover

        transaction.commit()
Ejemplo n.º 28
0
    def tearDown(self):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
                Theme, LayerGroup, Role

        for t in DBSession.query(Theme).filter(Theme.name == '__test_theme').all():
            DBSession.delete(t)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)  # pragma: nocover
        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)  # pragma: nocover

        transaction.commit()
Ejemplo n.º 29
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, LayerV1, \
            Theme, LayerGroup, OGCServer

        for t in DBSession.query(Theme).filter(
                Theme.name == "__test_theme").all():
            DBSession.delete(t)
        for g in DBSession.query(LayerGroup).all():
            DBSession.delete(g)
        for layer in DBSession.query(LayerV1).all():
            DBSession.delete(layer)  # pragma: no cover
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 30
0
    def teardown_method(self, _):
        testing.tearDown()

        from c2cgeoportal.models import DBSession, Layer, \
            Theme, LayerGroup, OGCServer, Interface

        for layer in DBSession.query(Layer).all():
            DBSession.delete(layer)
        for g in DBSession.query(LayerGroup).all():
            DBSession.delete(g)
        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        DBSession.query(OGCServer).delete()
        DBSession.query(Interface).filter(Interface.name == "main").delete()

        transaction.commit()
Ejemplo n.º 31
0
    def tearDown(self):  # noqa
        testing.tearDown()

        from c2cgeoportal.models import DBSession, LayerV1, \
            Theme, LayerGroup, Interface

        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        for layergroup in DBSession.query(LayerGroup).all():
            DBSession.delete(layergroup)  # pragma: nocover
        for layer in DBSession.query(LayerV1).all():
            DBSession.delete(layer)  # pragma: nocover
        DBSession.query(Interface).filter(
            Interface.name == 'main'
        ).delete()

        transaction.commit()
Ejemplo n.º 32
0
    def teardown_method(self, _):
        testing.tearDown()

        functionality.FUNCTIONALITIES_TYPES = None

        from c2cgeoportal.models import DBSession, LayerV1, \
            Theme, LayerGroup, Interface, OGCServer

        for t in DBSession.query(Theme).all():
            DBSession.delete(t)
        for g in DBSession.query(LayerGroup).all():
            DBSession.delete(g)
        for layer in DBSession.query(LayerV1).all():
            DBSession.delete(layer)  # pragma: no cover
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
Ejemplo n.º 33
0
    def tearDown(self):
        import transaction
        from c2cgeoportal.models import (DBSession, Role, User, Layer,
                                         TreeItem, RestrictionArea)

        transaction.commit()

        if self.metadata is not None:
            self.metadata.drop_all()

        for i in self.layer_ids:
            treeitem = DBSession.query(TreeItem).get(i)
            DBSession.delete(treeitem)
            layer = DBSession.query(Layer).get(i)
            DBSession.delete(layer)

        DBSession.query(User).filter(User.username == '__test_user').delete()
        r = DBSession.query(Role).filter(Role.name == '__test_role').one()
        r.restrictionareas = []
        DBSession.delete(r)
        DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra').delete()

        transaction.commit()
Ejemplo n.º 34
0
def main():
    parser = ArgumentParser(
        prog=sys.argv[0], add_help=True,
        description="Tool used to migrate your old layers from the old structure to the new one.",
    )

    parser.add_argument(
        "-i", "--app-config",
        default="production.ini",
        dest="app_config",
        help="the application .ini config file (optional, default is 'production.ini')"
    )
    parser.add_argument(
        "-n", "--app-name",
        default="app",
        dest="app_name",
        help="the application name (optional, default is 'app')"
    )
    parser.add_argument(
        "--no-layers",
        dest="layers",
        action="store_false",
        help="do not import the layers"
    )
    parser.add_argument(
        "--no-groups",
        dest="groups",
        action="store_false",
        help="do not import the groups"
    )
    parser.add_argument(
        "--no-themes",
        dest="themes",
        action="store_false",
        help="do not import the themes"
    )
    options = parser.parse_args()

    app_config = options.app_config
    app_name = options.app_name
    if app_name is None and "#" in app_config:
        app_config, app_name = app_config.split("#", 1)
    get_app(app_config, name=app_name)

    # must be done only once we have loaded the project config
    from c2cgeoportal.models import DBSession, \
        OGCServer, Theme, LayerWMS, LayerWMTS, LayerV1, LayerGroup

    session = DBSession()

    if options.layers:
        table_list = [LayerWMTS, LayerWMS, OGCServer]
        for table in table_list:
            print("Emptying table {0!s}.".format(str(table.__table__)))
            # must be done exactly this way othewise the cascade config in the
            # models are not used
            for t in session.query(table).all():
                session.delete(t)

        # list and create all distinct ogc_server
        ogc_server(session)

        print("Converting layerv1.")
        for layer in session.query(LayerV1).all():
            layer_v1tov2(session, layer)

    if options.groups:
        print("Converting layer groups.")
        for group in session.query(LayerGroup).all():
            layergroup_v1tov2(session, group)

    if options.themes:
        print("Converting themes.")
        for theme in session.query(Theme).all():
            theme_v1tov2(session, theme)

    transaction.commit()
Ejemplo n.º 35
0
    def tearDown():  # noqa
        from c2cgeoportal.models import User, Role, LayerV1, RestrictionArea, \
            Functionality, Interface, DBSession, OGCServer

        functionality.FUNCTIONALITIES_TYPES = None

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()
        DBSession.query(User).filter(User.username == "__test_user3").delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra1"
        ).one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra2"
        ).one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra3"
        ).one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == "__test_role1").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role2").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role3").one()
        r.functionalities = []
        DBSession.delete(r)

        DBSession.query(Functionality).filter(Functionality.value == u"1 Wohlen A4 portrait").delete()
        DBSession.query(Functionality).filter(Functionality.value == u"2 Wohlen A3 landscape").delete()
        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "testpoint_unprotected").all():
            DBSession.delete(layer)  # pragma: no cover
        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "testpoint_protected").all():
            DBSession.delete(layer)
        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "testpoint_protected_query_with_collect").all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(
            Interface.name == "main"
        ).delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
        TestPoint.__table__.drop(bind=DBSession.bind, checkfirst=True)
Ejemplo n.º 36
0
    def tearDown(self):
        from c2cgeoportal.models import User, Role, Layer, RestrictionArea, \
                Functionality, DBSession

        DBSession.query(User).filter(User.username == '__test_user1').delete()
        DBSession.query(User).filter(User.username == '__test_user2').delete()
        DBSession.query(User).filter(User.username == '__test_user3').delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra1').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra2').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == '__test_ra3').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == '__test_role1').one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == '__test_role2').one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == '__test_role3').one()
        r.functionalities = []
        DBSession.delete(r)

        for f in DBSession.query(Functionality).filter(
                Functionality.value == u'1 Wohlen A4 portrait').all():
            DBSession.delete(f)
        for f in DBSession.query(Functionality).filter(
                Functionality.value == u'2 Wohlen A3 landscape').all():
            DBSession.delete(f)
        for layer in DBSession.query(Layer).filter(
                Layer.name == 'testpoint_unprotected').all():
            DBSession.delete(layer)  # pragma: nocover
        for layer in DBSession.query(Layer).filter(
                Layer.name == 'testpoint_protected').all():
            DBSession.delete(layer)
        for layer in DBSession.query(Layer).filter(
                Layer.name == 'testpoint_protected_query_with_collect').all():
            DBSession.delete(layer)

        transaction.commit()
        TestPoint.__table__.drop(bind=DBSession.bind, checkfirst=True)
Ejemplo n.º 37
0
    def tearDown(self):  # noqa
        from c2cgeoportal.models import User, Role, LayerV1, RestrictionArea, Interface, DBSession

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()

        ra = DBSession.query(RestrictionArea).filter(RestrictionArea.name == "__test_ra1").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(RestrictionArea.name == "__test_ra2").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == "__test_role1").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role2").one()
        r.functionalities = []
        DBSession.delete(r)

        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "layer_1").all():
            DBSession.delete(layer)  # pragma: no cover
        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "layer_2").all():
            DBSession.delete(layer)
        for layer in DBSession.query(LayerV1).filter(LayerV1.name == "layer_3").all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(Interface.name == "main").delete()

        transaction.commit()
Ejemplo n.º 38
0
    def tearDown(self):
        from c2cgeoportal.models import User, Role, Layer, RestrictionArea, \
                Functionality, DBSession

        DBSession.query(User).filter(User.username == '__test_user1').delete()
        DBSession.query(User).filter(User.username == '__test_user2').delete()
        DBSession.query(User).filter(User.username == '__test_user3').delete()

        ra = DBSession.query(RestrictionArea).filter(
                RestrictionArea.name == '__test_ra1').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
                RestrictionArea.name == '__test_ra2').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
                RestrictionArea.name == '__test_ra3').one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == '__test_role1').one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == '__test_role2').one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == '__test_role3').one()
        r.functionalities = []
        DBSession.delete(r)

        for f in DBSession.query(Functionality).filter(Functionality.value == u'1 Wohlen A4 portrait').all():
            DBSession.delete(f)
        for f in DBSession.query(Functionality).filter(Functionality.value == u'2 Wohlen A3 landscape').all():
            DBSession.delete(f)
        for layer in DBSession.query(Layer).filter(Layer.name == 'testpoint_unprotected').all():
            DBSession.delete(layer)  # pragma: nocover
        for layer in DBSession.query(Layer).filter(Layer.name == 'testpoint_protected').all():
            DBSession.delete(layer)
        for layer in DBSession.query(Layer).filter(Layer.name == 'testpoint_protected_query_with_collect').all():
            DBSession.delete(layer)

        transaction.commit()
        TestPoint.__table__.drop(bind=DBSession.bind, checkfirst=True)
Ejemplo n.º 39
0
def main():
    parser = ArgumentParser(
        prog=sys.argv[0], add_help=True,
        description="Tool used to migrate your old layers from the old structure to the new one.",
    )

    parser.add_argument(
        "-i", "--app-config",
        default="production.ini",
        dest="app_config",
        help="the application .ini config file (optional, default is 'production.ini')"
    )
    parser.add_argument(
        "-n", "--app-name",
        default="app",
        dest="app_name",
        help="the application name (optional, default is 'app')"
    )
    parser.add_argument(
        "--no-layers",
        dest="layers",
        action="store_false",
        help="do not import the layers"
    )
    parser.add_argument(
        "--no-groups",
        dest="groups",
        action="store_false",
        help="do not import the groups"
    )
    parser.add_argument(
        "--no-themes",
        dest="themes",
        action="store_false",
        help="do not import the themes"
    )
    options = parser.parse_args()

    app_config = options.app_config
    app_name = options.app_name
    if app_name is None and "#" in app_config:
        app_config, app_name = app_config.split("#", 1)
    fileConfig(app_config, defaults=os.environ)
    app = get_app(app_config, app_name, options=os.environ)

    # must be done only once we have loaded the project config
    from c2cgeoportal.models import DBSession, \
        OGCServer, Theme, LayerWMS, LayerWMTS, LayerV1, LayerGroup

    session = DBSession()

    if options.layers:
        table_list = [LayerWMTS, LayerWMS, OGCServer]
        for table in table_list:
            print(("Emptying table {0!s}.".format(table.__table__)))
            # must be done exactly this way othewise the cascade config in the
            # models are not used
            for t in session.query(table).all():
                session.delete(t)

        # list and create all distinct ogc_server
        ogc_server(session, app.registry.settings)

        print("Converting layerv1.")
        for layer in session.query(LayerV1).all():
            layer_v1tov2(session, layer)

    if options.groups:
        print("Converting layer groups.")
        for group in session.query(LayerGroup).all():
            layergroup_v1tov2(session, group)

    if options.themes:
        print("Converting themes.")
        for theme in session.query(Theme).all():
            theme_v1tov2(session, theme)

    transaction.commit()
Ejemplo n.º 40
0
    def setup_method(self, _):
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None
        self._tables = []

        functionality.FUNCTIONALITIES_TYPES = None

        from c2cgeoportal.models import DBSession, User, Role, \
            RestrictionArea, TreeItem, Theme, LayerGroup, Interface, LayerWMS

        from sqlalchemy import Column, Table, types
        from sqlalchemy.ext.declarative import declarative_base
        from geoalchemy2 import Geometry

        for o in DBSession.query(RestrictionArea).all():
            DBSession.delete(o)
        for o in DBSession.query(Role).all():
            DBSession.delete(o)
        for o in DBSession.query(User).all():
            DBSession.delete(o)
        for o in DBSession.query(TreeItem).all():
            DBSession.delete(o)
        ogcserver, ogcserver_external = create_default_ogcserver()

        role1 = Role(name="__test_role1")
        role1.id = 999
        user1 = User(username="******", password="******", role=role1)
        user1.email = "*****@*****.**"

        role2 = Role(name="__test_role2", extent=WKTElement(
            "POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))", srid=21781
        ))
        user2 = User(username="******", password="******", role=role2)

        main = Interface(name="main")

        engine = DBSession.c2c_rw_bind
        engine.connect()
        a_geo_table = Table(
            "a_geo_table", declarative_base(bind=engine).metadata,
            Column("id", types.Integer, primary_key=True),
            Column("geom", Geometry("POINT", srid=21781)),
            schema="geodata"
        )

        self._tables = [a_geo_table]
        a_geo_table.drop(checkfirst=True)
        a_geo_table.create()

        private_layer = LayerWMS(name="__test_private_layer", public=False)
        private_layer.layer = "__test_private_layer"
        private_layer.geo_table = "geodata.a_geo_table"
        private_layer.interfaces = [main]
        private_layer.ogc_server = ogcserver

        group = LayerGroup(name="__test_layer_group")
        group.children = [private_layer]

        theme = Theme(name="__test_theme")
        theme.children = [group]
        theme.interfaces = [main]

        DBSession.add(RestrictionArea(
            name="__test_ra1", description="", layers=[private_layer],
            roles=[role1],
        ))
        DBSession.add(RestrictionArea(
            name="__test_ra2", description="", layers=[private_layer],
            roles=[role2], readwrite=True,
        ))

        DBSession.add_all([
            user1, user2, role1, role2, theme, group, private_layer,
        ])

        transaction.commit()
Ejemplo n.º 41
0
    def tearDown(self):  # noqa
        from c2cgeoportal.models import User, Role, LayerV1, RestrictionArea, \
            Interface, DBSession

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra1").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra2").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == "__test_role1").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role2").one()
        r.functionalities = []
        DBSession.delete(r)

        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name == "layer_1").all():
            DBSession.delete(layer)  # pragma: no cover
        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name == "layer_2").all():
            DBSession.delete(layer)
        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name == "layer_3").all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(Interface.name == "main").delete()

        transaction.commit()
Ejemplo n.º 42
0
    def tearDown(self):  # noqa
        from c2cgeoportal.models import User, Role, LayerV1, RestrictionArea, \
            Functionality, Interface, DBSession, OGCServer

        functionality.FUNCTIONALITIES_TYPES = None

        DBSession.query(User).filter(User.username == "__test_user1").delete()
        DBSession.query(User).filter(User.username == "__test_user2").delete()
        DBSession.query(User).filter(User.username == "__test_user3").delete()

        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra1").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra2").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)
        ra = DBSession.query(RestrictionArea).filter(
            RestrictionArea.name == "__test_ra3").one()
        ra.roles = []
        ra.layers = []
        DBSession.delete(ra)

        r = DBSession.query(Role).filter(Role.name == "__test_role1").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role2").one()
        r.functionalities = []
        DBSession.delete(r)
        r = DBSession.query(Role).filter(Role.name == "__test_role3").one()
        r.functionalities = []
        DBSession.delete(r)

        DBSession.query(Functionality).filter(
            Functionality.value == u"1 Wohlen A4 portrait").delete()
        DBSession.query(Functionality).filter(
            Functionality.value == u"2 Wohlen A3 landscape").delete()
        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name == "testpoint_unprotected").all():
            DBSession.delete(layer)  # pragma: no cover
        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name == "testpoint_protected").all():
            DBSession.delete(layer)
        for layer in DBSession.query(LayerV1).filter(
                LayerV1.name ==
                "testpoint_protected_query_with_collect").all():
            DBSession.delete(layer)
        DBSession.query(Interface).filter(Interface.name == "main").delete()
        DBSession.query(OGCServer).delete()

        transaction.commit()
        TestPoint.__table__.drop(bind=DBSession.bind, checkfirst=True)