コード例 #1
0
 def test_returns_distance_via_geoip(self, geoip):
     geoip.lat_lon.return_value = [float(val) for val in faker.latlng()]
     response = self.client.get(self.url,
                                HTTP_X_FORWARDED_FOR=self.client_ip)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     geoip.lat_lon.assert_called_with(self.client_ip)
     self.assertIsNotNone(response.data[0]['distance'])
コード例 #2
0
 def test_returns_none_if_no_ip_address_provided(self, geoip):
     geoip.lat_lon.return_value = [float(val) for val in faker.latlng()]
     response = self.client.get(self.url,
                                HTTP_X_FORWARDED_FOR=None,
                                REMOTE_ADDR=None)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertIsNone(response.data[0]['distance'])
コード例 #3
0
 def setUp(self):
     self.user = UserFactory()
     self.member = UserFactory()
     lat, lng = faker.latlng()
     self.group = GroupFactory(members=[self.member],
                               latitude=lat,
                               longitude=lng)
     self.url = '/api/groups-info/'
     self.client_ip = '2003:d9:ef08:4a00:4b7a:7964:8a3c:a33e'
コード例 #4
0
 def test_with_geoip(self, geoip):
     lat_lng = [float(val) for val in faker.latlng()]
     geoip.lat_lon.return_value = lat_lng
     response = self.client.get(self.url,
                                HTTP_X_FORWARDED_FOR=self.client_ip)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(response.data['geoip'], {
         'lat': lat_lng[0],
         'lng': lat_lng[1]
     })
コード例 #5
0
    def test_caches_geoip_lookup(self, geoip):
        lat_lng = [float(val) for val in faker.latlng()]
        geoip.lat_lon.return_value = lat_lng
        self.client.force_login(user=self.user)
        self.client.get(self.url)
        geoip.lat_lon.assert_called()

        # if we call again it should not look up the ip again
        geoip.lat_lon.reset_mock()
        self.client.get(self.url)
        geoip.lat_lon.assert_not_called()
コード例 #6
0
 def test_with_geoip(self, geoip):
     lat_lng = [float(val) for val in faker.latlng()]
     city = {
         'latitude': lat_lng[0],
         'longitude': lat_lng[1],
         'country_code': 'AA',
         'time_zone': 'Europe/Berlin'
     }
     geoip.city.return_value = city
     response = self.client.get(self.url,
                                HTTP_X_FORWARDED_FOR=self.client_ip)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(
         dict(response.data['geoip']), {
             'lat': city['latitude'],
             'lng': city['longitude'],
             'country_code': city['country_code'],
             'timezone': city['time_zone'],
         })