diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-01-25 01:14:28 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-01-25 01:14:28 +0100 |
commit | a1c2a999e449054d6641bbb633954e45fcd63f90 (patch) | |
tree | 47628c10ded721d66e47b5f87f501293cd8af003 /beancount_extras_kris7t/plugins/closing_balance_test.py | |
parent | Initialize package (diff) | |
download | beancount-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.py | 124 |
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 | |||
4 | import unittest | ||
5 | |||
6 | from beancount import loader | ||
7 | from beancount.parser import cmptest | ||
8 | |||
9 | |||
10 | class 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 | |||
123 | if __name__ == '__main__': | ||
124 | unittest.main() | ||