예제 #1
0
    def setup_method(self, _):
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None

        from c2cgeoportal_commons.models import DBSession
        from c2cgeoportal_commons.models.main import Interface, LayerWMS, RestrictionArea, Role
        from c2cgeoportal_commons.models.static import User

        setup_db()

        user1 = User(username="******", password="******")
        role1 = Role(name="__test_role1", description="__test_role1")
        user1.roles = [role1]
        user1.email = "Tarenpion"

        user2 = User(username="******", password="******")
        role2 = Role(name="__test_role2", description="__test_role2")
        user2.roles = [role2]
        user2.email = "Tarenpion"

        ogc_server_internal = create_default_ogcserver()

        main = Interface(name="main")

        layer1 = LayerWMS("layer_1", public=False)
        layer1.layer = "layer_1"
        layer1.ogc_server = ogc_server_internal
        layer1.interfaces = [main]

        layer2 = LayerWMS("layer_2", public=False)
        layer2.layer = "layer_2"
        layer2.ogc_server = ogc_server_internal
        layer2.interfaces = [main]

        layer3 = LayerWMS("layer_3", public=False)
        layer3.layer = "layer_3"
        layer3.ogc_server = ogc_server_internal
        layer3.interfaces = [main]

        area = "POLYGON((-100 30, -100 50, 100 50, 100 30, -100 30))"
        area = WKTElement(area, srid=21781)
        restricted_area1 = RestrictionArea("__test_ra1",
                                           "", [layer1, layer2], [role1],
                                           area,
                                           readwrite=True)

        area = "POLYGON((-100 0, -100 20, 100 20, 100 0, -100 0))"
        area = WKTElement(area, srid=21781)
        restricted_area2 = RestrictionArea("__test_ra2", "",
                                           [layer1, layer2, layer3], [role2],
                                           area)

        DBSession.add_all(
            [user1, user2, role1, role2, restricted_area1, restricted_area2])

        transaction.commit()
예제 #2
0
def insert_users_test_data(dbsession):
    from c2cgeoportal_commons.models.static import User
    from c2cgeoportal_commons.models.main import Role
    user = User("babar")
    user.roles = [Role(name='Role1'), Role(name='Role2')]
    t = dbsession.begin_nested()
    dbsession.add(user)
    dbsession.flush()
    yield
    t.rollback()
        def setter(request):
            del request  # Unused

            class User:
                pass

            class Role:
                pass

            user = User()
            user.username = "******"
            role = Role()
            role.name = "__bar"
            user.settings_role = role
            user.roles = [role]
            return user
예제 #4
0
    def test_add(self, dbsession):
        from c2cgeoportal_commons.models.main import Role
        from c2cgeoportal_commons.models.static import User, user_role

        user = User(username="******")
        user.roles = [Role(name="Role3")]
        dbsession.begin_nested()
        dbsession.add(user)
        dbsession.commit()
        assert dbsession.query(User).count() == 2, "added a user"
        dbsession.expire(user)
        assert user.username == "momo", "added user is momo"
        assert 1 == len(user.roles)
        assert user.roles[0].name == "Role3"
        assert 1 == dbsession.query(user_role).filter(
            user_role.c.user_id == user.id).count()