def test_caching_helpful(self): """Cron should ignore the helpful articles.""" r = _make_backdated_revision(90) for x in range(0, 3): _add_vote_in_past(r, 1, 3) for x in range(0, 2): _add_vote_in_past(r, 0, 3) cache_most_unhelpful_kb_articles() eq_(0, self.redis.llen(self.REDIS_KEY))
def test_caching_unhelpful(self): """Cron should get the unhelpful articles.""" r = _make_backdated_revision(90) for x in range(0, 3): _add_vote_in_past(r, 0, 3) for x in range(0, 2): _add_vote_in_past(r, 1, 3) cache_most_unhelpful_kb_articles() eq_(1, self.redis.llen(self.REDIS_KEY)) result = self.redis.lrange(self.REDIS_KEY, 0, 1) eq_(u'%d::%.1f::%.1f::%.1f::%.1f::%s::%s' % (r.id, 5.0, 0.4, 0.0, 0.0, r.document.slug, r.document.title), result[0].decode('utf-8'))
def test_caching_unhelpful(self): """Cron should get the unhelpful articles.""" r = _make_backdated_revision(90) for x in range(0, 3): _add_vote_in_past(r, 0, 15) for x in range(0, 2): _add_vote_in_past(r, 1, 15) cache_most_unhelpful_kb_articles() eq_(1, self.redis.llen(self.REDIS_KEY)) result = self.redis.lrange(self.REDIS_KEY, 0, 1) eq_(u'%d::%.1f::%.1f::%.1f::%.1f::%s::%s' % (r.id, 5.0, 0.4, 0.0, 0.0, r.document.slug, r.document.title), result[0].decode('utf-8'))
def test_response_data(self): r = revision(save=True) r.created = r.created - timedelta(days=90) r.save() for x in range(0, 4): _add_vote_in_past(r, 0, 15) cache_most_unhelpful_kb_articles() response = self.client.get( reverse('dashboards.get_helpful_graph_async', locale='en-US')) eq_(200, response.status_code) result = json.loads(response.content) eq_(1, len(result['data'][0]['data'])) eq_(r.document.title, result['data'][0]['data'][0]['title']) eq_(0.0, result['data'][0]['data'][0]['colorsize']) eq_('0.00', result['data'][0]['data'][0]['currperc'])
def test_response_data(self): r = revision(save=True) r.created = r.created - timedelta(days=90) r.save() for x in range(0, 4): _add_vote_in_past(r, 0, 3) cache_most_unhelpful_kb_articles() response = self.client.get( reverse('dashboards.get_helpful_graph_async', locale='en-US')) eq_(200, response.status_code) result = json.loads(response.content) eq_(1, len(result['data'][0]['data'])) eq_(r.document.title, result['data'][0]['data'][0]['title']) eq_(0.0, result['data'][0]['data'][0]['colorsize']) eq_('0.00', result['data'][0]['data'][0]['currperc'])
def test_caching_changed_helpfulness(self): """Changed helpfulness should be calculated correctly.""" r = _make_backdated_revision(90) for x in range(0, 4): _add_vote_in_past(r, 0, 10) for x in range(0, 1): _add_vote_in_past(r, 1, 10) for x in range(0, 3): _add_vote_in_past(r, 0, 3) for x in range(0, 2): _add_vote_in_past(r, 1, 3) cache_most_unhelpful_kb_articles() eq_(1, self.redis.llen(self.REDIS_KEY)) result = self.redis.lrange(self.REDIS_KEY, 0, 1) eq_(u'%d::%.1f::%.1f::%.1f::%.1f::%s::%s' % (r.id, 5.0, 0.4, 0.2, 0.0, r.document.slug, r.document.title), result[0].decode('utf-8'))
def test_caching_changed_helpfulness(self): """Changed helpfulness should be calculated correctly.""" r = _make_backdated_revision(90) for x in range(0, 4): _add_vote_in_past(r, 0, 45) for x in range(0, 1): _add_vote_in_past(r, 1, 45) for x in range(0, 3): _add_vote_in_past(r, 0, 15) for x in range(0, 2): _add_vote_in_past(r, 1, 15) cache_most_unhelpful_kb_articles() eq_(1, self.redis.llen(self.REDIS_KEY)) result = self.redis.lrange(self.REDIS_KEY, 0, 1) eq_(u'%d::%.1f::%.1f::%.1f::%.1f::%s::%s' % (r.id, 5.0, 0.4, 0.2, 0.0, r.document.slug, r.document.title), result[0].decode('utf-8'))
def test_caching_sorting(self): """Tests if Bayesian Average sorting works correctly.""" # This should be at the bottom. r = _make_backdated_revision(90) for x in range(0, 26): _add_vote_in_past(r, 1, 3) for x in range(0, 76): _add_vote_in_past(r, 0, 3) # This should be at the top. r2 = _make_backdated_revision(90) for x in range(0, 61): _add_vote_in_past(r2, 1, 3) for x in range(0, 181): _add_vote_in_past(r2, 0, 3) # This should be in the middle. r3 = _make_backdated_revision(90) for x in range(0, 31): _add_vote_in_past(r3, 1, 3) for x in range(0, 91): _add_vote_in_past(r3, 0, 3) cache_most_unhelpful_kb_articles() eq_(3, self.redis.llen(self.REDIS_KEY)) result = self.redis.lrange(self.REDIS_KEY, 0, 3) assert '%d::%.1f:' % (r2.id, 242.0) in result[0] assert '%d::%.1f:' % (r3.id, 122.0) in result[1] assert '%d::%.1f:' % (r.id, 102.0) in result[2]
def test_no_articles(self): """Full cron with no articles returns no unhelpful articles.""" cache_most_unhelpful_kb_articles() eq_(0, self.redis.llen(self.REDIS_KEY))