File: extra_map_props_test.py

package info (click to toggle)
python-mapnik 1%3A0.0~20240222-5ab32f020-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,364 kB
  • sloc: python: 11,685; cpp: 5,776; sh: 242; makefile: 10
file content (54 lines) | stat: -rw-r--r-- 1,966 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import os
import mapnik
import pytest
from .utilities import execution_path

@pytest.fixture(scope="module")
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('.'))
    yield


def test_arbitrary_parameters_attached_to_map(setup):
    if not os.path.exists('../data/good_maps/extra_arbitary_map_parameters.xml'):
        pytest.skip('Missing data')

    m = mapnik.Map(256, 256)
    mapnik.load_map(m, '../data/good_maps/extra_arbitary_map_parameters.xml')
    assert len(m.parameters) ==  5
    assert m.parameters['key'] ==  'value2'
    assert m.parameters['key3'] ==  'value3'
    assert m.parameters['unicode'] ==  u'iván'
    assert m.parameters['integer'] ==  10
    assert m.parameters['decimal'] ==  .999
    m2 = mapnik.Map(256, 256)
    for k, v in m.parameters:
        m2.parameters.append(mapnik.Parameter(k, v))
    assert len(m2.parameters) ==  5
    assert m2.parameters['key'] ==  'value2'
    assert m2.parameters['key3'] ==  'value3'
    assert m2.parameters['unicode'] ==  u'iván'
    assert m2.parameters['integer'] ==  10
    assert m2.parameters['decimal'] ==  .999
    map_string = mapnik.save_map_to_string(m)
    m3 = mapnik.Map(256, 256)
    mapnik.load_map_from_string(m3, map_string)
    assert len(m3.parameters) ==  5
    assert m3.parameters['key'] ==  'value2'
    assert m3.parameters['key3'] ==  'value3'
    assert m3.parameters['unicode'] ==  u'iván'
    assert m3.parameters['integer'] ==  10
    assert m3.parameters['decimal'] ==  .999


def test_serializing_arbitrary_parameters():
    m = mapnik.Map(256, 256)
    m.parameters.append(mapnik.Parameter('width', m.width))
    m.parameters.append(mapnik.Parameter('height', m.height))

    m2 = mapnik.Map(1, 1)
    mapnik.load_map_from_string(m2, mapnik.save_map_to_string(m))
    assert m2.parameters['width'] ==  m.width
    assert m2.parameters['height'] ==  m.height