Ejemplo n.º 1
0
    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        self.le = LayEd(cfg)
        self.config = cfg

        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))
Ejemplo n.º 2
0
 def setUp(self):
     cfg = ConfigParser.SafeConfigParser()
     cfg.read((os.path.join(TEST_DIR, "tests.cfg")))
     cfg.set("FileMan", "testdir", TEST_DIR)
     self.le = LayEd(cfg)
     self.dbm = DbMan(cfg)
     self.config = cfg
Ejemplo n.º 3
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None # LayEd
    dbm = None # DbMan
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        cfg.set("FileMan","testdir",TEST_DIR)
        self.le = LayEd(cfg)
        self.dbm = DbMan(cfg)
        self.config = cfg

    def test_getData(self):
        
        roles = [ 
                    { 
                      "roleName": "hasici",
                      "roleTitle": "FireMen"
                    },
                    {
                     "roleName": "aagroup",
                     "roleTitle": "AA Group"
                    }
                ]  

        print "*** roles ***"
        print roles

        print "***  getData() ... ***"
        head, cont = self.le.getData(roles, userName='******')
        print "headers"
        print head
        print "response"
        print cont

        #head, cont = self.le.getDataDirect(roles)
        #print "***  getDataDirect() ***"
        #print "headers"
        #print head
        #print "response"
        #print cont

        print "*** syncing ... ***"
        head, cont = self.le.syncDataPad(roles)
        print "headers"
        print head
        print "response"
        print cont

        print "***  getData() ... ***"
        head, cont = self.le.getData(roles, userName='******')
        print "headers"
        print head
        print "response"
        print cont
Ejemplo n.º 4
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None  # LayEd
    dbm = None  # DbMan
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR, "tests.cfg")))
        cfg.set("FileMan", "testdir", TEST_DIR)
        self.le = LayEd(cfg)
        self.dbm = DbMan(cfg)
        self.config = cfg

    def test_getData(self):

        roles = [{
            "roleName": "hasici",
            "roleTitle": "FireMen"
        }, {
            "roleName": "aagroup",
            "roleTitle": "AA Group"
        }]

        print "*** roles ***"
        print roles

        print "***  getData() ... ***"
        head, cont = self.le.getData(roles, userName='******')
        print "headers"
        print head
        print "response"
        print cont

        #head, cont = self.le.getDataDirect(roles)
        #print "***  getDataDirect() ***"
        #print "headers"
        #print head
        #print "response"
        #print cont

        print "*** syncing ... ***"
        head, cont = self.le.syncDataPad(roles)
        print "headers"
        print head
        print "response"
        print cont

        print "***  getData() ... ***"
        head, cont = self.le.getData(roles, userName='******')
        print "headers"
        print head
        print "response"
        print cont
Ejemplo n.º 5
0
class LayEdTestCase(unittest.TestCase):
    """Test of the Layer Editor"""

    le = None  # LayEd
    workdir = None
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR, "tests.cfg")))
        self.le = LayEd(cfg)
        self.config = cfg

        self.workdir = os.path.abspath(
            os.path.join(TEST_DIR, "workdir", "data"))

    # TODO: add tests for POST /layed?myLayer

    def test_wsDsCreate(self):
        self.le.createWorkspaceIfNotExists("DeltaDunaje")
        self.le.createWorkspaceIfNotExists("DeltaDunaje")

        self.le.createDataStoreIfNotExists("hasici", "DeltaDunaje")

    def test_getLayers(self):
        r1 = {}
        r1["roleName"] = "hasici"
        r1["roleTitle"] = "Hasici Markvarec"
        r2 = {}
        r2["roleName"] = "policajti"
        r2["roleTitle"] = "Svestky"
        roles = [r1, r2]

        headers, response = self.le.getLayers(roles)
        #print "*** TEST *** getLayers() ***"
        #print headers
        #print response

        responseJson = json.loads(response)

        self.assertEquals(True, responseJson[0]["featureType"]["enabled"],
                          "FeatureType check failed")
        self.assertEquals("VECTOR", responseJson[0]["layer"]["type"],
                          "Layer check failed")
        self.assertEquals(True, responseJson[0]["ws"] in ["hasici", "pprd"],
                          "Workspace check failed")
        self.assertEquals(
            True, responseJson[0]["roleTitle"]
            in ["Hasici Markvarec", "Svestky"], "roleTitle check failed")
Ejemplo n.º 6
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None # LayEd
    gsr = None # GsRest
    workdir = None
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        cfg.set("FileMan","testdir",TEST_DIR)
        self.le = LayEd(cfg)
        self.gsr = GsRest(cfg)
        self.config = cfg
        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))

    def test_01_publish(self):
        
        ws = "mis"
        ds = "erraPublic"
        ll = "line_crs"
        head, cont = self.le.createFtFromDb(ws, ds, ll)
        print "*** test publish ***"
        print "headers"
        print head
        print "response"
        print cont
Ejemplo n.º 7
0
 def setUp(self):
     cfg = ConfigParser.SafeConfigParser()
     cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
     cfg.set("FileMan","testdir",TEST_DIR)
     self.le = LayEd(cfg)
     self.dbm = DbMan(cfg)
     self.config = cfg
Ejemplo n.º 8
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None  # LayEd
    gsr = None  # GsRest
    workdir = None
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR, "tests.cfg")))
        cfg.set("FileMan", "testdir", TEST_DIR)
        self.le = LayEd(cfg)
        self.gsr = GsRest(cfg)
        self.config = cfg
        self.workdir = os.path.abspath(
            os.path.join(TEST_DIR, "workdir", "data"))

    def test_01_publish(self):

        ws = "mis"
        ds = "erraPublic"
        ll = "line_crs"
        head, cont = self.le.createFtFromDb(ws, ds, ll)
        print "*** test publish ***"
        print "headers"
        print head
        print "response"
        print cont
Ejemplo n.º 9
0
class LayEdTestCase(unittest.TestCase):
    """Test of the Layer Editor"""

    le = None # LayEd
    workdir = None
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        self.le = LayEd(cfg)
        self.config = cfg

        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))

    # TODO: add tests for POST /layed?myLayer

    def test_wsDsCreate(self):
        self.le.createWorkspaceIfNotExists("DeltaDunaje")
        self.le.createWorkspaceIfNotExists("DeltaDunaje")

        self.le.createDataStoreIfNotExists("hasici", "DeltaDunaje")

    def test_getLayers(self):
        r1 = {}
        r1["roleName"] = "hasici"
        r1["roleTitle"] = "Hasici Markvarec"
        r2 = {}
        r2["roleName"] = "policajti"
        r2["roleTitle"] = "Svestky"
        roles = [r1,r2]

        headers, response = self.le.getLayers(roles)
        #print "*** TEST *** getLayers() ***"
        #print headers
        #print response

        responseJson = json.loads(response)

        self.assertEquals(True, responseJson[0]["featureType"]["enabled"], "FeatureType check failed")
        self.assertEquals("VECTOR", responseJson[0]["layer"]["type"], "Layer check failed")
        self.assertEquals(True, responseJson[0]["ws"] in ["hasici","pprd"], "Workspace check failed")
        self.assertEquals(True, responseJson[0]["roleTitle"] in ["Hasici Markvarec","Svestky"], "roleTitle check failed")
Ejemplo n.º 10
0
    def test_AccessControl(self):
       
        # Test SECURE LAYER from LayEd

        le = LayEd(self.config)
        le = LayEd(self.config)
 
        #roleFer = le.secureLayer("hasici", "Ferrovie")
        roleFer = "READ_hasici_Ferrovie"

        # TODO add tests

        # Make sure that:
        #   - Role READ_HASICI_FERROVIE exists // roles
        #   - and is assigned to "hasici" group // roles
        #   - hasici.Ferrovie.r = READ_HASICI_FERROVIE // layer.properties - require the role to read the layer

        # etc for other layers.

        # Test ACCESS GRANTING from LayEd

        
        le.grantAccess(roleFer, ["premek"], ["hasici"])

        # TODO add tests

        # Make sure that:
        #   - the corresponding roles are assigned to the appropriate users and groups

        #rolePest = le.secureLayer("hasici", "Pest")
        rolePest = "READ_hasici_Pest"
        le.grantAccess(rolePest, [], ["hasici"])

        #roleAzov = le.secureLayer("policajti", "Azov")
        roleAzov = "READ_policajti_Azov"
        le.grantAccess(roleAzov, ["hubert","honza"], ["policajti"])
Ejemplo n.º 11
0
class LayEdCkanTestCase(unittest.TestCase):

    le = None # LayEd
    workdir = None
    cfg = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        cfg.set("FileMan","testdir",TEST_DIR)
        self.le = LayEd(cfg)
        self.ckan = CkanApi(cfg)
        self.config = cfg
        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))


    def test_01_ckan(self):

        # Get CKAN packages (==datasets)
        strCkanPackages = self.le.getCkanPackages(roles=[], userName="", limit="10", offset="0")
        print strCkanPackages
Ejemplo n.º 12
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None # LayEd
    workdir = None
    cfg = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        cfg.set("FileMan","testdir",TEST_DIR)
        self.le = LayEd(cfg)
        self.gsr = GsRest(cfg)
        self.config = cfg
        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))

    # TODO: add tests for POST /layed?myLayer

    def test_01_publish(self):

#        ff = "world_cities_point.shp" # file
#        ll = "world_cities_point" # layer
#        st = "world_cities_point" # style
#        ff = "pest.shp" # file
#        ll = "pest" # layer
#        st = "pest" # style
        ff = "line_crs.shp" # file
        ll = "line_crs" # layer
        st = "line_crs" # style
        ws = "mis" # workspace
        ds = "testschema" # datastore
        sch = "testschema" # schema        

        # Check #

        # Check if the layer is not already there
        (head, cont) = self.gsr.getLayer(ws, ll)
        self.assertNotEquals("200", head["status"], "The layer already exists. Please, remove it manually." )

        # Check if the style is not already there
        (head, cont) = self.gsr.getStyle(ws, st)
        self.assertNotEquals("200", head["status"], "The style already exists. Please, remove it manually." )

        # Publish #

        self.le.publish(fsUserDir=self.workdir, fsGroupDir="", dbSchema=ds, gsWorkspace=ws, fileName=ff)

        # Test #

        # Check if the layer is there
        (head, cont) = self.gsr.getLayer(ws, ll)
        self.assertEquals("200", head["status"], "The layer is not there. Was it created under another name?")

        # Check the style of the layer
        layerJson = json.loads(cont)
        styleName = layerJson["layer"]["defaultStyle"]["name"]
        self.assertEquals(st, styleName, "The layer is there, but it has wrong style assinged.")

        # Check if the style is there
        (head, cont) = self.gsr.getStyle(ws, st)
        self.assertEquals("200", head["status"], "The style is not there." )
Ejemplo n.º 13
0
class LayEdTestCase(unittest.TestCase):
    """Test of the Layer Editor"""

    le = None # LayEd
    workdir = None
    config = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR,"tests.cfg")))
        self.le = LayEd(cfg)
        self.config = cfg

        self.workdir = os.path.abspath(os.path.join(TEST_DIR,"workdir","data"))

    # TODO: add tests for POST /layed?myLayer

    def test_getLayers(self):
        r1 = {}
        r1["roleName"] = "hasici"
        r1["roleTitle"] = "Hasici Markvarec"
        r2 = {}
        r2["roleName"] = "pprd"
        r2["roleTitle"] = "PRD"
        roles = [r1,r2]

        headers, response = self.le.getLayers(roles)
        #print "*** TEST *** getLayers() ***"
        #print headers
        #print response

        responseJson = json.loads(response)

        self.assertEquals(True, responseJson[0]["featureType"]["enabled"], "FeatureType check failed")
        self.assertEquals("VECTOR", responseJson[0]["layer"]["type"], "Layer check failed")
        self.assertEquals(True, responseJson[0]["ws"] in ["hasici","pprd"], "Workspace check failed")
        self.assertEquals(True, responseJson[0]["roleTitle"] in ["Hasici Markvarec","PRD"], "roleTitle check failed")

    def test_cloneStyle(self):
        
        self.le.cloneStyle(fromStyleUrl="http://erra.ccss.cz/geoserver/rest/styles/polygon.json", toWorkspace="pprd", toStyle="MyNewPoly")

        gsr = GsRest(self.config)
        (head, cont) = gsr.getStyleSld(workspace="pprd", styleName="MyNewPoly")
        print " *** TEST *** clone style 1 ***"
        print head
        print cont

        self.le.cloneStyle(fromWorkspace="pprd", fromStyle="MyNewPoly", toWorkspace=None, toStyle="YourNewPoly")

        (head, cont) = gsr.getStyleSld(workspace=None, styleName="YourNewPoly")
        print " *** TEST *** clone style 2 ***"
        print head
        print cont

    def test_getLayerConfig(self):

        retval = self.le.getLayerConfig("TestWS","line_crs")
        retval = json.loads(retval)
        self.assertEquals( "VECTOR", retval["layer"]["type"], "Layer is wrong" )
        self.assertEquals( "TestWS", retval["featureType"]["namespace"]["name"], "Feature Type is wrong" )

    def test_putLayerConfig(self):
        ''' Get Layer and Feature Type
        Layer -> Change 'Enabled' to 'False' 
        Feature Type -> Change 'Abstract'
        Test and change it back.
        '''
        # Prepare
        layer = self.le.getLayerConfig("TestWS","line_crs") # GET Layer & Feature Type
        #print "*** TEST *** received: ***"
        #print layer
        layer = json.loads(layer)                           # string -> json
        self.assertNotEquals( False, layer["layer"]["enabled"], "Please enable the layer" ) # layer: enabled
        self.assertNotEquals( "Abstract has changed", layer["featureType"]["abstract"], "Please change the abstract" ) # feature type: abstract

        # Change
        layer["layer"]["enabled"] = False               # layer: enabled
        layer["featureType"]["abstract"] = "Abstract has changed" # feature type: abstract
        layer = json.dumps(layer)                         # json -> string 
        #print "*** TEST *** sending: ***"
        #print layer
        self.le.putLayerConfig("TestWS","line_crs",layer) # PUT Layer & Feature Type

        # Test
        layer = self.le.getLayerConfig("TestWS","line_crs") # GET Layer & Feature Type
        layer = json.loads(layer)                           # string -> json
        #print 'layer["layer"]["enabled"]'
        #print layer["layer"]["enabled"]
        self.assertEquals( False, layer["layer"]["enabled"], "Layer change failed" ) # layer: enabled
        self.assertEquals( "Abstract has changed", layer["featureType"]["abstract"], "Feature Type change failed" ) # feature type: abstract

        # Change it back
        layer["layer"]["enabled"] = True
        layer["featureType"]["abstract"] = "Hello Dolly!"
        layer = json.dumps(layer)
        self.le.putLayerConfig("TestWS","line_crs",layer)
Ejemplo n.º 14
0
class LayEdTestCase(unittest.TestCase):
    """Test of the auth module"""

    le = None  # LayEd
    workdir = None
    cfg = None

    def setUp(self):
        cfg = ConfigParser.SafeConfigParser()
        cfg.read((os.path.join(TEST_DIR, "tests.cfg")))
        cfg.set("FileMan", "testdir", TEST_DIR)
        self.le = LayEd(cfg)
        self.gsr = GsRest(cfg)
        self.config = cfg
        self.workdir = os.path.abspath(
            os.path.join(TEST_DIR, "workdir", "data"))

    # TODO: add tests for POST /layed?myLayer

    def test_01_publish(self):

        #        ff = "world_cities_point.shp" # file
        #        ll = "world_cities_point" # layer
        #        st = "world_cities_point" # style
        #        ff = "pest.shp" # file
        #        ll = "pest" # layer
        #        st = "pest" # style
        ff = "line_crs.shp"  # file
        ll = "line_crs"  # layer
        st = "line_crs"  # style
        ws = "mis"  # workspace
        ds = "testschema"  # datastore
        sch = "testschema"  # schema

        # Check #

        # Check if the layer is not already there
        (head, cont) = self.gsr.getLayer(ws, ll)
        self.assertNotEquals(
            "200", head["status"],
            "The layer already exists. Please, remove it manually.")

        # Check if the style is not already there
        (head, cont) = self.gsr.getStyle(ws, st)
        self.assertNotEquals(
            "200", head["status"],
            "The style already exists. Please, remove it manually.")

        # Publish #

        self.le.publish(fsUserDir=self.workdir,
                        fsGroupDir="",
                        dbSchema=ds,
                        gsWorkspace=ws,
                        fileName=ff)

        # Test #

        # Check if the layer is there
        (head, cont) = self.gsr.getLayer(ws, ll)
        self.assertEquals(
            "200", head["status"],
            "The layer is not there. Was it created under another name?")

        # Check the style of the layer
        layerJson = json.loads(cont)
        styleName = layerJson["layer"]["defaultStyle"]["name"]
        self.assertEquals(
            st, styleName,
            "The layer is there, but it has wrong style assinged.")

        # Check if the style is there
        (head, cont) = self.gsr.getStyle(ws, st)
        self.assertEquals("200", head["status"], "The style is not there.")