Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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())
Exemplo n.º 6
0
    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())