コード例 #1
0
    def test_temp_blocked_admitted_again(self):
        now = util.utcnow()
        last_week = now - TEMPORARY_BLOCKLIST_DURATION - timedelta(days=1)

        obs = WifiObservationFactory()
        WifiShardFactory(mac=obs.mac,
                         lat=None,
                         lon=None,
                         samples=0,
                         created=last_week,
                         modified=last_week,
                         block_first=last_week.date(),
                         block_last=last_week.date(),
                         block_count=1)
        self.session.commit()
        # add a new entry for the previously blocked wifi
        self._queue_and_update([obs])

        # the wifi was inserted again
        shard = WifiShard.shard_model(obs.mac)
        wifis = self.session.query(shard).all()
        self.assertEqual(len(wifis), 1)
        wifi = wifis[0]
        self.assertEqual(wifi.block_first, last_week.date())
        self.assertEqual(wifi.block_last, last_week.date())
        self.assertEqual(wifi.created.date(), last_week.date())
        self.assertAlmostEqual(wifi.lat, obs.lat)
        self.assertAlmostEqual(wifi.lon, obs.lon)
        self.assertEqual(wifi.region, 'GB')
        self.assertEqual(wifi.samples, 1)
        self.check_statcounter(StatKey.unique_wifi, 0)
コード例 #2
0
ファイル: test_tasks.py プロジェクト: thebent/ichnaea
    def test_wifi_histogram(self):
        session = self.session
        today = util.utcnow()
        yesterday = (today - timedelta(1))
        two_days = (today - timedelta(2))
        long_ago = (today - timedelta(3))

        WifiObservationFactory.create_batch(2, created=today)
        WifiObservationFactory(created=yesterday)
        WifiObservationFactory.create_batch(3, created=two_days)
        WifiObservationFactory(created=long_ago)
        session.flush()

        wifi_histogram.delay(ago=3).get()

        stats = session.query(Stat).order_by(Stat.time).all()
        self.assertEqual(len(stats), 1)
        self.assertEqual(stats[0].key, StatKey.wifi)
        self.assertEqual(stats[0].time, long_ago.date())
        self.assertEqual(stats[0].value, 1)

        # fill in newer dates
        wifi_histogram.delay(ago=2).get()
        wifi_histogram.delay(ago=1).get()
        wifi_histogram.delay(ago=0).get()

        # test duplicate execution
        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(): 4,
                         yesterday.date(): 5,
                         today.date(): 7})