Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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)
Example #10
0
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)
Example #11
0
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)
Example #12
0
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)
Example #13
0
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)
Example #14
0
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)