Exemplo n.º 1
0
 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
         })
Exemplo n.º 2
0
    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'])
Exemplo n.º 3
0
    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})