2009-10-20 01:46:38 +02:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
from nose.tools import *
|
|
|
|
from utilities import Todo
|
|
|
|
|
|
|
|
import mapnik
|
|
|
|
|
|
|
|
def test_introspect_symbolizers():
|
|
|
|
# create a symbolizer
|
|
|
|
p = mapnik.PointSymbolizer("../data/images/dummy.png", "png", 16, 16)
|
|
|
|
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
|
2010-01-11 02:47:38 +01:00
|
|
|
# this will throw ...
|
|
|
|
raise Todo('need to expose symbolizer instances')
|
2009-10-20 01:46:38 +02:00
|
|
|
assert isinstance(p2,mapnik.PointSymbolizer)
|
|
|
|
|
|
|
|
eq_(p2.allow_overlap, True)
|
|
|
|
eq_(p2.opacity, 0.5)
|
|
|
|
eq_(p2.filename,'../data/images/dummy.png')
|