Example #1
0
 def test_user_total(self):
     day = datetime.date(2009, 1, 1)
     p = UserProfile.objects.create(username="******", source=amo.LOGIN_SOURCE_MMO_BROWSERID)
     p.update(created=day)
     eq_(tasks._get_monolith_jobs(day)["mmo_user_count_total"][0]["count"](), 1)
     eq_(tasks._get_monolith_jobs()["mmo_user_count_total"][0]["count"](), 1)
     eq_(tasks._get_monolith_jobs()["mmo_user_count_new"][0]["count"](), 0)
Example #2
0
 def test_user_total(self):
     day = datetime.date(2009, 1, 1)
     p = UserProfile.objects.create(username='******',
                                    source=amo.LOGIN_SOURCE_MMO_BROWSERID)
     p.update(created=day)
     eq_(
         tasks._get_monolith_jobs(day)['mmo_user_count_total'][0]['count']
         (), 1)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_total'][0]['count'](),
         1)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_new'][0]['count'](), 0)
Example #3
0
    def test_app_avail_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Webapp.objects.create()
        app.update(
            _current_version=Version.objects.create(addon=app, reviewed=today), status=amo.STATUS_PUBLIC, created=today
        )
        # Create a couple more to test the counts.
        app2 = Webapp.objects.create()
        app2.update(
            _current_version=Version.objects.create(addon=app2, reviewed=today),
            status=amo.STATUS_PENDING,
            created=today,
        )
        app3 = Webapp.objects.create(disabled_by_user=True)
        app3.update(
            _current_version=Version.objects.create(addon=app3, reviewed=today), status=amo.STATUS_PUBLIC, created=today
        )

        package_type = "packaged" if app.is_packaged else "hosted"
        premium_type = amo.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions["br"]
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs["apps_available_by_package_type"]:
            r = job["dimensions"]["region"]
            p = job["dimensions"]["package_type"]
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job["count"]()
            eq_(
                count,
                expected_count,
                "Incorrect count for region %s, package type %s. "
                "Got %d, expected %d." % (r, p, count, expected_count),
            )

        # Check premium type counts.
        for job in jobs["apps_available_by_premium_type"]:
            r = job["dimensions"]["region"]
            p = job["dimensions"]["premium_type"]
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job["count"]()
            eq_(
                count,
                expected_count,
                "Incorrect count for region %s, premium type %s. "
                "Got %d, expected %d." % (r, p, count, expected_count),
            )
Example #4
0
    def test_dev_total(self):
        p1 = UserProfile.objects.create(username="******", source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        p2 = UserProfile.objects.create(username="******", source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        a1 = amo.tests.app_factory()
        AddonUser.objects.create(addon=a1, user=p1)
        AddonUser.objects.create(addon=a1, user=p2)

        eq_(tasks._get_monolith_jobs()["mmo_developer_count_total"][0]["count"](), 2)
Example #5
0
    def test_app_avail_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Addon.objects.create(type=amo.ADDON_WEBAPP)
        app.update(_current_version=Version.objects.create(addon=app,
                                                           reviewed=today),
                   status=amo.STATUS_PUBLIC,
                   created=today)
        # Create a couple more to test the counts.
        app2 = Addon.objects.create(type=amo.ADDON_WEBAPP)
        app2.update(_current_version=Version.objects.create(addon=app2,
                                                            reviewed=today),
                    status=amo.STATUS_PENDING,
                    created=today)
        app3 = Addon.objects.create(type=amo.ADDON_WEBAPP,
                                    disabled_by_user=True)
        app3.update(_current_version=Version.objects.create(addon=app3,
                                                            reviewed=today),
                    status=amo.STATUS_PUBLIC,
                    created=today)

        package_type = 'packaged' if app.is_packaged else 'hosted'
        premium_type = amo.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions['br']
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs['apps_available_by_package_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['package_type']
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(
                count, expected_count,
                'Incorrect count for region %s, package type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))

        # Check premium type counts.
        for job in jobs['apps_available_by_premium_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['premium_type']
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(
                count, expected_count,
                'Incorrect count for region %s, premium type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))
Example #6
0
    def test_dev_total(self):
        p1 = user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
        p2 = user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
        a1 = mkt.site.tests.app_factory()
        AddonUser.objects.create(addon=a1, user=p1)
        AddonUser.objects.create(addon=a1, user=p2)

        eq_(tasks._get_monolith_jobs()
            ['mmo_developer_count_total'][0]['count'](), 2)
Example #7
0
def update_monolith_stats(date=None):
    """Update monolith statistics."""
    if date:
        date = datetime.datetime.strptime(date, '%Y-%m-%d').date()
    today = date or datetime.date.today()
    jobs = [{'metric': metric,
             'date': today} for metric in tasks._get_monolith_jobs(date)]

    ts = [tasks.update_monolith_stats.subtask(kwargs=kw) for kw in jobs]
    TaskSet(ts).apply_async()
Example #8
0
    def test_dev_total(self):
        p1 = user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
        p2 = user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
        a1 = mkt.site.tests.app_factory()
        AddonUser.objects.create(addon=a1, user=p1)
        AddonUser.objects.create(addon=a1, user=p2)

        eq_(
            tasks._get_monolith_jobs()['mmo_developer_count_total'][0]['count']
            (), 2)
Example #9
0
    def test_dev_total(self):
        p1 = UserProfile.objects.create(username='******',
                                        source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        p2 = UserProfile.objects.create(username='******',
                                        source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        a1 = amo.tests.app_factory()
        AddonUser.objects.create(addon=a1, user=p1)
        AddonUser.objects.create(addon=a1, user=p2)

        eq_(
            tasks._get_monolith_jobs()['mmo_developer_count_total'][0]['count']
            (), 2)
Example #10
0
def update_monolith_stats(date=None):
    """Update monolith statistics."""
    if date:
        date = datetime.datetime.strptime(date, '%Y-%m-%d').date()
    today = date or datetime.date.today()
    jobs = [{
        'metric': metric,
        'date': today
    } for metric in tasks._get_monolith_jobs(date)]

    ts = [tasks.update_monolith_stats.subtask(kwargs=kw) for kw in jobs]
    TaskSet(ts).apply_async()
Example #11
0
    def test_dev_total(self):
        p1 = UserProfile.objects.create(username='******',
                                        source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        p2 = UserProfile.objects.create(username='******',
                                        source=amo.LOGIN_SOURCE_MMO_BROWSERID)
        a1 = amo.tests.addon_factory()
        a2 = amo.tests.app_factory()
        AddonUser.objects.create(addon=a1, user=p1)
        AddonUser.objects.create(addon=a1, user=p2)
        AddonUser.objects.create(addon=a2, user=p1)

        eq_(tasks._get_monolith_jobs()['mmo_developer_count_total'][0]['count'](),
            1)
Example #12
0
    def test_app_avail_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Webapp.objects.create()
        app.update(_current_version=Version.objects.create(addon=app,
                                                           reviewed=today),
                   status=mkt.STATUS_PUBLIC, created=today)
        # Create a couple more to test the counts.
        app2 = Webapp.objects.create()
        app2.update(_current_version=Version.objects.create(addon=app2,
                                                            reviewed=today),
                    status=mkt.STATUS_PENDING, created=today)
        app3 = Webapp.objects.create(disabled_by_user=True)
        app3.update(_current_version=Version.objects.create(addon=app3,
                                                            reviewed=today),
                    status=mkt.STATUS_PUBLIC, created=today)

        package_type = 'packaged' if app.is_packaged else 'hosted'
        premium_type = mkt.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions['br']
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs['apps_available_by_package_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['package_type']
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(count, expected_count,
                'Incorrect count for region %s, package type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))

        # Check premium type counts.
        for job in jobs['apps_available_by_premium_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['premium_type']
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(count, expected_count,
                'Incorrect count for region %s, premium type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))
Example #13
0
    def test_app_added_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Webapp.objects.create()
        app.update(created=today)

        package_type = "packaged" if app.is_packaged else "hosted"
        premium_type = amo.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions["br"]
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs["apps_added_by_package_type"]:
            r = job["dimensions"]["region"]
            p = job["dimensions"]["package_type"]
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job["count"]()
            eq_(
                count,
                expected_count,
                "Incorrect count for region %s, package type %s. "
                "Got %d, expected %d." % (r, p, count, expected_count),
            )

        # Check premium type counts.
        for job in jobs["apps_added_by_premium_type"]:
            r = job["dimensions"]["region"]
            p = job["dimensions"]["premium_type"]
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job["count"]()
            eq_(
                count,
                expected_count,
                "Incorrect count for region %s, premium type %s. "
                "Got %d, expected %d." % (r, p, count, expected_count),
            )
Example #14
0
    def test_app_added_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Webapp.objects.create()
        app.update(created=today)

        package_type = 'packaged' if app.is_packaged else 'hosted'
        premium_type = amo.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions['br']
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs['apps_added_by_package_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['package_type']
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(
                count, expected_count,
                'Incorrect count for region %s, package type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))

        # Check premium type counts.
        for job in jobs['apps_added_by_premium_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['premium_type']
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(
                count, expected_count,
                'Incorrect count for region %s, premium type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))
Example #15
0
    def test_app_added_counts(self):
        today = datetime.date(2013, 1, 25)
        app = Webapp.objects.create()
        app.update(created=today)

        package_type = 'packaged' if app.is_packaged else 'hosted'
        premium_type = mkt.ADDON_PREMIUM_API[app.premium_type]

        # Add a region exclusion.
        regions = dict(REGIONS_CHOICES_SLUG)
        excluded_region = regions['br']
        app.addonexcludedregion.create(region=excluded_region.id)

        jobs = tasks._get_monolith_jobs(today)

        # Check package type counts.
        for job in jobs['apps_added_by_package_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['package_type']
            if r != excluded_region.slug and p == package_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(count, expected_count,
                'Incorrect count for region %s, package type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))

        # Check premium type counts.
        for job in jobs['apps_added_by_premium_type']:
            r = job['dimensions']['region']
            p = job['dimensions']['premium_type']
            if r != excluded_region.slug and p == premium_type:
                expected_count = 1
            else:
                expected_count = 0
            count = job['count']()
            eq_(count, expected_count,
                'Incorrect count for region %s, premium type %s. '
                'Got %d, expected %d.' % (r, p, count, expected_count))
Example #16
0
 def test_user_new(self):
     user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_new'][0]['count'](), 1)
Example #17
0
 def test_app_reviews(self):
     addon = Webapp.objects.create()
     Review.objects.create(addon=addon, user=user_factory())
     eq_(tasks._get_monolith_jobs()['apps_review_count_new'][0]['count'](),
         1)
Example #18
0
 def test_app_new(self):
     Webapp.objects.create()
     eq_(tasks._get_monolith_jobs()['apps_count_new'][0]['count'](), 1)
Example #19
0
 def test_app_reviews(self):
     addon = Webapp.objects.create()
     user = UserProfile.objects.create(username="******")
     Review.objects.create(addon=addon, user=user)
     eq_(tasks._get_monolith_jobs()["apps_review_count_new"][0]["count"](), 1)
Example #20
0
 def test_user_new(self):
     UserProfile.objects.create(username='******',
                                source=amo.LOGIN_SOURCE_MMO_BROWSERID)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_new'][0]['count'](), 1)
Example #21
0
 def test_app_reviews(self):
     addon = Webapp.objects.create()
     Review.objects.create(addon=addon, user=user_factory(), rating=5)
     eq_(tasks._get_monolith_jobs()['apps_review_count_new'][0]['count'](),
         1)
Example #22
0
 def test_app_reviews(self):
     addon = Webapp.objects.create()
     user = UserProfile.objects.create(username='******')
     Review.objects.create(addon=addon, user=user)
     eq_(tasks._get_monolith_jobs()['apps_review_count_new'][0]['count'](),
         1)
Example #23
0
 def test_app_new(self):
     Addon.objects.create(type=amo.ADDON_WEBAPP)
     eq_(tasks._get_monolith_jobs()['apps_count_new'][0]['count'](), 1)
Example #24
0
 def test_app_new(self):
     Webapp.objects.create()
     eq_(tasks._get_monolith_jobs()["apps_count_new"][0]["count"](), 1)
Example #25
0
 def test_user_new(self):
     UserProfile.objects.create(username='******',
                                source=amo.LOGIN_SOURCE_MMO_BROWSERID)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_new'][0]['count'](), 1)
Example #26
0
 def test_app_reviews(self):
     webapp = Webapp.objects.create()
     Review.objects.create(webapp=webapp, user=user_factory(), rating=5)
     eq_(tasks._get_monolith_jobs()['apps_review_count_new'][0]['count'](),
         1)
Example #27
0
 def test_user_new(self):
     UserProfile.objects.create(username="******", source=amo.LOGIN_SOURCE_MMO_BROWSERID)
     eq_(tasks._get_monolith_jobs()["mmo_user_count_new"][0]["count"](), 1)
Example #28
0
 def test_app_new(self):
     Webapp.objects.create()
     eq_(tasks._get_monolith_jobs()['apps_count_new'][0]['count'](), 1)
Example #29
0
 def test_user_new(self):
     user_factory(source=mkt.LOGIN_SOURCE_MMO_BROWSERID)
     eq_(tasks._get_monolith_jobs()['mmo_user_count_new'][0]['count'](), 1)
Example #30
0
 def test_app_reviews(self):
     addon = Addon.objects.create(type=amo.ADDON_WEBAPP)
     user = UserProfile.objects.create(username='******')
     Review.objects.create(addon=addon, user=user)
     eq_(tasks._get_monolith_jobs()['apps_review_count_new'][0]['count'](),
         1)
Example #31
0
 def test_app_new(self):
     Addon.objects.create(type=amo.ADDON_WEBAPP)
     eq_(tasks._get_monolith_jobs()['apps_count_new'][0]['count'](), 1)