54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# Copyright (c) 2020, Frappe Technologies and contributors
|
|
# License: MIT. See LICENSE
|
|
|
|
import frappe
|
|
from frappe.geo.utils import get_coords
|
|
from frappe.tests.utils import FrappeTestCase
|
|
|
|
|
|
class TestGeoUtils(FrappeTestCase):
|
|
def setUp(self):
|
|
self.todo = frappe.get_doc(
|
|
dict(doctype="ToDo", description="Test description", assigned_by="Administrator")
|
|
).insert()
|
|
|
|
self.test_location_dict = {
|
|
"type": "FeatureCollection",
|
|
"features": [
|
|
{
|
|
"type": "Feature",
|
|
"properties": {},
|
|
"geometry": {"type": "Point", "coordinates": [49.20433, 55.753395]},
|
|
}
|
|
],
|
|
}
|
|
self.test_location = frappe.get_doc(
|
|
{"name": "Test Location", "doctype": "Location", "location": str(self.test_location_dict)}
|
|
)
|
|
|
|
self.test_filter_exists = [["Location", "name", "like", "%Test Location%"]]
|
|
self.test_filter_not_exists = [["Location", "name", "like", "%Test Location Not exists%"]]
|
|
self.test_filter_todo = [["ToDo", "description", "like", "%Test description%"]]
|
|
|
|
def test_get_coords_location_with_filter_exists(self):
|
|
coords = get_coords("Location", self.test_filter_exists, "location_field")
|
|
self.assertEqual(
|
|
self.test_location_dict["features"][0]["geometry"], coords["features"][0]["geometry"]
|
|
)
|
|
|
|
def test_get_coords_location_with_filter_not_exists(self):
|
|
coords = get_coords("Location", self.test_filter_not_exists, "location_field")
|
|
self.assertEqual(coords, {"type": "FeatureCollection", "features": []})
|
|
|
|
def test_get_coords_from_not_existable_location(self):
|
|
self.assertRaises(
|
|
frappe.ValidationError, get_coords, "ToDo", self.test_filter_todo, "location_field"
|
|
)
|
|
|
|
def test_get_coords_from_not_existable_coords(self):
|
|
self.assertRaises(
|
|
frappe.ValidationError, get_coords, "ToDo", self.test_filter_todo, "coordinates"
|
|
)
|
|
|
|
def tearDown(self):
|
|
self.todo.delete()
|