class SummaryTest(TestCase): def setUp(self): self.user = User(username='******') self.user.save() self.topic = Topic(name='test_topic', ticket_expenses=True, grant=Grant.objects.create(full_name='g', short_name='g', slug='g')) self.topic.save() self.ticket = Ticket(name='foo', requested_user=self.user, topic=self.topic, rating_percentage=50) self.ticket.save() self.ticket.add_acks('content', 'docs', 'archive') self.ticket.expediture_set.create(description='foo', amount=200) self.ticket.expediture_set.create(description='foo', amount=100) self.ticket.mediainfoold_set.create(description='foo', count=5) self.ticket.mediainfo_set.create(name='test.jpg') self.ticket.mediainfo_set.create(name='test2.jpg') self.ticket2 = Ticket(name='foo', requested_user=self.user, topic=self.topic, rating_percentage=100) self.ticket2.save() self.ticket2.add_acks('content', 'docs', 'archive') self.ticket2.expediture_set.create(description='foo', amount=600) self.ticket2.expediture_set.create(description='foo', amount=10) self.ticket2.mediainfoold_set.create(description='foo', count=5) self.ticket2.mediainfoold_set.create(description='foo', count=3) self.ticket2.mediainfo_set.create(name='test.jpg') def test_topic_ticket_counts(self): self.assertEqual({'unpaid': 2}, self.topic.tickets_per_payment_status()) for e in self.ticket.expediture_set.all(): e.paid = True e.save() self.assertEqual({'unpaid': 1, 'paid': 1}, self.topic.tickets_per_payment_status()) def test_topic_ticket_counts2(self): """ change event_date (and thus sort_date) of one ticket, make sure it does not break grouping """ self.ticket.event_date = datetime.date(2016, 1, 1) self.ticket.save() self.assertEqual({'unpaid': 2}, self.topic.tickets_per_payment_status()) def test_ticket_name(self): self.ticket.ticketack_set.filter(ack_type='content').delete() self.ticket.rating_percentage = None self.ticket.save() self.assertEqual(7, self.ticket.media_count()) self.assertEqual({'objects': 1, 'media': 5}, self.ticket.media_old_count()) self.assertEqual({'count': 2, 'amount': 300}, self.ticket.expeditures()) self.assertEqual(0, self.ticket.accepted_expeditures()) self.ticket.rating_percentage = 50 self.ticket.save() self.assertEqual(0, self.ticket.accepted_expeditures()) self.ticket.add_acks('content') self.assertEqual(150, self.ticket.accepted_expeditures()) def test_topic_name(self): self.assertEqual(16, self.topic.media_count()) self.assertEqual({'count': 4, 'amount': 910}, self.topic.expeditures()) self.assertEqual(150 + 610, self.topic.accepted_expeditures()) def test_user_name(self): profile = self.user.trackerprofile self.assertEqual(16, profile.media_count()) self.assertEqual(150 + 610, profile.accepted_expeditures()) def test_topic_finance(self): response = Client().get(reverse('topic_finance')) self.assertEqual(response.status_code, 200)