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")
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)