def test_asker_replies_arent_a_contribution(self): """Verify that replies posted by the question creator aren't counted. If a user has 10 replies to their own question, they aren't counted as a contributor. """ # A user with 10 answers to own question. q = question(save=True) u = q.creator for x in range(10): answer(creator=u, question=q, save=True) # Create metric kinds and update metrics for tomorrow (today's # activity shows up tomorrow). self._make_contributor_metric_kinds() update_contributor_metrics(day=date.today() + timedelta(days=1)) r = self._get_api_result('kpi_active_contributors') eq_(r['objects'][0]['support_forum'], 0) # Change the question creator, now we should have 1 contributor. q.creator = user(save=True) q.save() cache.clear() # We need to clear the cache for new results. Metric.objects.all().delete() update_contributor_metrics(day=date.today() + timedelta(days=1)) r = self._get_api_result('kpi_active_contributors') eq_(r['objects'][0]['support_forum'], 1)
def test_active_contributors(self): """Test active contributors API call.""" # 2 en-US revisions by 2 contributors: r1 = revision(creator=user(save=True), save=True) r2 = revision(creator=user(save=True), save=True) # A translation with 2 contributors (translator + reviewer): d = document(parent=r1.document, locale='es', save=True) revision(document=d, reviewed=datetime.now(), reviewer=r1.creator, creator=r2.creator, save=True) # 1 active support forum contributor: # A user with 10 answers u1 = user(save=True) for x in range(10): answer(save=True, creator=u1) # A user with 9 answers u2 = user(save=True) for x in range(9): answer(save=True, creator=u2) # A user with 1 answer u3 = user(save=True) answer(save=True, creator=u3) # An AoA reply (1 contributor): reply(save=True) # Create metric kinds and update metrics for tomorrow (today's # activity shows up tomorrow). self._make_contributor_metric_kinds() update_contributor_metrics(day=date.today() + timedelta(days=1)) r = self._get_api_result('kpi_active_contributors') eq_(r['objects'][0]['en_us'], 2) eq_(r['objects'][0]['non_en_us'], 2) eq_(r['objects'][0]['support_forum'], 1) eq_(r['objects'][0]['aoa'], 1)