class GroupTestCase(unittest.TestCase): def setUp(self): self.users = [ User(username="******"), User(username="******"), User(username="******"), ] for user in self.users: user.save() self.group = Group(name="Group 1", slug="group1") self.group.save() self.accounts = [ # Normal user account Account( name="Account 1", slug="account1", group=self.group, owner=self.users[0], ), # Normal user account Account( name="Account 2", slug="account2", group=self.group, owner=self.users[1], ), # Inactive user account Account( name="Account 3", slug="account3", group=self.group, owner=self.users[2], active=False, ), # Group account Account( name="Account 4", slug="account4", group=self.group, type=Account.ASSET_ACCOUNT, group_account=True, ), # Inactive group account Account( name="Account 5", slug="account5", group=self.group, type=Account.ASSET_ACCOUNT, active=False, group_account=True, ), # Bank account self.group.roleaccount_set.get(role=RoleAccount.BANK_ACCOUNT ).account, # Cash account self.group.roleaccount_set.get(role=RoleAccount.CASH_ACCOUNT ).account, ] for account in self.accounts: account.save() self.transactions = { "Pen": Transaction(group=self.group), "Com": Transaction(group=self.group), "Rej": Transaction(group=self.group), } for transaction in self.transactions.values(): transaction.save() transaction.entry_set.create(account=self.accounts[0], credit=100) transaction.entry_set.create(account=self.accounts[1], debit=100) transaction.set_pending(user=self.users[0]) self.transactions["Undef"] = Transaction(group=self.group) self.transactions["Undef"].save() self.transactions["Com"].set_committed(user=self.users[1]) self.transactions["Rej"].set_rejected(user=self.users[1]) def tearDown(self): for transaction in self.transactions.values(): transaction.delete() for account in self.accounts: account.delete() self.group.delete() for user in self.users: user.delete() def testUnicode(self): """Checks that __str__() returns group name""" assert str(self.group) == self.group.name def testAbsoluteUrl(self): """Checks that get_absolute_url() contains group slug""" assert self.group.slug in self.group.get_absolute_url() def testEmptySlugRaisesError(self): """Checks that saving a group without a slug results in a ValueError""" self.group.slug = "" with pytest.raises(ValueError): self.group.save() def testGetAccountNumberDisplay(self): """Check that account numbers are formated correctly.""" self.group.account_number = "12345678901" assert "1234.56.78901" == self.group.get_account_number_display() def testUserAccountSet(self): """Checks that get_user_account_set returns all user accounts""" set = self.group.get_user_account_set() assert set.count() == 3 assert self.accounts[0] in set assert self.accounts[1] in set assert self.accounts[2] in set assert self.accounts[3] not in set assert self.accounts[4] not in set assert self.accounts[5] not in set assert self.accounts[6] not in set def testGroupAccountSet(self): """Checks that get_group_account_set returns all group accounts""" set = self.group.get_group_account_set() assert set.count() == 4 assert self.accounts[0] not in set assert self.accounts[1] not in set assert self.accounts[2] not in set assert self.accounts[3] in set assert self.accounts[4] in set assert self.accounts[5] in set assert self.accounts[6] in set # --- Transaction set tests # Please keep in sync with Account's set tests def testTransactionSet(self): """Checks that transaction_set returns all transactions that is not rejected""" set = self.group.transaction_set assert set.count() == 2 assert self.transactions["Pen"] in set assert self.transactions["Com"] in set assert self.transactions["Rej"] not in set def testTransactionSetWithRejected(self): """Checks that transaction_set_with_rejected returns all transactions""" set = self.group.transaction_set_with_rejected assert set.count() == 3 assert self.transactions["Pen"] in set assert self.transactions["Com"] in set assert self.transactions["Rej"] in set def testPendingTransactionSet(self): """Checks that pending_transaction_set returns all pending transactions""" set = self.group.pending_transaction_set assert set.count() == 1 assert self.transactions["Pen"] in set assert self.transactions["Com"] not in set assert self.transactions["Rej"] not in set def testCommittedTransactionSet(self): """Checks that committed_transaction_set returns all committed transactions that are not rejected""" set = self.group.committed_transaction_set assert set.count() == 1 assert self.transactions["Pen"] not in set assert self.transactions["Com"] in set assert self.transactions["Rej"] not in set def testRejectedTransactionSet(self): """Checks that rejected_transaction_set returns all rejected transactions""" set = self.group.rejected_transaction_set assert set.count() == 1 assert self.transactions["Pen"] not in set assert self.transactions["Com"] not in set assert self.transactions["Rej"] in set
class GroupTestCase(unittest.TestCase): def setUp(self): self.users = [ User(username='******'), User(username='******'), User(username='******'), ] for user in self.users: user.save() self.group = Group(name='Group 1', slug='group1') self.group.save() self.accounts = [ # Normal user account Account(name='Account 1', slug='account1', group=self.group, owner=self.users[0]), # Normal user account Account(name='Account 2', slug='account2', group=self.group, owner=self.users[1]), # Inactive user account Account(name='Account 3', slug='account3', group=self.group, owner=self.users[2], active=False), # Group account Account(name='Account 4', slug='account4', group=self.group, type=Account.ASSET_ACCOUNT, group_account=True), # Inactive group account Account(name='Account 5', slug='account5', group=self.group, type=Account.ASSET_ACCOUNT, active=False, group_account=True), # Bank account self.group.roleaccount_set.get(role=RoleAccount.BANK_ACCOUNT ).account, # Cash account self.group.roleaccount_set.get(role=RoleAccount.CASH_ACCOUNT ).account, ] for account in self.accounts: account.save() self.transactions = { 'Pen': Transaction(group=self.group), 'Com': Transaction(group=self.group), 'Rej': Transaction(group=self.group), } for transaction in self.transactions.values(): transaction.save() transaction.entry_set.add( TransactionEntry(account=self.accounts[0], credit=100)) transaction.entry_set.add( TransactionEntry(account=self.accounts[1], debit=100)) transaction.set_pending(user=self.users[0]) self.transactions['Undef'] = Transaction(group=self.group) self.transactions['Undef'].save() self.transactions['Com'].set_committed(user=self.users[1]) self.transactions['Rej'].set_rejected(user=self.users[1]) def tearDown(self): for transaction in self.transactions.values(): transaction.delete() for account in self.accounts: account.delete() self.group.delete() for user in self.users: user.delete() def testUnicode(self): """Checks that __unicode__() returns group name""" self.assertEquals(self.group.name, self.group.__unicode__()) def testAbsoluteUrl(self): """Checks that get_absolute_url() contains group slug""" self.assert_(self.group.slug in self.group.get_absolute_url()) def testEmptySlugRaisesError(self): """Checks that saving a group without a slug results in a ValueError""" self.group.slug = '' with self.assertRaises(ValueError): self.group.save() def testGetAccountNumberDisplay(self): """Check that account numbers are formated correctly.""" self.group.account_number = '12345678901' self.assertEqual('1234.56.78901', self.group.get_account_number_display()) def testUserAccountSet(self): """Checks that get_user_account_set returns all user accounts""" set = self.group.get_user_account_set() self.assertEqual(set.count(), 3) self.assert_(self.accounts[0] in set) self.assert_(self.accounts[1] in set) self.assert_(self.accounts[2] in set) self.assert_(self.accounts[3] not in set) self.assert_(self.accounts[4] not in set) self.assert_(self.accounts[5] not in set) self.assert_(self.accounts[6] not in set) def testGroupAccountSet(self): """Checks that get_group_account_set returns all group accounts""" set = self.group.get_group_account_set() self.assertEqual(set.count(), 4) self.assert_(self.accounts[0] not in set) self.assert_(self.accounts[1] not in set) self.assert_(self.accounts[2] not in set) self.assert_(self.accounts[3] in set) self.assert_(self.accounts[4] in set) self.assert_(self.accounts[5] in set) self.assert_(self.accounts[6] in set) # --- Transaction set tests # Please keep in sync with Account's set tests def testTransactionSet(self): """Checks that transaction_set returns all transactions that is not rejected""" set = self.group.transaction_set self.assertEqual(set.count(), 2) self.assert_(self.transactions['Pen'] in set) self.assert_(self.transactions['Com'] in set) self.assert_(self.transactions['Rej'] not in set) def testTransactionSetWithRejected(self): """Checks that transaction_set_with_rejected returns all transactions""" set = self.group.transaction_set_with_rejected self.assertEqual(set.count(), 3) self.assert_(self.transactions['Pen'] in set) self.assert_(self.transactions['Com'] in set) self.assert_(self.transactions['Rej'] in set) def testPendingTransactionSet(self): """Checks that pending_transaction_set returns all pending transactions""" set = self.group.pending_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions['Pen'] in set) self.assert_(self.transactions['Com'] not in set) self.assert_(self.transactions['Rej'] not in set) def testCommittedTransactionSet(self): """Checks that committed_transaction_set returns all committed transactions that are not rejected""" set = self.group.committed_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions['Pen'] not in set) self.assert_(self.transactions['Com'] in set) self.assert_(self.transactions['Rej'] not in set) def testRejectedTransactionSet(self): """Checks that rejected_transaction_set returns all rejected transactions""" set = self.group.rejected_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions['Pen'] not in set) self.assert_(self.transactions['Com'] not in set) self.assert_(self.transactions['Rej'] in set)
class GroupTestCase(unittest.TestCase): def setUp(self): self.users = [User(username="******"), User(username="******"), User(username="******")] for user in self.users: user.save() self.group = Group(name="Group 1", slug="group1") self.group.save() self.accounts = [ # Normal user account Account(name="Account 1", slug="account1", group=self.group, owner=self.users[0]), # Normal user account Account(name="Account 2", slug="account2", group=self.group, owner=self.users[1]), # Inactive user account Account(name="Account 3", slug="account3", group=self.group, owner=self.users[2], active=False), # Group account Account( name="Account 4", slug="account4", group=self.group, type=Account.ASSET_ACCOUNT, group_account=True ), # Inactive group account Account( name="Account 5", slug="account5", group=self.group, type=Account.ASSET_ACCOUNT, active=False, group_account=True, ), # Bank account self.group.roleaccount_set.get(role=RoleAccount.BANK_ACCOUNT).account, # Cash account self.group.roleaccount_set.get(role=RoleAccount.CASH_ACCOUNT).account, ] for account in self.accounts: account.save() self.transactions = { "Pen": Transaction(group=self.group), "Com": Transaction(group=self.group), "Rej": Transaction(group=self.group), } for transaction in self.transactions.values(): transaction.save() transaction.entry_set.add(TransactionEntry(account=self.accounts[0], credit=100)) transaction.entry_set.add(TransactionEntry(account=self.accounts[1], debit=100)) transaction.set_pending(user=self.users[0]) self.transactions["Undef"] = Transaction(group=self.group) self.transactions["Undef"].save() self.transactions["Com"].set_committed(user=self.users[1]) self.transactions["Rej"].set_rejected(user=self.users[1]) def tearDown(self): for transaction in self.transactions.values(): transaction.delete() for account in self.accounts: account.delete() self.group.delete() for user in self.users: user.delete() def testUnicode(self): """Checks that __unicode__() returns group name""" self.assertEquals(self.group.name, self.group.__unicode__()) def testAbsoluteUrl(self): """Checks that get_absolute_url() contains group slug""" self.assert_(self.group.slug in self.group.get_absolute_url()) def testEmptySlugRaisesError(self): """Checks that saving a group without a slug results in a ValueError""" self.group.slug = "" with self.assertRaises(ValueError): self.group.save() def testGetAccountNumberDisplay(self): """Check that account numbers are formated correctly.""" self.group.account_number = "12345678901" self.assertEqual("1234.56.78901", self.group.get_account_number_display()) def testUserAccountSet(self): """Checks that get_user_account_set returns all user accounts""" set = self.group.get_user_account_set() self.assertEqual(set.count(), 3) self.assert_(self.accounts[0] in set) self.assert_(self.accounts[1] in set) self.assert_(self.accounts[2] in set) self.assert_(self.accounts[3] not in set) self.assert_(self.accounts[4] not in set) self.assert_(self.accounts[5] not in set) self.assert_(self.accounts[6] not in set) def testGroupAccountSet(self): """Checks that get_group_account_set returns all group accounts""" set = self.group.get_group_account_set() self.assertEqual(set.count(), 4) self.assert_(self.accounts[0] not in set) self.assert_(self.accounts[1] not in set) self.assert_(self.accounts[2] not in set) self.assert_(self.accounts[3] in set) self.assert_(self.accounts[4] in set) self.assert_(self.accounts[5] in set) self.assert_(self.accounts[6] in set) # --- Transaction set tests # Please keep in sync with Account's set tests def testTransactionSet(self): """Checks that transaction_set returns all transactions that is not rejected""" set = self.group.transaction_set self.assertEqual(set.count(), 2) self.assert_(self.transactions["Pen"] in set) self.assert_(self.transactions["Com"] in set) self.assert_(self.transactions["Rej"] not in set) def testTransactionSetWithRejected(self): """Checks that transaction_set_with_rejected returns all transactions""" set = self.group.transaction_set_with_rejected self.assertEqual(set.count(), 3) self.assert_(self.transactions["Pen"] in set) self.assert_(self.transactions["Com"] in set) self.assert_(self.transactions["Rej"] in set) def testPendingTransactionSet(self): """Checks that pending_transaction_set returns all pending transactions""" set = self.group.pending_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions["Pen"] in set) self.assert_(self.transactions["Com"] not in set) self.assert_(self.transactions["Rej"] not in set) def testCommittedTransactionSet(self): """Checks that committed_transaction_set returns all committed transactions that are not rejected""" set = self.group.committed_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions["Pen"] not in set) self.assert_(self.transactions["Com"] in set) self.assert_(self.transactions["Rej"] not in set) def testRejectedTransactionSet(self): """Checks that rejected_transaction_set returns all rejected transactions""" set = self.group.rejected_transaction_set self.assertEqual(set.count(), 1) self.assert_(self.transactions["Pen"] not in set) self.assert_(self.transactions["Com"] not in set) self.assert_(self.transactions["Rej"] in set)