hledger/tests/journal/include.test
2020-01-07 15:58:54 -08:00

93 lines
1.9 KiB
Plaintext

# 1. nested includes in subdirectories
mkdir -p b/c/d ; printf '2010/1/1\n (D) 1\n' >b/c/d/d.journal ; printf '2010/1/1\n (C) 1\n!include d/d.journal\n' >b/c/c.journal ; printf '2010/1/1\n (B) 1\n!include c/c.journal\n' >b/b.journal ; printf '2010/1/1\n (A) 1\n!include b/b.journal\n' >a.journal ; hledger -f a.journal print; rm -rf a.journal b
>>>
2010-01-01
(A) 1
2010-01-01
(B) 1
2010-01-01
(C) 1
2010-01-01
(D) 1
>>>2
>>>=0
# 2. including other formats
hledger -f - print
<<<
2016/1/1
(x) 1
include a.timeclock
include b.timedot
>>>
2016-01-01
(x) 1.00
2016-01-01 * 12:00-16:00
(a:aa) 4.00h
2016-01-01 *
(b.bb) 1.00
>>>=0
# 3. include glob patterns
printf '2018/01/01\n (A) 1\n' >ab.journal; printf '2018/01/01\n (B) 1' >bb.journal; hledger -f - print; rm -f ab.journal bb.journal
<<<
include *b.journal
>>>
2018-01-01
(A) 1
2018-01-01
(B) 1
>>>=0
# 4. include invalid glob patterns
hledger -f - print
<<<
include [.journal
>>>=1
# 5. include nonexsitant file
hledger -f - print
<<<
include doesnotexist.journal
>>>=1
# 6. include relative to home
printf '2018/01/01\n (A) 1\n' >included.journal; HOME="$PWD" hledger -f - print; rm -rf included.journal
<<<
include ~/included.journal
>>>
2018-01-01
(A) 1
>>>2
>>>=0
# The next tests require hard coded file names, so are not concurrent-safe.
# They use different file names so a single concurrent shelltest invocation will be fine.
# 7. test that order of include files is maintained
printf 'include _b\n' >_a; touch _b; hledger -f _a stats | grep _ | sed -e 's%.*/%%'; rm -rf _a _b
>>>
_a
_b
>>>2
>>>=0
# 8. and with --auto code path
printf 'include _d\n=\n' >_c; touch _d; hledger -f _c stats --auto | grep _ | sed -e 's%.*/%%'; rm -rf _c _d
>>>
_c
_d
>>>2
>>>=0