Exemplo n.º 1
0
    def testObjectIdentifiers(self):
        self.datasource = PostGIS('all', **self.params)
        self.server = Server({'all': self.datasource})

        for fil, stmt in self.filters.iteritems():
            filterEncoding = filter.FilterEncoding(fil)
            filterEncoding.parse()
            self.assertEqual(stmt, filterEncoding.render(self.datasource))
Exemplo n.º 2
0
 def testBBOX(self):
     filters = {
         "<Filter>" + "<BBOX>" + "<ValueReference>way</ValueReference>" + "<gml:Envelope xmlns:gml=\"http://www.opengis.net/gml\" srsName=\"asdf:EPSG:4326\">" + "<gml:lowerCorner>5.95459 45.75986</gml:lowerCorner>" + "<gml:upperCorner>10.52490 47.83528</gml:upperCorner>" + "</gml:Envelope>" + "</BBOX>" + "</Filter>":
         "NOT ST_Disjoint(way, ST_MakeEnvelope(5.95459,45.75986,10.52490,47.83528, 4326))"
     }
     for fil, stmt in filters.iteritems():
         filterEncoding = fe.FilterEncoding(fil)
         filterEncoding.parse()
         self.assertEqual(stmt, filterEncoding.render(self.datasource))
    def testOrOperator(self):
        filters = {
            "<Filter>" + "<And>" + "<Or>" + "<PropertyIsEqualTo>" + "<ValueReference>FIELD1</ValueReference>" + "<Literal>10</Literal>" + "</PropertyIsEqualTo>" + "<PropertyIsEqualTo>" + "<ValueReference>FIELD1</ValueReference>" + "<Literal>20</Literal>" + "</PropertyIsEqualTo>" + "</Or>" + "<PropertyIsEqualTo>" + "<ValueReference>STATUS</ValueReference>" + "<Literal>VALID</Literal>" + "</PropertyIsEqualTo>" + "</And>" + "</Filter>":
            "((FIELD1 = '10' OR FIELD1 = '20') AND STATUS = 'VALID')"
        }

        for fil, stmt in filters.iteritems():
            filterEncoding = fe.FilterEncoding(fil)
            filterEncoding.parse()
            self.assertEqual(stmt, filterEncoding.render(self.datasource))
    def testAndOperator(self):
        filters = {
            "<Filter>" + "<And>" + "<PropertyIsEqualTo>" + "<ValueReference>highway</ValueReference>" + "<Literal>bus_stop</Literal>" + "</PropertyIsEqualTo>" + "<PropertyIsEqualTo>" + "<ValueReference>operator</ValueReference>" + "<Literal>VBZ</Literal>" + "</PropertyIsEqualTo>" + "</And>" + "</Filter>":
            "(highway = 'bus_stop' AND operator = 'VBZ')"
        }

        for fil, stmt in filters.iteritems():
            filterEncoding = fe.FilterEncoding(fil)
            filterEncoding.parse()
            self.assertEqual(stmt, filterEncoding.render(self.datasource))
Exemplo n.º 5
0
    def testEquals(self):
        filters = {
            "<Filter>" + "<Equals>" + "<ValueReference>way</ValueReference>" + "<Literal>" + "<gml:Point srsName=\"EPSG:4326\">" + "<gml:coordinates>5.9656087,46.144381600000003</gml:coordinates>" + "</gml:Point>" + "</Literal>" + "</Equals>" + "</Filter>":
            "ST_Equals(way, ST_GeomFromGML('<gml:Point xmlns:gml=\"http://www.opengis.net/gml\" xmlns:regexp=\"http://exslt.org/regular-expressions\" srsName=\"EPSG:4326\"><gml:coordinates>5.9656087,46.144381600000003</gml:coordinates></gml:Point>'))"
        }

        for fil, stmt in filters.iteritems():
            filterEncoding = fe.FilterEncoding(fil)
            filterEncoding.parse()
            self.assertEqual(stmt, filterEncoding.render(self.datasource))