aboutsummaryrefslogtreecommitdiffstats
path: root/beancount_extras_kris7t/plugins/closing_balance_test.py
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-01-25 01:14:28 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-01-25 01:14:28 +0100
commita1c2a999e449054d6641bbb633954e45fcd63f90 (patch)
tree47628c10ded721d66e47b5f87f501293cd8af003 /beancount_extras_kris7t/plugins/closing_balance_test.py
parentInitialize package (diff)
downloadbeancount-extras-kris7t-a1c2a999e449054d6641bbb633954e45fcd63f90.tar.gz
beancount-extras-kris7t-a1c2a999e449054d6641bbb633954e45fcd63f90.tar.zst
beancount-extras-kris7t-a1c2a999e449054d6641bbb633954e45fcd63f90.zip
Add plugins and importers from private config
The importers are missing tests, because not having any specifications for the import formats means we must use real, private data as test inputs
Diffstat (limited to 'beancount_extras_kris7t/plugins/closing_balance_test.py')
-rw-r--r--beancount_extras_kris7t/plugins/closing_balance_test.py124
1 files changed, 124 insertions, 0 deletions
diff --git a/beancount_extras_kris7t/plugins/closing_balance_test.py b/beancount_extras_kris7t/plugins/closing_balance_test.py
new file mode 100644
index 0000000..40115bf
--- /dev/null
+++ b/beancount_extras_kris7t/plugins/closing_balance_test.py
@@ -0,0 +1,124 @@
1__copyright__ = 'Copyright (c) 2020 Kristóf Marussy <kristof@marussy.com>'
2__license__ = 'GNU GPLv2'
3
4import unittest
5
6from beancount import loader
7from beancount.parser import cmptest
8
9
10class TestClosingBalance(cmptest.TestCase):
11
12 @loader.load_doc()
13 def test_close_account_correct(self, entries, errors, options_map):
14 '''
15 plugin "beancount_extras_kris7t.plugins.closing_balance"
16
17 2020-01-01 open Assets:Checking
18 2020-01-01 open Equity:Opening-Balances
19 2020-01-01 open Equity:Closing-Balances
20
21 2020-01-01 * "Opening balances"
22 Assets:Checking 100 USD
23 Equity:Opening-Balances -100 USD
24
25 2020-03-15 balance Assets:Checking 100 USD
26 close-to: Equity:Closing-Balances
27 '''
28 self.assertEqualEntries('''
29 plugin "beancount_extras_kris7t.plugins.closing_balance"
30
31 2020-01-01 open Assets:Checking
32 2020-01-01 open Equity:Opening-Balances
33 2020-01-01 open Equity:Closing-Balances
34
35 2020-01-01 * "Opening balances"
36 Assets:Checking 100 USD
37 Equity:Opening-Balances -100 USD
38
39 2020-03-15 balance Assets:Checking 100 USD
40 close-to: Equity:Closing-Balances
41
42 2020-03-15 * "Closing Assets:Checking"
43 Assets:Checking -100 USD
44 closing: TRUE
45 Equity:Closing-Balances 100 USD
46
47 2020-03-15 close Assets:Checking
48 ''', entries)
49
50 @loader.load_doc(expect_errors=True)
51 def test_close_account_incorrect(self, entries, errors, options_map):
52 '''
53 plugin "beancount_extras_kris7t.plugins.closing_balance"
54
55 2020-01-01 open Assets:Checking
56 2020-01-01 open Equity:Opening-Balances
57 2020-01-01 open Equity:Closing-Balances
58
59 2020-01-01 * "Opening balances"
60 Assets:Checking 100 USD
61 Equity:Opening-Balances -100 USD
62
63 2020-03-15 balance Assets:Checking 80 USD
64 close-to: Equity:Closing-Balances
65 '''
66 self.assertEqualEntries('''
67 plugin "beancount_extras_kris7t.plugins.closing_balance"
68
69 2020-01-01 open Assets:Checking
70 2020-01-01 open Equity:Opening-Balances
71 2020-01-01 open Equity:Closing-Balances
72
73 2020-01-01 * "Opening balances"
74 Assets:Checking 100 USD
75 Equity:Opening-Balances -100 USD
76
77 2020-03-15 balance Assets:Checking 80 USD
78 close-to: Equity:Closing-Balances
79
80 2020-03-15 * "Closing Assets:Checking"
81 Assets:Checking -80 USD
82 closing: TRUE
83 Equity:Closing-Balances 80 USD
84
85 2020-03-15 close Assets:Checking
86 ''', entries)
87 self.assertRegex(errors[0].message, '^Balance failed for \'Assets:Checking\'')
88
89 @loader.load_doc()
90 def test_close_account_zero(self, entries, errors, options_map):
91 '''
92 plugin "beancount_extras_kris7t.plugins.closing_balance"
93
94 2020-01-01 open Assets:Checking
95
96 2020-03-15 balance Assets:Checking 0 USD
97 close-to: Equity:Closing-Balances
98 '''
99 self.assertEqualEntries('''
100 plugin "beancount_extras_kris7t.plugins.closing_balance"
101
102 2020-01-01 open Assets:Checking
103
104 2020-03-15 balance Assets:Checking 0 USD
105 close-to: Equity:Closing-Balances
106
107 2020-03-15 close Assets:Checking
108 ''', entries)
109
110 @loader.load_doc(expect_errors=True)
111 def test_invalid_close_to(self, entries, errors, options_map):
112 '''
113 plugin "beancount_extras_kris7t.plugins.closing_balance"
114
115 2020-01-01 open Assets:Checking
116
117 2020-03-15 balance Assets:Checking 100 USD
118 close-to: TRUE
119 '''
120 self.assertRegex(errors[0].message, '^close-to must be a string')
121
122
123if __name__ == '__main__':
124 unittest.main()