72 lines
1.8 KiB
Python
72 lines
1.8 KiB
Python
#!/usr/bin/env python
|
|
|
|
import os
|
|
from nose.tools import *
|
|
from utilities import execution_path
|
|
from utilities import Todo
|
|
|
|
import mapnik
|
|
|
|
def setup():
|
|
# All of the paths used are relative, if we run the tests
|
|
# from another directory we need to chdir()
|
|
os.chdir(execution_path('.'))
|
|
|
|
def test_introspect_symbolizers():
|
|
# create a symbolizer
|
|
p = mapnik.PointSymbolizer(mapnik.PathExpression("../data/images/dummy.png"))
|
|
p.allow_overlap = True
|
|
p.opacity = 0.5
|
|
|
|
eq_(p.allow_overlap, True)
|
|
eq_(p.opacity, 0.5)
|
|
eq_(p.filename,'../data/images/dummy.png')
|
|
|
|
# make sure the defaults
|
|
# are what we think they are
|
|
eq_(p.allow_overlap, True)
|
|
eq_(p.opacity,0.5)
|
|
eq_(p.filename,'../data/images/dummy.png')
|
|
|
|
# contruct objects to hold it
|
|
r = mapnik.Rule()
|
|
r.symbols.append(p)
|
|
s = mapnik.Style()
|
|
s.rules.append(r)
|
|
m = mapnik.Map(0,0)
|
|
m.append_style('s',s)
|
|
|
|
# try to figure out what is
|
|
# in the map and make sure
|
|
# style is there and the same
|
|
|
|
s2 = m.find_style('s')
|
|
rules = s2.rules
|
|
eq_(len(rules),1)
|
|
r2 = rules[0]
|
|
syms = r2.symbols
|
|
eq_(len(syms),1)
|
|
|
|
## TODO here, we can do...
|
|
sym = syms[0]
|
|
# this is hackish at best
|
|
p2 = sym.symbol()
|
|
assert isinstance(p2,mapnik.PointSymbolizer)
|
|
|
|
eq_(p2.allow_overlap, True)
|
|
eq_(p2.opacity, 0.5)
|
|
eq_(p2.filename,'../data/images/dummy.png')
|
|
|
|
## but we need to be able to do:
|
|
p2 = syms[0] # get the actual symbolizer, not the variant object
|
|
# this will throw for now...
|
|
assert isinstance(p2,mapnik.PointSymbolizer)
|
|
|
|
eq_(p2.allow_overlap, True)
|
|
eq_(p2.opacity, 0.5)
|
|
eq_(p2.filename,'../data/images/dummy.png')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
setup()
|
|
[eval(run)() for run in dir() if 'test_' in run]
|