def test_ok_wifi(self): wifi = WifiFactory() offset = 0.0001 wifis = [ wifi, WifiFactory(lat=wifi.lat + offset), WifiFactory(lat=wifi.lat + offset * 2), WifiFactory(lat=None, lon=None), ] self.session.flush() res = self.app.post_json('%s?key=test' % self.url, { "wifiAccessPoints": [ { "macAddress": wifis[0].key }, { "macAddress": wifis[1].key }, { "macAddress": wifis[2].key }, { "macAddress": wifis[3].key }, ] }, status=200) self.check_stats(counter=[ self.metric + '.api_key.test', self.metric + '.api_log.test.wifi_hit' ]) self.assertEqual(res.content_type, 'application/json') self.assertEqual( res.json, { "location": { "lat": wifi.lat + offset, "lng": wifi.lon }, "accuracy": wifi.range })
def test_ok_wifi(self): session = self.session wifis = WifiFactory.create_batch(4) new_wifi = WifiFactory() session.flush() res = self.app.post_json('/v1/geosubmit?key=test', { "items": [ { "latitude": wifis[0].lat, "longitude": wifis[0].lon, "wifiAccessPoints": [ { "macAddress": wifis[0].key }, { "macAddress": wifis[1].key }, { "macAddress": wifis[2].key }, { "macAddress": wifis[3].key }, { "macAddress": new_wifi.key }, ] }, ] }, status=200) self.assertEqual(res.content_type, 'application/json') self.assertEqual(res.json, {}) # Check that new wifi exists query = session.query(Wifi) count = query.filter(Wifi.key == new_wifi.key).count() self.assertEquals(count, 1) # check that WifiObservation records are created self.assertEquals(session.query(WifiObservation).count(), 5) self.check_stats(counter=[ 'items.api_log.test.uploaded.batches', 'items.api_log.test.uploaded.reports', 'items.api_log.test.uploaded.wifi_observations', 'items.uploaded.wifi_observations', ], timer=['items.api_log.test.uploaded.batch_size'])
def test_unique_wifi_histogram(self): session = self.session today = util.utcnow() yesterday = (today - timedelta(1)) two_days = (today - timedelta(2)) long_ago = (today - timedelta(3)) WifiFactory(key="ab1234567890", created=long_ago) WifiFactory(key="bc1234567890", created=two_days) WifiFactory(key="cd1234567890", created=yesterday) WifiFactory(key="de1234567890", created=yesterday) WifiFactory(key="ef1234567890", created=today) session.flush() result = unique_wifi_histogram.delay(ago=3) added = result.get() self.assertEqual(added, 1) stats = session.query(Stat).order_by(Stat.time).all() self.assertEqual(len(stats), 1) self.assertEqual(stats[0].key, StatKey.unique_wifi) self.assertEqual(stats[0].time, long_ago.date()) self.assertEqual(stats[0].value, 1) # fill up newer dates unique_wifi_histogram.delay(ago=2).get() unique_wifi_histogram.delay(ago=1).get() unique_wifi_histogram.delay(ago=0).get() # test duplicate execution unique_wifi_histogram.delay(ago=1).get() stats = session.query(Stat.time, Stat.value).order_by(Stat.time).all() self.assertEqual(len(stats), 4) self.assertEqual(dict(stats), { long_ago.date(): 1, two_days.date(): 2, yesterday.date(): 4, today.date(): 5})