def test_update_active_contributor_metrics(self): """Test the cron job that updates active contributor metrics.""" day = date(2013, 07, 31) last_month = date(2013, 06, 15) start_date = date(2013, 06, 1) before_start = date(2013, 05, 31) # Create some revisions to test with: # 3 'en-US' contributors: d = document(locale='en-US', save=True) u = user(save=True) revision(document=d, creator=user(save=True), created=last_month, is_approved=True, reviewer=u, save=True) revision(document=d, creator=u, created=last_month, save=True) p = product(save=True) r = revision(creator=user(save=True), created=start_date, save=True) r.document.products.add(p) # Add two that shouldn't count: revision(document=d, creator=user(save=True), created=before_start, save=True) revision(document=d, creator=user(save=True), created=day, save=True) # 4 'es' contributors: d = document(locale='es', save=True) revision(document=d, creator=user(save=True), created=last_month, is_approved=True, reviewer=u, save=True) revision(document=d, creator=u, created=last_month, reviewer=user(save=True), save=True) revision(document=d, creator=user(save=True), created=start_date, save=True) revision(document=d, creator=user(save=True), created=last_month, save=True) # Add two that shouldn't count: revision(document=d, creator=user(save=True), created=before_start, save=True) revision(document=d, creator=user(save=True), created=day, save=True) # Call the cron job. update_l10n_contributor_metrics(day) eq_(3.0, WikiMetric.objects.get( locale='en-US', product=None, date=start_date).value) eq_(1.0, WikiMetric.objects.get( locale='en-US', product=p, date=start_date).value) eq_(4.0, WikiMetric.objects.get( locale='es', product=None, date=start_date).value) eq_(0.0, WikiMetric.objects.get( locale='es', product=p, date=start_date).value)
def run(): # Run for every first of every month for the past year. today = date.today() current_year = today.year current_month = today.month year = current_year - 1 month = current_month while year < current_year or month <= current_month: day = date(year, month, 1) update_l10n_contributor_metrics(day) month += 1 if month > 12: month = 1 year += 1
def test_update_active_contributor_metrics(self): """Test the cron job that updates active contributor metrics.""" day = date(2013, 7, 31) last_month = date(2013, 6, 15) start_date = date(2013, 6, 1) before_start = date(2013, 5, 31) # Create some revisions to test with: # 3 'en-US' contributors: d = DocumentFactory(locale='en-US') u = UserFactory() RevisionFactory(document=d, created=last_month, is_approved=True, reviewer=u) RevisionFactory(document=d, creator=u, created=last_month) p = ProductFactory(visible=True) RevisionFactory(created=start_date, document__products=[p]) # Add two that shouldn't count: RevisionFactory(document=d, created=before_start) RevisionFactory(document=d, created=day) # 4 'es' contributors: d = DocumentFactory(locale='es') RevisionFactory(document=d, created=last_month, is_approved=True, reviewer=u) RevisionFactory(document=d, creator=u, created=last_month, reviewer=UserFactory()) RevisionFactory(document=d, created=start_date) RevisionFactory(document=d, created=last_month) # Add two that shouldn't count: RevisionFactory(document=d, created=before_start) RevisionFactory(document=d, created=day) # Call the cron job. update_l10n_contributor_metrics(day) eq_(3.0, WikiMetric.objects.get(locale='en-US', product=None, date=start_date).value) eq_(1.0, WikiMetric.objects.get(locale='en-US', product=p, date=start_date).value) eq_(4.0, WikiMetric.objects.get(locale='es', product=None, date=start_date).value) eq_(0.0, WikiMetric.objects.get(locale='es', product=p, date=start_date).value)
def test_update_active_contributor_metrics(self): """Test the cron job that updates active contributor metrics.""" day = date(2013, 7, 31) last_month = date(2013, 6, 15) start_date = date(2013, 6, 1) before_start = date(2013, 5, 31) # Create some revisions to test with: # 3 'en-US' contributors: d = DocumentFactory(locale='en-US') u = UserFactory() RevisionFactory(document=d, created=last_month, is_approved=True, reviewer=u) RevisionFactory(document=d, creator=u, created=last_month) p = ProductFactory(visible=True) RevisionFactory(created=start_date, document__products=[p]) # Add two that shouldn't count: RevisionFactory(document=d, created=before_start) RevisionFactory(document=d, created=day) # 4 'es' contributors: d = DocumentFactory(locale='es') RevisionFactory(document=d, created=last_month, is_approved=True, reviewer=u) RevisionFactory(document=d, creator=u, created=last_month, reviewer=UserFactory()) RevisionFactory(document=d, created=start_date) RevisionFactory(document=d, created=last_month) # Add two that shouldn't count: RevisionFactory(document=d, created=before_start) RevisionFactory(document=d, created=day) # Call the cron job. update_l10n_contributor_metrics(day) eq_( 3.0, WikiMetric.objects.get(locale='en-US', product=None, date=start_date).value) eq_( 1.0, WikiMetric.objects.get(locale='en-US', product=p, date=start_date).value) eq_( 4.0, WikiMetric.objects.get(locale='es', product=None, date=start_date).value) eq_( 0.0, WikiMetric.objects.get(locale='es', product=p, date=start_date).value)