Пример #1
0
    def test_delete_account(self):
        with self.Login(self, 'MrTest', r'123123'):
            # Adding the account first so that we can test deleting it.
            self.account1 = Account(code="M123456789", name="Test account", created_by_id=self.mrtest.pk)
            self.account1.save()

            kwargs = {'pk': self.account1.code}
            post_data = {'delete': 'delete'}

            response = self.client.get(reverse('pannel-account-delete', kwargs=kwargs))
            import code
            code.interact(local=locals())


            self.assertEqual(response.status_code, 200,
                             msg="Status code %s != 200: Unable to GET account delete page." %
                                 response.status_code)

            response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

            i = len(Account.objects.all())
            self.assertEqual(i, 1, msg="Wrong number of accounts (%s != 6) " % i +
                                       "after non-confirmed deletion")

            post_data.update({'confirmed': 'confirmed'})
            response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

            i = len(Account.objects.all())
            self.assertEqual(i, 0, msg="Wrong number of accounts (%s != 5) " % i +
                                       "after confirmed deletion")
Пример #2
0
class PannelViewsTest(BasePannelTest):

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_add_upload(self):
        with self.Login(self, 'MrTest', r'123123'):
            response = self.get('pannel-monthly-add')
            self.assertEqual(response.status_code, 200)

            form = response.context['form']
            self.assertIsNotNone(form)

            self.assertNotEqual(Upload.objects.all(), [])

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_upload_views(self):
        responses = []
        responses += [self.client.get(reverse('pannel-upload-list')),]
        responses += [self.client.get(reverse('pannel-upload-add')),]

        result = [False for r in responses if r.status_code != 200]
        self.assertEqual(len(result), 0, msg='You had a total of %s bad responses.' % len(result))

    def test_add_account_form(self):
        self.group1 = DDF.G(AccountGroup, name="Test Group")
        form_data = {'code': 'M000000009', 'name': 'Test Account',
                     'cons_index': '0.3'}
        from pannel.forms import AccountForm
        form = AccountForm(form_data)

        self.assertEqual(form.errors, {})
        self.assertEqual(form.is_valid(), True)
        obj = form.save(commit=False)

        obj.created_by = self.mrtest
        obj.edited_by = self.mrtest

        obj.group = self.group1
        obj.save()

        account = Account.objects.get(code=form_data['code'])
        self.assertIsNotNone(account)

    def test_add_account_view(self):
        with self.Login(self, 'MrTest', r'123123'):
            response = self.client.get(reverse('pannel-account-add'))
            self.assertEqual(response.status_code, 200,
                             msg="Unable to GET account add.")

            response = self.client.post(
                    reverse('pannel-account-add'), {'code': 'M000000009',
                                                    'name': 'Test Account',
                                                    'cons_index': '0.3'})

            self.assertEqual(response.status_code, 302,
                             msg="Unable to redirect after POST account add.")

            self.assertIsNotNone(Account.objects.get(pk='M000000009'),
                                 msg="The add account view is redirecting OK, " +
                                      "but not really adding the account to the database")

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_bad_add_account(self):
        with self.Login(self, 'MrTest', r'123123'):
            response = self.post('pannel-account-add',
                    **{'code': 'M0000000010', 'name': ''})

            self.assertNotEqual(response.status_code, 302,
                                msg="Bad POST account add is wrongly redirecting.")

            try:
                Account.objects.get(pk='M0000000010')
            except ObjectDoesNotExist:
                pass
            else:
                self.assertIsNone(True,
                                  msg="Account with 10-char code should not have been created.")

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_list_account(self):
        with self.Login(self, 'MrTest', r'123123'):
            response = self.client.get(reverse('pannel-account-list'))
            self.assertEqual(response.status_code, 200,
                             msg="Unable to list accounts.")

            # check if we have 6 accounts as the defined in the fixture
            self.assertEqual(len(Account.objects.all()), 6)

            # grab a couple to get deleted
            to_delete = Account.objects.all()[:2].values_list('pk', flat=True)

            # try deleting them without confirmation (usually a context variable)
            response = self.client.post(reverse('pannel-account-list'),
                                        {'delete': 'delete',
                                         'object-checkbox': to_delete})

            self.assertEqual(len(Account.objects.all()), 6,
                             msg="Wrong number of accounts after non-confirmed " +
                                 "deletion")

            # now add confirmation
            response = self.client.post(reverse('pannel-account-list'),
                                        {'delete': 'delete',
                                         'confirmed': True,
                                         'object-checkbox': to_delete})

            self.assertEqual(len(Account.objects.all()), 4,
                             msg="Wrong number of accounts after confirmed " +
                                 "deletion")

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_delete_account(self):
        with self.Login(self, 'MrTest', r'123123'):
            # Adding the account first so that we can test deleting it.
            self.account1 = Account(code="M123456789", name="Test account", created_by_id=self.mrtest.pk)
            self.account1.save()

            kwargs = {'pk': self.account1.code}
            post_data = {'delete': 'delete'}

            response = self.client.get(reverse('pannel-account-delete', kwargs=kwargs))
            import code
            code.interact(local=locals())


            self.assertEqual(response.status_code, 200,
                             msg="Status code %s != 200: Unable to GET account delete page." %
                                 response.status_code)

            response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

            i = len(Account.objects.all())
            self.assertEqual(i, 1, msg="Wrong number of accounts (%s != 6) " % i +
                                       "after non-confirmed deletion")

            post_data.update({'confirmed': 'confirmed'})
            response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

            i = len(Account.objects.all())
            self.assertEqual(i, 0, msg="Wrong number of accounts (%s != 5) " % i +
                                       "after confirmed deletion")

    @skipIf(SKIP_TESTS, 'Skipping test.')
    def test_reactivate_account(self):
        args = ('pannel-account-delete',)
        kwargs = {'pk': 'N211021084'}
        post_data = {'delete': 'delete'}

        account = Account.objects.filter(**kwargs)[0]
        account.status = 0
        account.save()

        response = self.client.get(reverse(*args, kwargs=kwargs))

        self.assertEqual(response.status_code, 200,
                         msg="%s: Unable to GET inactive account delete page." %
                             response.status_code)

        response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

        i = len(Account.inactive.all())
        self.assertEqual(i, 1, msg="Wrong number of accounts (%s != 1) " % i +
                                   "after non-confirmed deletion")

        post_data.update({'confirmed': 'confirmed'})
        response = self.client.post(reverse(*args, kwargs=kwargs), post_data)

        i = len(Account.inactive.all())
        self.assertEqual(i, 0, msg="Wrong number of accounts (%s != 0) " % i +
                                   "after confirmed deletion")

    @skipIf(True, 'test skipped')
    def test_monthly_json_data(self):
        monthly = Monthly.objects.all()[0]
        data, layouts = [], {}

        for l in monthly.layout.all():
        # get the tree of account groups
            tree = AccountGroup.tree.root_nodes().filter(layout__pk=l.pk)
            groups = {}
            for group in tree:
                groups.update({group.pk: group.serialized})

            layouts.update({l.pk: {'groups': groups}})

    @skipIf(True, 'test skipped')
    def test_huge_aggregate_query(self):
        g = Entry.objects.all()[0].account.group
        qs = g.accounts.values('code')\
            .annotate(entry_sum=Sum('entry__value'))\
            .exclude(entry_sum=None)\
            .order_by('entry__date')\
            .values('code', 'entry__date', 'entry_sum')

        for i in qs:
            print i

        self.assertEqual(True, True)