def setUp(self) -> None: self.view = CrudViewFactory() self.prop_name = CrudViewProperty.objects.create(view=self.view, key="name", required=True, json_schema={ 'type': "string", "title": "Name" }, include_in_tile=True) self.prop_age = CrudViewProperty.objects.create(view=self.view, key="age", json_schema={ 'type': "integer", "title": "Age" }) self.prop_country = CrudViewProperty.objects.create(view=self.view, key="country", json_schema={ 'type': "string", "title": "Country" }) sync_layer_schema(self.view) sync_ui_schema(self.view) sync_properties_in_tiles(self.view)
def setUp(self) -> None: self.view = CrudViewFactory() self.prop_name = CrudViewProperty.objects.create(view=self.view, key="name", required=True, json_schema={ 'type': "string", "title": "Name" }) self.prop_age = CrudViewProperty.objects.create(view=self.view, key="age", json_schema={ 'type': "integer", "title": "Age" }) self.prop_country = CrudViewProperty.objects.create(view=self.view, key="country", json_schema={ 'type': "string", "title": "Country" }) sync_layer_schema(self.view) sync_ui_schema(self.view) self.feature = Feature.objects.create(layer=self.view.layer, geom='POINT(0 0)', properties={ "name": None, "age": 15, "country": "Country" })
def setUp(self) -> None: self.view = CrudViewFactory() self.extra_layer = LayerExtraGeom.objects.create(layer=self.view.layer, title="extra") self.feature = Feature.objects.create(layer=self.view.layer, geom='POINT(0 0)') self.extra_geometry = FeatureExtraGeom.objects.create( feature=self.feature, layer_extra_geom=self.extra_layer, geom='POINT(0 0)')
def setUp(self): self.test_value = "PotatoSalad" self.layer = LayerFactory.create( geom_type=GeometryTypes.LineString, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } }, }, ) self.crud_view = CrudViewFactory(layer=self.layer) CrudViewProperty.objects.create( view=self.crud_view, key="length", editable=False, json_schema={ "type": "integer", "title": "Length" }, function_path="test_terra_geocrud.functions_test.get_length_km", ) CrudViewProperty.objects.create( view=self.crud_view, key="name", editable=True, json_schema={ "type": "string", "title": "Name" }, ) self.test_prop = CrudViewProperty.objects.create( view=self.crud_view, key="test_property", editable=True, json_schema={ "type": "string", "title": "Test Property" }, ) sync_layer_schema(self.crud_view) self.new_object = Feature.objects.create( layer=self.crud_view.layer, properties={"name": "super test"}, geom=LineString((0, 0), (1, 0)), )
def setUp(self): layer = LayerFactory.create(geom_type=GeometryTypes.LineString, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } } }) self.crud_view = CrudViewFactory(layer=layer) self.prop_length = CrudViewProperty.objects.create( view=self.crud_view, key="length", editable=False, json_schema={ 'type': "integer", "title": "Length" }, function_path='test_terra_geocrud.functions_test.get_length') self.prop_name = CrudViewProperty.objects.create(view=self.crud_view, key="name", editable=True, json_schema={ 'type': "string", "title": "Name" }) sync_layer_schema(self.crud_view) with patch('terra_geocrud.signals.execute_async_func') as mocked_async: self.add_side_effect_async(mocked_async) with patch('geostore.settings.GEOSTORE_RELATION_CELERY_ASYNC', new_callable=PropertyMock) as mocked: mocked.return_value = True self.feature = Feature.objects.create( layer=self.crud_view.layer, properties={'name': 'toto'}, geom=LineString((0, 0), (1, 0))) self.feature_long = Feature.objects.create( layer=self.crud_view.layer, properties={'name': 'tata'}, geom=LineString((0, 0), (10, 10)))
def setUp(self) -> None: self.crud_view = CrudViewFactory() self.feature = Feature.objects.create(layer=self.crud_view.layer, properties={'name': 'toto'}, geom=Point(0, 0)) self.feature_picture = FeaturePictureFactory(feature=self.feature)
def setUp(self): layer = LayerFactory.create(geom_type=GeometryTypes.LineString, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } } }) self.crud_view = CrudViewFactory(layer=layer) self.layer_city = LayerFactory.create(geom_type=GeometryTypes.Polygon, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } } }) crud_view = CrudViewFactory.create(layer=self.layer_city) with patch( 'terra_geocrud.tasks.feature_update_relations_and_properties.delay' ): self.layer_relation = LayerRelation.objects.create( name='cities', relation_type='intersects', origin=self.crud_view.layer, destination=crud_view.layer) self.prop_name = CrudViewProperty.objects.create(view=self.crud_view, key="name", editable=True, json_schema={ 'type': "string", "title": "Name" }) self.prop_relation_first_city = CrudViewProperty.objects.create( view=self.crud_view, key="city", editable=False, json_schema={ 'type': "array", "items": { "type": "string" } }, function_path='test_terra_geocrud.functions_test.get_cities') sync_layer_schema(self.crud_view) sync_layer_schema(crud_view) with patch('terra_geocrud.signals.execute_async_func') as mocked_async: self.add_side_effect_async(mocked_async) with patch('geostore.settings.GEOSTORE_RELATION_CELERY_ASYNC', new_callable=PropertyMock) as mocked: mocked.return_value = True self.feature = Feature.objects.create( layer=self.crud_view.layer, properties={'name': 'toto'}, geom=LineString((0, 0), (1, 0))) self.feature_long = Feature.objects.create( layer=self.crud_view.layer, properties={'name': 'tata'}, geom=LineString((0, 0), (10, 10))) self.feature_city_first = Feature.objects.create( layer=self.layer_city, properties={"name": "Ville 0 0"}, geom=Polygon(((0, 0), (5, 0), (5, 5), (0, 5), (0, 0))), ) Feature.objects.create(layer=self.layer_city, properties={"name": "Ville 5 5"}, geom=Polygon(((5, 5), (10, 5), (10, 10), (5, 10), (5, 5)))) Feature.objects.create(layer=self.layer_city, properties={"name": "Ville 11 11"}, geom=Polygon(((11, 11), (12, 11), (12, 12), (11, 12), (11, 11))))
def test_signal_start_end_cities(self, property_mocked, async_mocked, mock_delay): property_mocked.return_value = True self.add_side_effect_async(async_mocked) layer = LayerFactory.create(geom_type=GeometryTypes.Polygon, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } } }) crud_view = CrudViewFactory.create(layer=layer) LayerRelation.objects.create(name='cities', relation_type='intersects', origin=self.crud_view.layer, destination=crud_view.layer) self.prop_relation_first_city = CrudViewProperty.objects.create( view=self.crud_view, key="first_city", editable=False, json_schema={'type': "string"}, function_path='test_terra_geocrud.functions_test.get_first_city') self.prop_relation_last_city = CrudViewProperty.objects.create( view=self.crud_view, key="last_city", editable=False, json_schema={'type': "string"}, function_path='test_terra_geocrud.functions_test.get_last_city') sync_layer_schema(self.crud_view) sync_layer_schema(crud_view) self.feature_long.refresh_from_db() self.feature_long.save() self.feature_long.refresh_from_db() self.assertEqual(self.feature_long.properties, { 'name': 'tata', 'first_city': '', 'last_city': '' }) Feature.objects.create( layer=layer, properties={"name": "Ville 0 0"}, geom=Polygon(((0, 0), (5, 0), (5, 5), (0, 5), (0, 0))), ) Feature.objects.create(layer=layer, properties={"name": "Ville 5 5"}, geom=Polygon(((5, 5), (10, 5), (10, 10), (5, 10), (5, 5)))) self.feature_long.refresh_from_db() self.feature_long.save() self.feature_long.refresh_from_db() feature = Feature.objects.get(pk=self.feature_long.pk) self.assertEqual(feature.properties, { 'first_city': 'Ville 0 0', 'last_city': 'Ville 5 5', 'name': 'tata' })
def test_signal_function_with_relation(self, property_mocked, async_mocked, mock_delay): property_mocked.return_value = True self.add_side_effect_async(async_mocked) layer = LayerFactory.create(geom_type=GeometryTypes.LineString, schema={ "type": "object", "required": [ "name", ], "properties": { "name": { "type": "string", "title": "Name" } } }) crud_view = CrudViewFactory.create(layer=layer) self.prop_relation = CrudViewProperty.objects.create( view=self.crud_view, key="cities", editable=False, json_schema={ 'type': "array", "items": { "type": "string" } }, function_path='test_terra_geocrud.functions_test.get_cities') sync_layer_schema(self.crud_view) sync_layer_schema(crud_view) self.feature.save() self.feature.refresh_from_db() self.assertEqual(self.feature.properties, { 'name': 'toto', 'length': 1.0, 'cities': [] }) LayerRelation.objects.create(name='cities', relation_type='distance', origin=self.crud_view.layer, destination=crud_view.layer, settings={"distance": 100}) self.feature.save() self.feature.refresh_from_db() self.assertEqual(self.feature.properties, { 'name': 'toto', 'length': 1.0, 'cities': [] }) feature_intersect = Feature.objects.create(layer=layer, properties={}, geom=LineString((0, 0), (10, 0))) self.feature.refresh_from_db() self.feature.save() self.feature.refresh_from_db() self.assertEqual(self.feature.properties, { 'name': 'toto', 'length': 1.0, 'cities': [] }) feature_intersect.properties = {'name': 'City'} feature_intersect.save() self.feature.refresh_from_db() self.feature.save() self.feature.refresh_from_db() self.assertEqual(self.feature.properties, { 'name': 'toto', 'length': 1.0, 'cities': ['City'] })