def test_update_daily_stat3(session, populate_analytics): """Check if update_daily_stat is able to gather correct analytics when tracks which are atleast 2hrs apart""" site1 = Wifisite.query.filter_by(id=1).first() tzinfo = tz.gettz(site1.timezone) daydate = arrow.now(tzinfo) starttime = daydate.floor("day").to("UTC") track1 = Guesttrack.query.first() # create similar tracks as track 1 with 3hr timestamp difference for i in range(3): timestamp = starttime.replace(hours=+(3 * i + 3)) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=track1.device_mac, site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive db.session.commit() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 0 == sitestat.get_total_logins(), "Num Logins is :%s instead of expected :%s" % ( sitestat.get_total_logins(), 0, ) assert 23 == sitestat.num_visits, "Num visits is :%s instead of expected :%s" % (sitestat.num_visits, 20)
def test_update_daily_stat3(session, populate_analytics): '''Check if update_daily_stat is able to gather correct analytics when tracks which are atleast 2hrs apart''' site1 = Wifisite.query.filter_by(id=1).first() tzinfo = tz.gettz(site1.timezone) daydate = arrow.now(tzinfo) starttime = daydate.floor('day').to('UTC') track1 = Guesttrack.query.first() #create similar tracks as track 1 with 3hr timestamp difference for i in range(3): timestamp = starttime.replace(hours=+(3 * i + 3)) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=track1.device_mac, site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive db.session.commit() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 0 == sitestat.get_total_logins( ), 'Num Logins is :%s instead of expected :%s' % ( sitestat.get_total_logins(), 0) assert 23 == sitestat.num_visits, 'Num visits is :%s instead of expected :%s' % ( sitestat.num_visits, 20)
def celery_update_stat(*args, **kwargs): current_app.logger.info('-----------Running celery_update_stat-----------------------') sites = Wifisite.query.all() for site in sites: tzinfo = tz.gettz(site.timezone) now = arrow.now(tzinfo) #process today's status for this site update_daily_stat(site.id,now) if now.hour < 2: #process yesterday's stats as well yesterday = now.replace(days=-1) update_daily_stat(site.id,yesterday)
def test_update_daily_stat1(session, populate_analytics): '''Check if update_daily_stat is able to gather correct analytics when 20 unique tracks are found''' site1 = Wifisite.query.filter_by(id=1).first() daydate = arrow.now() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 0 == sitestat.get_total_logins( ), 'Num Logins is :%s instead of expected :%s' % ( sitestat.get_total_logins(), 0) assert 20 == sitestat.num_visits, 'Num visits is :%s instead of expected :%s' % ( sitestat.num_visits, 20)
def test_update_daily_stat1(session, populate_analytics): """Check if update_daily_stat is able to gather correct analytics when 20 unique tracks are found""" site1 = Wifisite.query.filter_by(id=1).first() daydate = arrow.now() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 0 == sitestat.get_total_logins(), "Num Logins is :%s instead of expected :%s" % ( sitestat.get_total_logins(), 0, ) assert 20 == sitestat.num_visits, "Num visits is :%s instead of expected :%s" % (sitestat.num_visits, 20)
def celery_update_stat(*args, **kwargs): current_app.logger.info( '-----------Running celery_update_stat-----------------------') sites = Wifisite.query.all() for site in sites: tzinfo = tz.gettz(site.timezone) now = arrow.now(tzinfo) #process today's status for this site update_daily_stat(site.id, now) if now.hour < 2: #process yesterday's stats as well yesterday = now.replace(days=-1) update_daily_stat(site.id, yesterday)
def test_update_daily_stat(): with app.app_context(): import arrow from unifispot.client.models import Wifisite from dateutil import tz from unifispot.analytics.helpers import update_daily_stat today = arrow.now() start_of_month = today.floor('month') diff = (today - start_of_month).days sites = Wifisite.query.all() for site in sites: for i in range(diff): daydate = today.replace(days=-i) update_daily_stat(site.id, daydate)
def test_update_daily_stat(): with app.app_context(): import arrow from unifispot.client.models import Wifisite from dateutil import tz from unifispot.analytics.helpers import update_daily_stat today = arrow.now() start_of_month = today.floor('month') diff = (today - start_of_month).days sites = Wifisite.query.all() for site in sites: for i in range(diff): daydate = today.replace(days=-i) update_daily_stat(site.id,daydate)
def rebuild_daily_stat(): with app.app_context(): import arrow from unifispot.client.models import Wifisite from unifispot.analytics.models import Sitestat from dateutil import tz from unifispot.analytics.helpers import update_daily_stat today = arrow.now() start_of_month = today.floor('month') diff = (today - start_of_month).days sites = Wifisite.query.all() app.logger.info('----------rebuilding daily stats------') for site in sites: tzinfo = tz.gettz(site.timezone) sitestats = Sitestat.query.filter_by(site_id=site.id).all() for stats in sitestats: daydate = arrow.get(stats.date, tzinfo=tzinfo) update_daily_stat(site.id, daydate)
def rebuild_daily_stat(): with app.app_context(): import arrow from unifispot.client.models import Wifisite from unifispot.analytics.models import Sitestat from dateutil import tz from unifispot.analytics.helpers import update_daily_stat today = arrow.now() start_of_month = today.floor('month') diff = (today - start_of_month).days sites = Wifisite.query.all() app.logger.info('----------rebuilding daily stats------') for site in sites: tzinfo = tz.gettz(site.timezone) sitestats = Sitestat.query.filter_by(site_id=site.id).all() for stats in sitestats: daydate = arrow.get(stats.date,tzinfo=tzinfo) update_daily_stat(site.id,daydate)
def test_update_daily_stat5(session, populate_analytics): '''Check if update_daily_stat is updating same entry even after updating timezone''' site1 = Wifisite.query.filter_by(id=1).first() daydate = arrow.now() #run daily_stats update_daily_stat(site1.id, daydate) #update timezone site1.timezone = 'US/Pacific' db.session.commit() #run daily_stats update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 1 == Sitestat.query.count(), 'Sitestat count is not 1' assert 0 == sitestat.get_total_logins( ), 'Num Logins is :%s instead of expected :%s' % ( sitestat.get_total_logins(), 0) assert 20 == sitestat.num_visits, 'Num visits is :%s instead of expected :%s' % ( sitestat.num_visits, 20)
def test_update_daily_stat5(session, populate_analytics): """Check if update_daily_stat is updating same entry even after updating timezone""" site1 = Wifisite.query.filter_by(id=1).first() daydate = arrow.now() # run daily_stats update_daily_stat(site1.id, daydate) # update timezone site1.timezone = "US/Pacific" db.session.commit() # run daily_stats update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 1 == Sitestat.query.count(), "Sitestat count is not 1" assert 0 == sitestat.get_total_logins(), "Num Logins is :%s instead of expected :%s" % ( sitestat.get_total_logins(), 0, ) assert 20 == sitestat.num_visits, "Num visits is :%s instead of expected :%s" % (sitestat.num_visits, 20)
def test_update_daily_stat4(session, populate_analytics): '''Check if update_daily_stat is able to gather correct analytics when tracks different types of tracks are present''' site1 = Wifisite.query.filter_by(id=1).first() tzinfo = tz.gettz(site1.timezone) daydate = arrow.now(tzinfo) starttime = daydate.floor('day').to('UTC') track1 = Guesttrack.query.first() #create 5 SMS tracks with unique MACs for i in range(5): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_SMS_AUTH db.session.commit() #create 8 Email tracks with unique MACs for i in range(8): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_EMAIL_AUTH db.session.commit() #create 4 Voucher tracks with unique MACs for i in range(4): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_VOUCHER_AUTH db.session.commit() #create 11 returning tracks with unique MACs for i in range(11): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_PREAUTH db.session.commit() #create 20 FB tracks with unique MACs for i in range(20): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack(ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url='', track_id=str(uuid.uuid4())) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_SOCIAL_AUTH db.session.commit() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 48 == sitestat.get_total_logins( ), 'Num Logins is :%s instead of expected :%s' % ( sitestat.get_total_logins(), 48) assert 68 == sitestat.num_visits, 'Num visits is :%s instead of expected :%s' % ( sitestat.num_visits, 68) assert 11 == sitestat.num_repeats, 'num_repeats is :%s instead of expected :%s' % ( sitestat.num_repeats, 11) assert 8 == sitestat.num_emails, 'num_emails is :%s instead of expected :%s' % ( sitestat.num_emails, 8) assert 20 == sitestat.num_fb, 'num_fb is :%s instead of expected :%s' % ( sitestat.num_fb, 20) assert 4 == sitestat.num_vouchers, 'num_vouchers is :%s instead of expected :%s' % ( sitestat.num_vouchers, 20) assert 5 == sitestat.num_phones, 'num_phones is :%s instead of expected :%s' % ( sitestat.num_phones, 5)
def test_update_daily_stat4(session, populate_analytics): """Check if update_daily_stat is able to gather correct analytics when tracks different types of tracks are present""" site1 = Wifisite.query.filter_by(id=1).first() tzinfo = tz.gettz(site1.timezone) daydate = arrow.now(tzinfo) starttime = daydate.floor("day").to("UTC") track1 = Guesttrack.query.first() # create 5 SMS tracks with unique MACs for i in range(5): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_SMS_AUTH db.session.commit() # create 8 Email tracks with unique MACs for i in range(8): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_EMAIL_AUTH db.session.commit() # create 4 Voucher tracks with unique MACs for i in range(4): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_VOUCHER_AUTH db.session.commit() # create 11 returning tracks with unique MACs for i in range(11): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_PREAUTH db.session.commit() # create 20 FB tracks with unique MACs for i in range(20): timestamp = starttime.replace(hours=+5, minutes=+5 * i) track = Guesttrack( ap_mac=track1.ap_mac, device_mac=randomMAC(), site=site1, state=GUESTRACK_INIT, orig_url="", track_id=str(uuid.uuid4()), ) db.session.add(track) track.timestamp = timestamp.naive track.state = GUESTRACK_SOCIAL_AUTH db.session.commit() update_daily_stat(site1.id, daydate) sitestat = Sitestat.query.first() assert 48 == sitestat.get_total_logins(), "Num Logins is :%s instead of expected :%s" % ( sitestat.get_total_logins(), 48, ) assert 68 == sitestat.num_visits, "Num visits is :%s instead of expected :%s" % (sitestat.num_visits, 68) assert 11 == sitestat.num_repeats, "num_repeats is :%s instead of expected :%s" % (sitestat.num_repeats, 11) assert 8 == sitestat.num_emails, "num_emails is :%s instead of expected :%s" % (sitestat.num_emails, 8) assert 20 == sitestat.num_fb, "num_fb is :%s instead of expected :%s" % (sitestat.num_fb, 20) assert 4 == sitestat.num_vouchers, "num_vouchers is :%s instead of expected :%s" % (sitestat.num_vouchers, 20) assert 5 == sitestat.num_phones, "num_phones is :%s instead of expected :%s" % (sitestat.num_phones, 5)