def test_freebase_values(self): l = Location(name="Stanford", freebase_id="/en/stanford") geos = l.freebase_values("/location/location/geolocation") self.assertEqual(len(geos), 1) g = geos[0] self.assertEqual(g.text, u'37.4225 - -122.165278 - Freebase Geodata Team - Geocode') self.assertEqual(g.lang, "en") self.assertEqual(g.creator, "/user/merge_bot") self.assertEqual(g.value, None) self.assertTrue(g.timestamp) lats = g.get_values("/location/geocode/latitude") self.assertEqual(len(lats), 1) l = lats[0] self.assertEqual(l.text, "37.4225") self.assertEqual(l.lang, "en") self.assertEqual(l.value, 37.4225) self.assertEqual(l.creator, "/user/geo_bot") self.assertTrue(l.timestamp) lat = g.get_value("/location/geocode/latitude") self.assertEqual(lat.text, "37.4225") self.assertEqual(lat.lang, "en") self.assertEqual(lat.value, 37.4225) self.assertEqual(lat.creator, "/user/geo_bot") self.assertTrue(lat.timestamp)
def test_freebase_values(self): l = Location(name="Stanford", freebase_id="/en/stanford") geos = l.freebase_values("/location/location/geolocation") self.assertEqual(len(geos), 1) g = geos[0] self.assertEqual(g.text, "37.4225 - -122.165277778 - Freebase Geodata Team - Geocode") self.assertEqual(g.lang, "en") self.assertEqual(g.creator, "/user/merge_bot") self.assertEqual(g.value, None) self.assertTrue(g.timestamp) lats = g.get_values("/location/geocode/latitude") self.assertEqual(len(lats), 1) l = lats[0] self.assertEqual(l.text, "37.4225") self.assertEqual(l.lang, "en") self.assertEqual(l.value, 37.4225) self.assertEqual(l.creator, "/user/geo_bot") self.assertTrue(l.timestamp) lat = g.get_value("/location/geocode/latitude") self.assertEqual(lat.text, "37.4225") self.assertEqual(lat.lang, "en") self.assertEqual(lat.value, 37.4225) self.assertEqual(lat.creator, "/user/geo_bot") self.assertTrue(lat.timestamp)
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
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)
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)