コード例 #1
0
ファイル: test_protocol.py プロジェクト: webrian/papyrus
 def test_within_filter_with_epsg(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(params={
         "lon": "40",
         "lat": "5",
         "tolerance": "1",
         "epsg": "900913"
     })
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(
         filter_str,
         '(ST_Expand(GeomFromWKB(%(GeomFromWKB_1)s, %(GeomFromWKB_2)s), %(ST_Expand_1)s) && ST_Transform("table".geom, %(param_1)s)) AND (ST_Expand(ST_Transform("table".geom, %(param_2)s), %(ST_Expand_2)s) && GeomFromWKB(%(GeomFromWKB_3)s, %(GeomFromWKB_4)s)) AND ST_Distance(ST_Transform("table".geom, %(param_3)s), GeomFromWKB(%(GeomFromWKB_5)s, %(GeomFromWKB_6)s)) <= %(ST_Distance_1)s'
     )
     self.assertTrue(
         wkb.loads(str(params["GeomFromWKB_1"])).equals(
             wkt.loads('POINT (40 5)')))
     self.assertEqual(params["GeomFromWKB_2"], 900913)
     self.assertEqual(params["ST_Expand_1"], 1)
     self.assertEqual(params["param_1"], 900913)
     self.assertEqual(params["ST_Distance_1"], 1)
コード例 #2
0
 def test_box_filter_with_epsg(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(params={
         "bbox": "-180,-90,180,90",
         "tolerance": "1",
         "epsg": "900913"
     })
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(
         filter_str,
         b'ST_DWITHIN(ST_Transform("table".geom, %(param_1)s), ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)'
     )
     self.assertTrue(
         wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(
             wkt.loads(
                 'POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))')
         ))
     self.assertEqual(params["ST_GeomFromWKB_2"], 900913)
     self.assertEqual(params["param_1"], 900913)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #3
0
 def test_polygon_filter_with_epsg(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb
     from shapely.geometry.polygon import Polygon
     from geojson import dumps
     poly = Polygon(((1, 2), (1, 3), (2, 3), (2, 2), (1, 2)))
     MappedClass = self._get_mapped_class()
     request = testing.DummyRequest({
         "geometry": dumps(poly),
         "tolerance": "1",
         "epsg": "900913"
     })
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(
         filter_str,
         b'ST_DWITHIN(ST_Transform("table".geom, %(param_1)s), ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)'
     )
     self.assertTrue(
         wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(poly))
     self.assertEqual(params["ST_GeomFromWKB_2"], 900913)
     self.assertEqual(params["param_1"], 900913)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #4
0
ファイル: test_protocol.py プロジェクト: gberaudo/papyrus
 def test_box_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(
         params={"bbox": "-180,-90,180,90", "tolerance": "1"}
         )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, b'ST_DWITHIN("table".geom, ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)')  # NOQA
     self.assertTrue(wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(wkt.loads('POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))')))  # NOQA
     self.assertEqual(params["ST_GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #5
0
 def test_within_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(
         params={"lon": "40", "lat": "5", "tolerance": "1"}
         )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, b'ST_DWITHIN("table".geom, ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)')  # NOQA
     self.assertTrue(wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(wkt.loads('POINT (40 5)')))  # NOQA
     self.assertEqual(params["ST_GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #6
0
ファイル: test_protocol.py プロジェクト: sbrunner/papyrus
 def test_box_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(
         params={"bbox": "-180,-90,180,90", "tolerance": "1"}
         )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, '(ST_Expand(GeomFromWKB(%(GeomFromWKB_1)s, %(GeomFromWKB_2)s), %(ST_Expand_1)s) && "table".geom) AND (ST_Expand("table".geom, %(ST_Expand_2)s) && GeomFromWKB(%(GeomFromWKB_3)s, %(GeomFromWKB_4)s)) AND ST_Distance("table".geom, GeomFromWKB(%(GeomFromWKB_5)s, %(GeomFromWKB_6)s)) <= %(ST_Distance_1)s')
     self.assertTrue(wkb.loads(str(params["GeomFromWKB_1"])).equals(wkt.loads('POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))')))
     self.assertEqual(params["GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_Expand_1"], 1)
     self.assertEqual(params["ST_Distance_1"], 1)
コード例 #7
0
ファイル: test_protocol.py プロジェクト: almet/papyrus
 def test_within_filter_with_epsg(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(
         params={"lon": "40", "lat": "5", "tolerance": "1", "epsg": "900913"}
         )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, b'ST_DWITHIN(ST_Transform("table".geom, %(param_1)s), ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)')
     self.assertTrue(wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(wkt.loads('POINT (40 5)')))
     self.assertEqual(params["ST_GeomFromWKB_2"], 900913)
     self.assertEqual(params["param_1"], 900913)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #8
0
ファイル: test_protocol.py プロジェクト: gberaudo/papyrus
 def test_polygon_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb
     from shapely.geometry.polygon import Polygon
     from geojson import dumps
     poly = Polygon(((1, 2), (1, 3), (2, 3), (2, 2), (1, 2)))
     request = testing.DummyRequest(
         {"geometry": dumps(poly), "tolerance": "1"}
     )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, b'ST_DWITHIN("table".geom, ST_GeomFromWKB(%(ST_GeomFromWKB_1)s, %(ST_GeomFromWKB_2)s), %(ST_DWITHIN_1)s)')  # NOQA
     self.assertTrue(wkb.loads(bytes(params["ST_GeomFromWKB_1"])).equals(poly))  # NOQA
     self.assertEqual(params["ST_GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_DWITHIN_1"], 1)
コード例 #9
0
ファイル: test_protocol.py プロジェクト: sbrunner/papyrus
 def test_polygon_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb
     from shapely.geometry.polygon import Polygon
     from geojson import dumps
     poly = Polygon(((1, 2), (1, 3), (2, 3), (2, 2), (1, 2)))
     request = testing.DummyRequest(
         {"geometry": dumps(poly), "tolerance": "1"}
     )
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(filter_str, '(ST_Expand(GeomFromWKB(%(GeomFromWKB_1)s, %(GeomFromWKB_2)s), %(ST_Expand_1)s) && "table".geom) AND (ST_Expand("table".geom, %(ST_Expand_2)s) && GeomFromWKB(%(GeomFromWKB_3)s, %(GeomFromWKB_4)s)) AND ST_Distance("table".geom, GeomFromWKB(%(GeomFromWKB_5)s, %(GeomFromWKB_6)s)) <= %(ST_Distance_1)s')
     self.assertTrue(wkb.loads(str(params["GeomFromWKB_1"])).equals(poly))
     self.assertEqual(params["GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_Expand_1"], 1)
     self.assertEqual(params["ST_Distance_1"], 1)
コード例 #10
0
ファイル: test_protocol.py プロジェクト: webrian/papyrus
 def test_polygon_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb
     from shapely.geometry.polygon import Polygon
     from geojson import dumps
     poly = Polygon(((1, 2), (1, 3), (2, 3), (2, 2), (1, 2)))
     request = testing.DummyRequest({
         "geometry": dumps(poly),
         "tolerance": "1"
     })
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(
         filter_str,
         '(ST_Expand(GeomFromWKB(%(GeomFromWKB_1)s, %(GeomFromWKB_2)s), %(ST_Expand_1)s) && "table".geom) AND (ST_Expand("table".geom, %(ST_Expand_2)s) && GeomFromWKB(%(GeomFromWKB_3)s, %(GeomFromWKB_4)s)) AND ST_Distance("table".geom, GeomFromWKB(%(GeomFromWKB_5)s, %(GeomFromWKB_6)s)) <= %(ST_Distance_1)s'
     )
     self.assertTrue(wkb.loads(str(params["GeomFromWKB_1"])).equals(poly))
     self.assertEqual(params["GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_Expand_1"], 1)
     self.assertEqual(params["ST_Distance_1"], 1)
コード例 #11
0
ファイル: test_protocol.py プロジェクト: webrian/papyrus
 def test_box_filter(self):
     from papyrus.protocol import create_geom_filter
     from shapely import wkb, wkt
     request = testing.DummyRequest(params={
         "bbox": "-180,-90,180,90",
         "tolerance": "1"
     })
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     compiled_filter = filter.compile(self._get_engine())
     params = compiled_filter.params
     filter_str = _compiled_to_string(compiled_filter)
     self.assertEqual(
         filter_str,
         '(ST_Expand(GeomFromWKB(%(GeomFromWKB_1)s, %(GeomFromWKB_2)s), %(ST_Expand_1)s) && "table".geom) AND (ST_Expand("table".geom, %(ST_Expand_2)s) && GeomFromWKB(%(GeomFromWKB_3)s, %(GeomFromWKB_4)s)) AND ST_Distance("table".geom, GeomFromWKB(%(GeomFromWKB_5)s, %(GeomFromWKB_6)s)) <= %(ST_Distance_1)s'
     )
     self.assertTrue(
         wkb.loads(str(params["GeomFromWKB_1"])).equals(
             wkt.loads(
                 'POLYGON ((-180 -90, -180 90, 180 90, 180 -90, -180 -90))')
         ))
     self.assertEqual(params["GeomFromWKB_2"], 4326)
     self.assertEqual(params["ST_Expand_1"], 1)
     self.assertEqual(params["ST_Distance_1"], 1)
コード例 #12
0
 def test_geom_filter_no_params(self):
     from papyrus.protocol import create_geom_filter
     request = testing.DummyRequest()
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     self.assertEqual(filter, None)
コード例 #13
0
ファイル: test_protocol.py プロジェクト: gberaudo/papyrus
 def test_geom_filter_no_params(self):
     from papyrus.protocol import create_geom_filter
     request = testing.DummyRequest()
     MappedClass = self._get_mapped_class()
     filter = create_geom_filter(request, MappedClass, "geom")
     self.assertEqual(filter, None)