Example #1
0
 def test_pickle_unpickle(self):
     import pickle
     e = WKBElement(self._bin, srid=self._srid, extended=True)
     pickled = pickle.dumps(e)
     unpickled = pickle.loads(pickled)
     assert unpickled.srid == self._srid
     assert unpickled.extended is True
     assert unpickled.data == bytes_(self._bin)
     assert unpickled.name == 'ST_GeomFromEWKB'
     f = unpickled.ST_Buffer(2)
     eq_sql(f, 'ST_Buffer('
            'ST_GeomFromEWKB(:ST_GeomFromEWKB_1), '
            ':ST_Buffer_1)')
     assert f.compile().params == {
         u'ST_Buffer_1': 2,
         u'ST_GeomFromEWKB_1': bytes_(self._bin),
     }
Example #2
0
 def test_unpack_srid_from_bin(self):
     """
     Unpack SRID from WKB struct (when it is not provided as arg)
     to ensure geometry result processor preserves query SRID.
     """
     e = WKBElement(self._bin, extended=True)
     assert e.srid == self._srid
     assert wkb.loads(bytes_(e.data)).wkt == self._wkt
class TestNotEqualSpatialElement():

    # _bin/_hex computed by following query:
    # SELECT ST_GeomFromEWKT('SRID=3;POINT(1 2)');
    _ewkb = buffer_(b'\x01\x01\x00\x00 \x03\x00\x00\x00\x00\x00\x00'
                    b'\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@')
    _wkb = wkb.loads(bytes_(_ewkb)).wkb
    _hex = str_('010100002003000000000000000000f03f0000000000000040')
    _srid = 3
    _wkt = 'POINT (1 2)'
    _ewkt = 'SRID=3;POINT (1 2)'

    def test_eq(self):
        a = WKBElement(self._ewkb, extended=True)
        b = WKBElement(self._wkb, srid=self._srid)
        c = WKTElement(self._wkt, srid=self._srid)
        d = WKTElement(self._ewkt, extended=True)
        e = WKBElement(self._hex, extended=True)
        assert a == a
        assert b == b
        assert c == c
        assert d == d
        assert e == e
        assert a == e and e == a

    def test_neq_other_types(self):
        a = WKBElement(self._ewkb, extended=True)
        b = WKBElement(self._wkb, srid=self._srid)
        c = WKTElement(self._wkt, srid=self._srid)
        d = WKTElement(self._ewkt, extended=True)
        e = WKBElement(self._hex, extended=True)
        all_elements = [a, b, c, d, None, 1, "test"]
        for i, j in permutations(all_elements, 2):
            assert i != j
        for i in all_elements[1:]:
            assert i != e and e != i
Example #4
0
 def test_unpack_srid_from_bin_forcing_srid(self):
     e = WKBElement(self._bin, srid=9999, extended=True)
     assert e.srid == 9999
     assert wkb.loads(bytes_(e.data)).wkt == self._wkt