from test_imports import * class ActivityTest(unittest.TestCase): def setUp(self): self.activity = Activity() self.account_a = Account('a','USD') self.account_b = Account('b','USD') def test_is_balanced(self): self.assert_(self.activity.is_balanced()) def test_is_empty(self): self.assert_(self.activity.is_empty()) self.activity.add_posting(Account('a', 'USD'), 123) self.assert_(not self.activity.is_empty()) def test_is_balanced_only_when_numbers_match(self): self.activity.add_posting(Account('a', 'USD'), 123) self.assert_(not self.activity.is_balanced()) self.activity.add_posting(Account('b', 'USD'), -123) self.assert_(self.activity.is_balanced()) def test_is_balanced_when_sums_match(self): self.activity.add_posting(Account('a', 'USD'), 123) self.assert_(not self.activity.is_balanced()) self.activity.add_posting(Account('b', 'USD'), -100) self.assert_(not self.activity.is_balanced()) self.activity.add_posting(Account('c', 'USD'), -23) self.assert_(self.activity.is_balanced()) def test_posting_has_been_posted(self): self.assertEquals(self.account_a.postings, []) self.activity.add_posting(self.account_a,126) self.activity.add_posting(self.account_b,-126) self.activity.post() self.assertEquals(self.account_a._postings[0], self.activity.postings[0]) def test_posting_cant_be_posted_when_unbalanced(self): self.activity.add_posting(self.account_a, 126) self.assertRaises(UnbalancedActivityError, self.activity.post) def test_an_activity_is_unposted_to_start(self): self.activity.add_posting(self.account_a,126) self.assert_(not self.activity.is_posted()) def test_an_activity_is_posted_when_posted(self): self.activity.add_posting(self.account_a, 126) self.activity.add_posting(self.account_b, -126) self.activity.post() self.assert_(self.activity.is_posted()) if __name__ == '__main__': unittest.main()