# Unit tests for konova geometry
* adds further unit tests for konova app geometry model
This commit is contained in:
@@ -5,9 +5,12 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 15.12.21
|
||||
|
||||
"""
|
||||
import json
|
||||
|
||||
from django.contrib.gis.db.models.functions import Translate
|
||||
|
||||
from konova.models import Geometry, GeometryConflict
|
||||
from konova.sub_settings.lanis_settings import DEFAULT_SRID
|
||||
from konova.tests.test_views import BaseTestCase
|
||||
from konova.utils.schneider.fetcher import ParcelFetcher
|
||||
|
||||
@@ -74,3 +77,66 @@ class GeometryTestCase(BaseTestCase):
|
||||
fetcher = ParcelFetcher(geometry=self.geom_1)
|
||||
features = fetcher.get_parcels()
|
||||
self.assertNotEqual(0, len(features), msg="Spatial fetcher get feature did not work!")
|
||||
|
||||
def test_str(self):
|
||||
self.assertEqual(
|
||||
str(self.geom_1),
|
||||
str(self.geom_1.id)
|
||||
)
|
||||
|
||||
def test_get_data_objects(self):
|
||||
num_objs_with_geom = 0
|
||||
self.assertEqual(
|
||||
len(self.geom_1.get_data_objects()),
|
||||
num_objs_with_geom
|
||||
)
|
||||
|
||||
objs = [
|
||||
self.intervention,
|
||||
self.compensation,
|
||||
self.eco_account,
|
||||
self.ema,
|
||||
]
|
||||
for obj in objs:
|
||||
obj.geometry = self.geom_1
|
||||
obj.save()
|
||||
|
||||
num_objs_with_geom += 1
|
||||
geom_objs = self.geom_1.get_data_objects()
|
||||
self.assertEqual(
|
||||
len(geom_objs),
|
||||
num_objs_with_geom
|
||||
)
|
||||
self.assertIn(obj, geom_objs)
|
||||
|
||||
def test_as_feature_collection(self):
|
||||
geometry = self.geom_1.geom
|
||||
polygons = [p for p in geometry]
|
||||
expected_result = {
|
||||
"type": "FeatureCollection",
|
||||
"crs": {
|
||||
"type": "name",
|
||||
"properties": {
|
||||
"name": f"urn:ogc:def:crs:EPSG::{geometry.srid}"
|
||||
}
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"type": "Feature",
|
||||
"geometry": json.loads(p.json),
|
||||
}
|
||||
for p in polygons
|
||||
]
|
||||
}
|
||||
result = self.geom_1.as_feature_collection()
|
||||
result = json.dumps(result)
|
||||
expected_result = json.dumps(expected_result)
|
||||
|
||||
self.assertEqual(expected_result, result)
|
||||
|
||||
# Transform geometry into non-default-rlp srid to trigger retransforming in later steps
|
||||
geometry.transform(DEFAULT_SRID)
|
||||
different_result = self.geom_1.as_feature_collection()
|
||||
different_result = json.dumps(result)
|
||||
self.assertNotEqual(different_result, result)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user