def top_ten(request): '''Return the 10 domains with the most hits this month. May return fewer than ten, because it won't return domains with zero hits.''' this_month_logs = MonthLog.objects.filter(month=first_of_the_month()) popular_logs = this_month_logs.order_by('-access_count')[:10] domains = [] # this is kind of terrible, but hey, it's only ten items for log in popular_logs: domains.append(log.domain) response = json_serializer.serialize(domains, ensure_ascii=False) return HttpResponse(response)
def test(self): s = Shurl.objects.latest() d = Domain.get_or_create(s.url) m = d.monthlog_set.get(month=first_of_the_month()) old_m = d.monthlog_set.get(month=datetime.date(2012, 3, 1)) self.assertEqual(0, s.access_count) self.assertEqual(0, d.access_count) self.assertEqual(0, m.access_count) url = s.get_url() # re-pull s = Shurl.objects.latest() m = d.monthlog_set.get(month=first_of_the_month()) d = m.domain self.assertEqual(url, s.url) self.assertEqual(1, s.access_count) self.assertEqual(1, m.access_count) self.assertEqual(1, d.access_count) self.assertEqual(0, old_m.access_count)
def setUp(self): d = Domain(domain="http://www.test.com") d.save() s = Shurl(url="http://www.test.com", domain=d) s.save() s.assign_short_suffix() m = MonthLog(domain=d) m.save() past_time = datetime.date(2012, 3, 14) old_m = MonthLog(domain=d, creation_date=past_time, month=first_of_the_month(past_time)) old_m.save()