aboutsummaryrefslogtreecommitdiffstats
path: root/beancount_extras_kris7t/plugins/transfer_accounts_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/transfer_accounts_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/transfer_accounts_test.py')
-rw-r--r--beancount_extras_kris7t/plugins/transfer_accounts_test.py628
1 files changed, 628 insertions, 0 deletions
diff --git a/beancount_extras_kris7t/plugins/transfer_accounts_test.py b/beancount_extras_kris7t/plugins/transfer_accounts_test.py
new file mode 100644
index 0000000..0883522
--- /dev/null
+++ b/beancount_extras_kris7t/plugins/transfer_accounts_test.py
@@ -0,0 +1,628 @@
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 TestTransferAccounts(cmptest.TestCase):
11
12 @loader.load_doc()
13 def test_same_currency(self, entries, _, __):
14 '''
15 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
16
17 2020-01-01 open Assets:Checking
18 2020-01-01 open Liabilities:CreditCard
19 2020-01-01 open Expenses:Taxi
20
21 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
22 Assets:Checking -20 USD
23 Expenses:Taxi
24 transfer-account: Liabilities:CreditCard
25 transfer-date: 2020-03-10
26 '''
27 self.assertEqualEntries('''
28 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
29
30 2020-01-01 open Assets:Checking
31 2020-01-01 open Liabilities:CreditCard
32 2020-01-01 open Expenses:Taxi
33
34 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
35 Assets:Checking -20 USD
36 Liabilities:CreditCard 20 USD
37
38 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
39 Expenses:Taxi 20 USD
40 Liabilities:CreditCard -20 USD
41 ''', entries)
42
43 @loader.load_doc()
44 def test_missing_date(self, entries, _, __):
45 '''
46 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
47
48 2020-01-01 open Assets:Checking
49 2020-01-01 open Liabilities:CreditCard
50 2020-01-01 open Expenses:Taxi
51
52 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
53 Assets:Checking -20 USD
54 Expenses:Taxi
55 transfer-account: Liabilities:CreditCard
56 '''
57 self.assertEqualEntries('''
58 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
59
60 2020-01-01 open Assets:Checking
61 2020-01-01 open Liabilities:CreditCard
62 2020-01-01 open Expenses:Taxi
63
64 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
65 Assets:Checking -20 USD
66 Liabilities:CreditCard 20 USD
67
68 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
69 Expenses:Taxi 20 USD
70 Liabilities:CreditCard -20 USD
71 ''', entries)
72
73 @loader.load_doc(expect_errors=True)
74 def test_missing_account_with_date(self, _, errors, __):
75 '''
76 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
77
78 2020-01-01 open Assets:Checking
79 2020-01-01 open Liabilities:CreditCard
80 2020-01-01 open Expenses:Taxi
81
82 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
83 Assets:Checking -20 USD
84 Expenses:Taxi
85 transfer-date: 2020-03-10
86 '''
87 self.assertRegex(errors[0].message, 'transfer-date was set but transfer-account was not')
88
89 @loader.load_doc(expect_errors=True)
90 def test_missing_account_with_conversion(self, _, errors, __):
91 '''
92 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
93
94 2020-01-01 open Assets:Checking
95 2020-01-01 open Liabilities:CreditCard
96 2020-01-01 open Expenses:Taxi
97
98 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
99 Assets:Checking -25.60 CAD
100 Expenses:Taxi 20 USD @ 1.28 CAD
101 transfer-converted: FALSE
102 '''
103 self.assertRegex(
104 errors[0].message, 'transfer-converted was set but transfer-account was not')
105
106 @loader.load_doc(expect_errors=True)
107 def test_invalid_account(self, _, errors, __):
108 '''
109 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
110
111 2020-01-01 open Assets:Checking
112 2020-01-01 open Liabilities:CreditCard
113 2020-01-01 open Expenses:Taxi
114
115 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
116 Assets:Checking -20 USD
117 Expenses:Taxi
118 transfer-account: 2020-03-10
119 '''
120 self.assertRegex(errors[0].message, 'transfer-account must be a string.*')
121
122 @loader.load_doc(expect_errors=True)
123 def test_invalid_date(self, _, errors, __):
124 '''
125 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
126
127 2020-01-01 open Assets:Checking
128 2020-01-01 open Liabilities:CreditCard
129 2020-01-01 open Expenses:Taxi
130
131 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
132 Assets:Checking -20 USD
133 Expenses:Taxi
134 transfer-account: Liabilities:CreditCard
135 transfer-date: "Ides of March"
136 '''
137 self.assertRegex(errors[0].message, 'transfer-date must be a date.*')
138
139 @loader.load_doc(expect_errors=True)
140 def test_invalid_conversion(self, _, errors, __):
141 '''
142 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
143
144 2020-01-01 open Assets:Checking
145 2020-01-01 open Liabilities:CreditCard
146 2020-01-01 open Expenses:Taxi
147
148 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
149 Assets:Checking -25.60 CAD
150 Expenses:Taxi 20 USD @ 1.28 CAD
151 transfer-account: Liabilities:CreditCard
152 transfer-converted: "indeed"
153 '''
154 self.assertRegex(errors[0].message, 'transfer-converted must be a Boolean.*')
155
156 @loader.load_doc(expect_errors=True)
157 def test_invalid_account_conversion(self, _, errors, __):
158 '''
159 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
160
161 2020-01-01 open Liabilities:CreditCard
162 transfer-converted: "Indeed"
163 '''
164 self.assertRegex(errors[0].message, 'transfer-converted must be a Boolean.*')
165
166 @loader.load_doc(expect_errors=True)
167 def test_redundant_conversion(self, _, errors, __):
168 '''
169 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
170
171 2020-01-01 open Assets:Checking
172 2020-01-01 open Liabilities:CreditCard
173 2020-01-01 open Expenses:Taxi
174
175 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
176 Assets:Checking -20 USD
177 Expenses:Taxi
178 transfer-account: Liabilities:CreditCard
179 transfer-converted: TRUE
180 '''
181 self.assertRegex(
182 errors[0].message, 'transfer-converted was set, but there is no conversion.*')
183
184 @loader.load_doc()
185 def test_converted_price_false(self, entries, _, __):
186 '''
187 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
188
189 2020-01-01 open Assets:Checking
190 2020-01-01 open Liabilities:CreditCard
191 2020-01-01 open Expenses:Taxi
192
193 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
194 Assets:Checking -25.60 CAD
195 Expenses:Taxi 20 USD @ 1.28 CAD
196 transfer-account: Liabilities:CreditCard
197 transfer-date: 2020-03-10
198 transfer-converted: FALSE
199 '''
200 self.assertEqualEntries('''
201 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
202
203 2020-01-01 open Assets:Checking
204 2020-01-01 open Liabilities:CreditCard
205 2020-01-01 open Expenses:Taxi
206
207 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
208 Assets:Checking -25.60 CAD
209 Liabilities:CreditCard 25.60 CAD
210
211 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
212 Expenses:Taxi 20 USD @ 1.28 CAD
213 Liabilities:CreditCard -25.60 CAD
214 ''', entries)
215
216 @loader.load_doc()
217 def test_converted_price_true(self, entries, _, __):
218 '''
219 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
220
221 2020-01-01 open Assets:Checking
222 2020-01-01 open Liabilities:CreditCard
223 2020-01-01 open Expenses:Taxi
224
225 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
226 Assets:Checking -25.60 CAD
227 Expenses:Taxi 20 USD @ 1.28 CAD
228 transfer-account: Liabilities:CreditCard
229 transfer-date: 2020-03-10
230 transfer-converted: TRUE
231 '''
232 self.assertEqualEntries('''
233 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
234
235 2020-01-01 open Assets:Checking
236 2020-01-01 open Liabilities:CreditCard
237 2020-01-01 open Expenses:Taxi
238
239 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
240 Assets:Checking -25.60 CAD
241 Liabilities:CreditCard 20 USD @ 1.28 CAD
242
243 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
244 Expenses:Taxi 20 USD
245 Liabilities:CreditCard -20 USD
246 ''', entries)
247
248 @loader.load_doc()
249 def test_converted_price_default(self, entries, _, __):
250 '''
251 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
252
253 2020-01-01 open Assets:Checking
254 2020-01-01 open Liabilities:CreditCard
255 2020-01-01 open Expenses:Taxi
256
257 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
258 Assets:Checking -25.60 CAD
259 Expenses:Taxi 20 USD @ 1.28 CAD
260 transfer-account: Liabilities:CreditCard
261 transfer-date: 2020-03-10
262 '''
263 self.assertEqualEntries('''
264 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
265
266 2020-01-01 open Assets:Checking
267 2020-01-01 open Liabilities:CreditCard
268 2020-01-01 open Expenses:Taxi
269
270 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
271 Assets:Checking -25.60 CAD
272 Liabilities:CreditCard 20 USD @ 1.28 CAD
273
274 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
275 Expenses:Taxi 20 USD
276 Liabilities:CreditCard -20 USD
277 ''', entries)
278
279 @loader.load_doc()
280 def test_converted_price_account_false(self, entries, _, __):
281 '''
282 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
283
284 2020-01-01 open Assets:Checking
285 2020-01-01 open Liabilities:CreditCard
286 transfer-converted: FALSE
287 2020-01-01 open Expenses:Taxi
288
289 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
290 Assets:Checking -25.60 CAD
291 Expenses:Taxi 20 USD @ 1.28 CAD
292 transfer-account: Liabilities:CreditCard
293 transfer-date: 2020-03-10
294 '''
295 self.assertEqualEntries('''
296 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
297
298 2020-01-01 open Assets:Checking
299 2020-01-01 open Liabilities:CreditCard
300 2020-01-01 open Expenses:Taxi
301
302 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
303 Assets:Checking -25.60 CAD
304 Liabilities:CreditCard 25.60 CAD
305
306 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
307 Expenses:Taxi 20 USD @ 1.28 CAD
308 Liabilities:CreditCard -25.60 CAD
309 ''', entries)
310
311 @loader.load_doc()
312 def test_converted_price_account_true(self, entries, _, __):
313 '''
314 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
315
316 2020-01-01 open Assets:Checking
317 2020-01-01 open Liabilities:CreditCard
318 transfer-converted: TRUE
319 2020-01-01 open Expenses:Taxi
320
321 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
322 Assets:Checking -25.60 CAD
323 Expenses:Taxi 20 USD @ 1.28 CAD
324 transfer-account: Liabilities:CreditCard
325 transfer-date: 2020-03-10
326 '''
327 self.assertEqualEntries('''
328 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
329
330 2020-01-01 open Assets:Checking
331 2020-01-01 open Liabilities:CreditCard
332 2020-01-01 open Expenses:Taxi
333
334 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
335 Assets:Checking -25.60 CAD
336 Liabilities:CreditCard 20 USD @ 1.28 CAD
337
338 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
339 Expenses:Taxi 20 USD
340 Liabilities:CreditCard -20 USD
341 ''', entries)
342
343 @loader.load_doc()
344 def test_converted_cost_false(self, entries, _, __):
345 '''
346 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
347
348 2020-01-01 open Assets:Checking
349 2020-01-01 open Liabilities:CreditCard
350 2020-01-01 open Expenses:Taxi
351
352 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
353 Assets:Checking -25.60 CAD
354 Expenses:Taxi 20 USD {1.28 CAD}
355 transfer-account: Liabilities:CreditCard
356 transfer-date: 2020-03-10
357 transfer-converted: FALSE
358 '''
359 self.assertEqualEntries('''
360 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
361
362 2020-01-01 open Assets:Checking
363 2020-01-01 open Liabilities:CreditCard
364 2020-01-01 open Expenses:Taxi
365
366 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
367 Assets:Checking -25.60 CAD
368 Liabilities:CreditCard 25.60 CAD
369
370 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
371 Expenses:Taxi 20 USD {1.28 CAD, 2020-03-15}
372 Liabilities:CreditCard -25.60 CAD
373 ''', entries)
374
375 @loader.load_doc()
376 def test_converted_cost_true(self, entries, _, __):
377 '''
378 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
379
380 2020-01-01 open Assets:Checking
381 2020-01-01 open Liabilities:CreditCard
382 2020-01-01 open Expenses:Taxi
383
384 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
385 Assets:Checking -25.60 CAD
386 Expenses:Taxi 20 USD {1.28 CAD}
387 transfer-account: Liabilities:CreditCard
388 transfer-date: 2020-03-10
389 transfer-converted: TRUE
390 '''
391 self.assertEqualEntries('''
392 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
393
394 2020-01-01 open Assets:Checking
395 2020-01-01 open Liabilities:CreditCard
396 2020-01-01 open Expenses:Taxi
397
398 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
399 Assets:Checking -25.60 CAD
400 Liabilities:CreditCard 20 USD {1.28 CAD, 2020-03-15}
401
402 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
403 Expenses:Taxi 20 USD {1.28 CAD, 2020-03-15}
404 Liabilities:CreditCard -20 USD {1.28 CAD, 2020-03-15}
405 ''', entries)
406
407 @loader.load_doc()
408 def test_converted_cost_and_price_false(self, entries, _, __):
409 '''
410 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
411
412 2020-01-01 open Assets:Checking
413 2020-01-01 open Liabilities:CreditCard
414 2020-01-01 open Expenses:Taxi
415
416 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
417 Assets:Checking -25.60 CAD
418 Expenses:Taxi 20 USD {1.28 CAD} @ 1.30 CAD
419 transfer-account: Liabilities:CreditCard
420 transfer-date: 2020-03-10
421 transfer-converted: FALSE
422 '''
423 self.assertEqualEntries('''
424 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
425
426 2020-01-01 open Assets:Checking
427 2020-01-01 open Liabilities:CreditCard
428 2020-01-01 open Expenses:Taxi
429
430 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
431 Assets:Checking -25.60 CAD
432 Liabilities:CreditCard 25.60 CAD
433
434 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
435 Expenses:Taxi 20 USD {1.28 CAD, 2020-03-15} @ 1.30 CAD
436 Liabilities:CreditCard -25.60 CAD
437 ''', entries)
438
439 @loader.load_doc()
440 def test_converted_cost_and_price_true(self, entries, _, __):
441 '''
442 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
443
444 2020-01-01 open Assets:Checking
445 2020-01-01 open Liabilities:CreditCard
446 2020-01-01 open Expenses:Taxi
447
448 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
449 Assets:Checking -25.60 CAD
450 Expenses:Taxi 20 USD {1.28 CAD} @ 1.30 CAD
451 transfer-account: Liabilities:CreditCard
452 transfer-date: 2020-03-10
453 transfer-converted: TRUE
454 '''
455 self.assertEqualEntries('''
456 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
457
458 2020-01-01 open Assets:Checking
459 2020-01-01 open Liabilities:CreditCard
460 2020-01-01 open Expenses:Taxi
461
462 2020-03-15 * "Taxi home from concert in Brooklyn" ^taxi
463 Assets:Checking -25.60 CAD
464 Liabilities:CreditCard 20 USD {1.28 CAD, 2020-03-15} @ 1.30 CAD
465
466 2020-03-10 * "Taxi home from concert in Brooklyn" ^taxi
467 Expenses:Taxi 20 USD {1.28 CAD, 2020-03-15}
468 Liabilities:CreditCard -20 USD {1.28 CAD, 2020-03-15}
469 ''', entries)
470
471 @loader.load_doc()
472 def test_multiple_separate(self, entries, _, __):
473 '''
474 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
475
476 2020-01-01 open Assets:Checking
477 2020-01-01 open Liabilities:CreditCard
478 2020-01-01 open Expenses:Taxi
479 2020-01-01 open Expenses:Food
480
481 2020-03-15 * "Night out in Brooklyn" ^taxi
482 Assets:Checking -45 USD
483 Expenses:Taxi 20 USD
484 transfer-account: Liabilities:CreditCard
485 transfer-date: 2020-03-10
486 Expenses:Food 25 USD
487 transfer-account: Liabilities:CreditCard
488 transfer-date: 2020-03-12
489 '''
490 self.assertEqualEntries('''
491 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
492
493 2020-01-01 open Assets:Checking
494 2020-01-01 open Liabilities:CreditCard
495 2020-01-01 open Expenses:Taxi
496 2020-01-01 open Expenses:Food
497
498 2020-03-15 * "Night out in Brooklyn" ^taxi
499 Assets:Checking -45 USD
500 Liabilities:CreditCard 45 USD
501
502 2020-03-10 * "Night out in Brooklyn" ^taxi
503 Expenses:Taxi 20 USD
504 Liabilities:CreditCard -20 USD
505
506 2020-03-12 * "Night out in Brooklyn" ^taxi
507 Expenses:Food 25 USD
508 Liabilities:CreditCard -25 USD
509 ''', entries)
510
511 @loader.load_doc()
512 def test_multiple_merge(self, entries, _, __):
513 '''
514 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
515
516 2020-01-01 open Assets:Checking
517 2020-01-01 open Liabilities:CreditCard
518 2020-01-01 open Expenses:Taxi
519 2020-01-01 open Expenses:Food
520
521 2020-03-15 * "Night out in Brooklyn" ^taxi
522 Assets:Checking -45 USD
523 Expenses:Taxi 20 USD
524 transfer-account: Liabilities:CreditCard
525 transfer-date: 2020-03-10
526 Expenses:Food 25 USD
527 transfer-account: Liabilities:CreditCard
528 transfer-date: 2020-03-10
529 '''
530 self.assertEqualEntries('''
531 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
532
533 2020-01-01 open Assets:Checking
534 2020-01-01 open Liabilities:CreditCard
535 2020-01-01 open Expenses:Taxi
536 2020-01-01 open Expenses:Food
537
538 2020-03-15 * "Night out in Brooklyn" ^taxi
539 Assets:Checking -45 USD
540 Liabilities:CreditCard 45 USD
541
542 2020-03-10 * "Night out in Brooklyn" ^taxi
543 Expenses:Taxi 20 USD
544 Expenses:Food 25 USD
545 Liabilities:CreditCard -45 USD
546 ''', entries)
547
548 @loader.load_doc()
549 def test_multiple_currencies_merge_converted_false(self, entries, _, __):
550 '''
551 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
552
553 2020-01-01 open Assets:Checking
554 2020-01-01 open Liabilities:CreditCard
555 2020-01-01 open Expenses:Taxi
556 2020-01-01 open Expenses:Food
557
558 2020-03-15 * "Night out in Brooklyn" ^taxi
559 Assets:Checking -50.60 CAD
560 Expenses:Taxi 20 USD @ 1.28 CAD
561 transfer-account: Liabilities:CreditCard
562 transfer-date: 2020-03-10
563 transfer-converted: FALSE
564 Expenses:Food 25 CAD
565 transfer-account: Liabilities:CreditCard
566 transfer-date: 2020-03-10
567 '''
568 self.assertEqualEntries('''
569 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
570
571 2020-01-01 open Assets:Checking
572 2020-01-01 open Liabilities:CreditCard
573 2020-01-01 open Expenses:Taxi
574 2020-01-01 open Expenses:Food
575
576 2020-03-15 * "Night out in Brooklyn" ^taxi
577 Assets:Checking -50.60 CAD
578 Liabilities:CreditCard 50.60 CAD
579
580 2020-03-10 * "Night out in Brooklyn" ^taxi
581 Expenses:Taxi 20 USD @ 1.28 CAD
582 Expenses:Food 25 CAD
583 Liabilities:CreditCard -50.60 CAD
584 ''', entries)
585
586 @loader.load_doc()
587 def test_multiple_currencies_merge_converted_true(self, entries, _, __):
588 '''
589 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
590
591 2020-01-01 open Assets:Checking
592 2020-01-01 open Liabilities:CreditCard
593 2020-01-01 open Expenses:Taxi
594 2020-01-01 open Expenses:Food
595
596 2020-03-15 * "Night out in Brooklyn" ^taxi
597 Assets:Checking -50.60 CAD
598 Expenses:Taxi 20 USD @ 1.28 CAD
599 transfer-account: Liabilities:CreditCard
600 transfer-date: 2020-03-10
601 transfer-converted: TRUE
602 Expenses:Food 25 CAD
603 transfer-account: Liabilities:CreditCard
604 transfer-date: 2020-03-10
605 '''
606 self.assertEqualEntries('''
607 plugin "beancount_extras_kris7t.plugins.transfer_accounts"
608
609 2020-01-01 open Assets:Checking
610 2020-01-01 open Liabilities:CreditCard
611 2020-01-01 open Expenses:Taxi
612 2020-01-01 open Expenses:Food
613
614 2020-03-15 * "Night out in Brooklyn" ^taxi
615 Assets:Checking -50.60 CAD
616 Liabilities:CreditCard 20 USD @ 1.28 CAD
617 Liabilities:CreditCard 25 CAD
618
619 2020-03-10 * "Night out in Brooklyn" ^taxi
620 Expenses:Taxi 20 USD
621 Expenses:Food 25 CAD
622 Liabilities:CreditCard -20 USD
623 Liabilities:CreditCard -25 CAD
624 ''', entries)
625
626
627if __name__ == '__main__':
628 unittest.main()