Source code for test.geo.layer.test_highway
import unittest
from catatom2osm import osm
from catatom2osm.app import QgsSingleton
from catatom2osm.geo.layer.highway import HighwayLayer
from catatom2osm.geo.point import Point
qgs = QgsSingleton()
[docs]class TestHighwayLayer(unittest.TestCase):
[docs] def test_init(self):
layer = HighwayLayer()
self.assertTrue(layer.isValid())
self.assertEqual(layer.fields()[0].name(), "name")
self.assertEqual(layer.crs().authid(), "EPSG:4326")
[docs] def test_read_from_osm(self):
layer = HighwayLayer()
data = osm.Osm()
data.Way(((10, 10), (15, 15)), {"name": "FooBar"})
w2 = data.Way(((20, 20), (30, 30)))
data.Relation([w2], {"name": "BarTaz"})
layer.read_from_osm(data)
self.assertEqual(layer.featureCount(), 2)
names = [feat["name"] for feat in layer.getFeatures()]
self.assertIn("BarTaz", names)
self.assertIn("FooBar", names)
for f in layer.getFeatures():
if f["name"] == "FooBar":
self.assertEqual(
f.geometry().asPolyline(), [Point(10, 10), Point(15, 15)]
)
if f["name"] == "BarTaz":
self.assertEqual(
f.geometry().asPolyline(), [Point(20, 20), Point(30, 30)]
)