Example #1
0
    def get_locations(self, location_names: List[str]) -> List[Location]:
        """Retrives locations matching provided names.

        :param location_names: names of locations to retrieve
        :type location_names: List[str]
        :return: locations matching provided names.
        :rtype: List[Location]
        """
        locations = []
        if location_names:
            locations = list(Location.objects.filter(name__in=location_names))

        if len(locations) < len(location_names):
            known_names = {loc.name for loc in locations}
            for name in set(location_names).difference(known_names):
                loc = Location(name=name)
                try:
                    loc.save()
                    locations.append(loc)
                except Exception:
                    pass

        return locations
Example #2
0
 def test_location_save(self):
     l = Location(name="Stanford", freebase_id="/en/stanford")
     l.save()
     self.assertEqual(l.latitude, 37.4225)
     self.assertAlmostEqual(l.longitude, -122.165277778, places=3)
Example #3
0
 def test_location_save(self):
     l = Location(name="Stanford", freebase_id="/en/stanford")
     l.save()
     self.assertEqual(l.latitude, 37.4225)
     self.assertEqual(l.longitude, -122.165277778)