42 lines
1.8 KiB
Python
42 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2020, Frappe Technologies and contributors
|
|
# For license information, please see license.txt
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
import unittest
|
|
|
|
import frappe
|
|
from frappe.geo.utils import get_coords
|
|
|
|
|
|
class TestGeoUtils(unittest.TestCase):
|
|
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()
|