File: datasource_xml_template_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 (31 lines) | stat: -rw-r--r-- 977 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
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_datasource_template_is_working(setup):
    if not os.path.exists('../data/good_maps/datasource.xml'):
        pytest.skip('Missing data')

    m = mapnik.Map(256, 256)
    mapnik.load_map(m, '../data/good_maps/datasource.xml')
    for layer in m.layers:
        layer_bbox = layer.envelope()
        bbox = None
        first = True
        for feature in layer.datasource:
            assert feature.envelope() == feature.geometry.envelope()
            assert layer_bbox.contains(feature.envelope())
            if first:
                first = False
                bbox = feature.envelope()
            else:
                bbox += feature.envelope()
        assert layer_bbox == bbox