Esempio n. 1
0
    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))
Esempio n. 2
0
    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))
Esempio n. 3
0
    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'))
Esempio n. 4
0
    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'))
Esempio n. 5
0
    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'])
Esempio n. 6
0
    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'])
Esempio n. 7
0
    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'))
Esempio n. 8
0
    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'))
Esempio n. 9
0
    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]
Esempio n. 10
0
    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]
Esempio n. 11
0
 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))
Esempio n. 12
0
 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))