class TicketSumTests(TestCase): def setUp(self): self.topic = Topic(name='topic', grant=Grant.objects.create(full_name='g', short_name='g')) self.topic.save() def test_empty_ticket(self): empty_ticket = Ticket(topic=self.topic, requested_text='someone', summary='empty ticket') empty_ticket.save() self.assertEqual(0, empty_ticket.media_count()['objects']) self.assertEqual(0, empty_ticket.expeditures()['count']) self.assertEqual(0, self.topic.media_count()['objects']) self.assertEqual(0, self.topic.expeditures()['count']) def test_full_ticket(self): full_ticket = Ticket(topic=self.topic, requested_text='someone', summary='full ticket') full_ticket.save() full_ticket.mediainfo_set.create(description='Vague pictures') full_ticket.mediainfo_set.create(description='Counted pictures', count=15) full_ticket.mediainfo_set.create(description='Even more pictures', count=16) full_ticket.expediture_set.create(description='Some expense', amount=99) full_ticket.expediture_set.create(description='Some other expense', amount=101) self.assertEqual({'objects': 3, 'media': 31}, full_ticket.media_count()) self.assertEqual({'count': 2, 'amount': 200}, full_ticket.expeditures()) self.assertEqual({'objects': 3, 'media': 31}, self.topic.media_count()) self.assertEqual({'count': 2, 'amount': 200}, self.topic.expeditures())
class TicketSumTests(TestCase): def setUp(self): self.topic = Topic(name='topic', grant=Grant.objects.create(full_name='g', short_name='g', slug='g')) self.topic.save() def test_empty_ticket(self): empty_ticket = Ticket(topic=self.topic, requested_text='someone', name='empty ticket') empty_ticket.save() self.assertEqual(0, empty_ticket.media_count()) self.assertEqual(0, empty_ticket.expeditures()['count']) self.assertEqual(0, self.topic.media_count()) self.assertEqual(0, self.topic.expeditures()['count']) def test_full_ticket(self): full_ticket = Ticket(topic=self.topic, requested_text='someone', name='full ticket') full_ticket.save() full_ticket.mediainfoold_set.create(description='Vague pictures') full_ticket.mediainfoold_set.create(description='Counted pictures', count=15) full_ticket.mediainfoold_set.create(description='Even more pictures', count=16) full_ticket.mediainfo_set.create(name='test.jpg') full_ticket.expediture_set.create(description='Some expense', amount=99) full_ticket.expediture_set.create(description='Some other expense', amount=101) self.assertEqual(32, full_ticket.media_count()) self.assertEqual({'count': 2, 'amount': 200}, full_ticket.expeditures()) self.assertEqual(32, self.topic.media_count()) self.assertEqual({'count': 2, 'amount': 200}, self.topic.expeditures())
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')) self.topic.save() self.ticket = Ticket(summary='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.mediainfo_set.create(description='foo', count=5) self.ticket2 = Ticket(summary='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.mediainfo_set.create(description='foo', count=5) self.ticket2.mediainfo_set.create(description='foo', count=3) def test_topic_ticket_counts(self): self.assertEqual({'unpaid':2}, self.topic.tickets_per_payment_status()) trans = Transaction.objects.create(date=datetime.date.today(), other=self.user, amount=150) trans.tickets.add(self.ticket) self.assertEqual({'unpaid':1, 'paid':1}, self.topic.tickets_per_payment_status()) def test_ticket_summary(self): self.ticket.ticketack_set.filter(ack_type='archive').delete() self.ticket.rating_percentage = None self.ticket.save() self.assertEqual({'objects':1, 'media':5}, self.ticket.media_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('archive') self.assertEqual(150, self.ticket.accepted_expeditures()) def test_topic_summary(self): self.assertEqual({'objects':3, 'media':13}, self.topic.media_count()) self.assertEqual({'count':4, 'amount':910}, self.topic.expeditures()) self.assertEqual(150 + 610, self.topic.accepted_expeditures()) def test_user_summary(self): profile = self.user.get_profile() self.assertEqual({'objects':3, 'media':13}, profile.media_count()) self.assertEqual(150 + 610, profile.accepted_expeditures()) self.assertEqual({'count':0, 'amount':None}, profile.transactions()) def test_transaction_summary(self): def add_trans(amount): self.user.transaction_set.create(date=datetime.date.today(), amount=amount, description='foo') add_trans(500) self.assertEqual({'count':1, 'amount':500}, self.user.get_profile().transactions())
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)