def test_statistics_remove(self): id1 = 'persons-contacts' id2 = 'persons-organisations' id3 = 'creme_core-images' registry = _StatisticsRegistry().register( id1, 'Contacts', lambda: [FakeContact.objects.count()], priority=3, ).register( id2, 'Organisations', lambda: [FakeOrganisation.objects.count()], priority=6, ).register( id3, 'Images', lambda: [FakeImage.objects.count()], priority=9, ) registry.remove('invalid_id', id3, id1) stats = [*registry] self.assertEqual(1, len(stats)) self.assertEqual(id2, stats[0].id)
def test_statistics_changepriority(self): id1 = 'persons-contacts' id2 = 'persons-organisations' id3 = 'creme_core-images' registry = _StatisticsRegistry().register( id1, 'Contacts', lambda: [FakeContact.objects.count()], priority=3, ).register( id2, 'Organisations', lambda: [FakeOrganisation.objects.count()], priority=6, ).register( id3, 'Images', lambda: [FakeImage.objects.count()], priority=9, ) registry.change_priority(1, id2, id3) stats = [*registry] self.assertEqual(id2, stats[0].id) self.assertEqual(id3, stats[1].id) self.assertEqual(id1, stats[2].id)
def test_statistics03(self): "Priority None/not None" id1 = 'persons-contacts' id2 = 'persons-organisations' id3 = 'creme_core-images' id4 = 'billing-invoices' id5 = 'emails-campaigns' registry = _StatisticsRegistry().register( id1, 'Contacts', lambda: [FakeContact.objects.count()]).register( id2, 'Organisations', lambda: [FakeOrganisation.objects.count()], priority=3).register( id3, 'Images', lambda: [FakeImage.objects.count()], priority=2).register( id4, 'Invoices', lambda: [FakeInvoice.objects.count()]).register( id5, 'Campaigns', lambda: [FakeInvoice.objects.count()], priority=0) stats = [*registry] self.assertEqual(id5, stats[0].id) self.assertEqual(id1, stats[1].id) self.assertEqual(id3, stats[2].id) self.assertEqual(id2, stats[3].id) self.assertEqual(id4, stats[4].id)
def test_statistics02(self): "Priority." id1 = 'persons-contacts' perm = 'creme_core' id2 = 'persons-organisations' id3 = 'creme_core-images' registry = _StatisticsRegistry().register( id1, 'Contacts', lambda: [FakeContact.objects.count()], priority=2, perm=perm, ).register( id2, 'Organisations', lambda: [FakeOrganisation.objects.count()], priority=1, ).register( id3, 'Images', lambda: [FakeImage.objects.count()], priority=3, ) stats = [*registry] self.assertEqual(id2, stats[0].id) self.assertEqual(id1, stats[1].id) self.assertEqual(id3, stats[2].id) self.assertEqual(perm, stats[1].perm)
def test_statistics04(self): "Duplicated ID" id1 = 'persons-contacts' id2 = 'persons-organisations' registry = _StatisticsRegistry() \ .register(id1, 'Contacts', lambda: [FakeContact.objects.count()], priority=2) \ .register(id2, 'Organisations', lambda: [FakeOrganisation.objects.count()], priority=1) \ with self.assertRaises(ValueError): registry.register(id1, 'Images', lambda: FakeImage.objects.count())
def test_statistics01(self): user = self.login() registry = _StatisticsRegistry() s_id = 'persons-contacts' label = 'Contacts' fmt = 'There are {} Contacts'.format registry.register(s_id, label, lambda: [fmt(FakeContact.objects.count())]) stats = list(registry) self.assertEqual(1, len(stats)) stat = stats[0] self.assertEqual(s_id, stat.id) self.assertEqual(label, stat.label) self.assertEqual([fmt(FakeContact.objects.count())], stat.retrieve()) self.assertEqual('', stat.perm) FakeContact.objects.create(user=user, first_name='Koyomi', last_name='Araragi') self.assertEqual([fmt(FakeContact.objects.count())], stat.retrieve())