From b8a21a8baab79a113dfb36bf382cf984d43862f8 Mon Sep 17 00:00:00 2001 From: reverend Date: Sat, 12 Sep 2020 11:34:49 +0200 Subject: [PATCH] Changed average_latlon --- lostplaces/lostplaces_app/models.py | 7 ++++--- .../tests/models/test_place_model.py | 20 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/lostplaces/lostplaces_app/models.py b/lostplaces/lostplaces_app/models.py index b40462b..d51f12e 100644 --- a/lostplaces/lostplaces_app/models.py +++ b/lostplaces/lostplaces_app/models.py @@ -92,8 +92,9 @@ class Place (models.Model): tags = TaggableManager(blank=True) + @classmethod # Get center position of LP-geocoordinates. - def average_latlon(place_list): + def average_latlon(cls, place_list): amount = len(place_list) # Init fill values to prevent None longitude = 0 @@ -103,9 +104,9 @@ class Place (models.Model): for place in place_list: longitude += place.longitude latitude += place.latitude - return (latitude / amount, longitude / amount) + return {'latitude':latitude / amount, 'longitude': longitude / amount} - return (latitude, longitude) + return {'latitude': latitude, 'longitude': longitude} def __str__(self): return self.name diff --git a/lostplaces/lostplaces_app/tests/models/test_place_model.py b/lostplaces/lostplaces_app/tests/models/test_place_model.py index fb92863..e5284da 100644 --- a/lostplaces/lostplaces_app/tests/models/test_place_model.py +++ b/lostplaces/lostplaces_app/tests/models/test_place_model.py @@ -84,12 +84,20 @@ class PlaceTestCase(SubmittableTestCase, TestCase): place_list.append(place) avg_latlon = Place.average_latlon(place_list) - self.assertEqual(avg_latlon[0], 5.5, + + self.assertTrue('latitude' in avg_latlon, + msg='Expecting avg_latlon dict to have an \'latitude\' key' + ) + self.assertTrue('longitude' in avg_latlon, + msg='Expecting avg_latlon dict to have an \'longitude\' key' + ) + + self.assertEqual(avg_latlon['latitude'], 5.5, msg='%s: average latitude missmatch' % ( self.model_name ) ) - self.assertEqual(avg_latlon[1], 14.5, + self.assertEqual(avg_latlon['longitude'], 14.5, msg='%s: average longitude missmatch' % ( self.model_name ) @@ -102,12 +110,12 @@ class PlaceTestCase(SubmittableTestCase, TestCase): ''' place = Place.objects.get(id=1) avg_latlon = Place.average_latlon([place]) - self.assertEqual(avg_latlon[0], place.latitude, + self.assertEqual(avg_latlon['latitude'], place.latitude, msg='%s:(one place) average latitude missmatch' % ( self.model_name ) ) - self.assertEqual(avg_latlon[1], place.longitude, + self.assertEqual(avg_latlon['longitude'], place.longitude, msg='%s: (one place) average longitude missmatch' % ( self.model_name ) @@ -119,12 +127,12 @@ class PlaceTestCase(SubmittableTestCase, TestCase): an empty list ''' avg_latlon = Place.average_latlon([]) - self.assertEqual(avg_latlon[0], 0, + self.assertEqual(avg_latlon['latitude'], 0, msg='%s: (no places) average latitude missmatch' % ( self.model_name ) ) - self.assertEqual(avg_latlon[1], 0, + self.assertEqual(avg_latlon['longitude'], 0, msg='%s: a(no places) verage longitude missmatch' % ( self.model_name )