mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-08 07:09:28 +03:00
drop obsolete doctests, update docs in Tests module
This commit is contained in:
parent
636a3a7d10
commit
2d8a5950d1
185
Tests.hs
185
Tests.hs
@ -1,63 +1,18 @@
|
||||
{- |
|
||||
hledger's test suite. Most tests are HUnit-based, and defined in the
|
||||
@tests@ list below. These tests are built in to hledger and can be run at
|
||||
any time on any platform with @hledger test@.
|
||||
|
||||
Secondly, we have tests in doctest format, which can be run with @make
|
||||
doctest@ in the hledger source tree. These have some advantages over
|
||||
hunit: they are sometimes easier to read and write; it is easier to read
|
||||
multi-line output; they can appear in, and test, documentation. On the
|
||||
downside, they are not built in; you need a developer's setup to run them.
|
||||
This module contains hledger's unit tests. These are built in to hledger,
|
||||
and can be run at any time by doing @hledger test@ (or, with a few more
|
||||
options, by doing @make unittest@ in the hledger source tree.)
|
||||
|
||||
Thirdly, we have command-line functional tests in tests/*.test, which can
|
||||
be run with @make functest@. These are still easier to read and write than
|
||||
doctests, but likewise are not built in and are more distant from the code
|
||||
they test and you have to come up with sensible filenames.
|
||||
Other kinds of tests:
|
||||
|
||||
Here are the hledger doctests (some may reappear in other modules as
|
||||
examples):
|
||||
hledger's functional tests are a set of shell/command-line tests defined
|
||||
by .test files in the tests\/ subdirectory. These can be run by doing
|
||||
@make functest@ in the hledger source tree.
|
||||
|
||||
Run a few with c++ ledger first:
|
||||
|
||||
@
|
||||
$ ledger -f sample.ledger balance
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
$1 liabilities:debts
|
||||
@
|
||||
|
||||
@
|
||||
$ ledger -f sample.ledger balance o
|
||||
$1 expenses:food
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
--------------------
|
||||
$-1
|
||||
@
|
||||
|
||||
Then hledger:
|
||||
|
||||
@
|
||||
$ hledger -f sample.ledger balance
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
$1 liabilities:debts
|
||||
@
|
||||
hledger's doctests are shell tests defined in literal blocks in haddock
|
||||
documentation in the source, run by doing @make doctest@ in the hledger
|
||||
source tree. They are no longer used, but here is an example:
|
||||
|
||||
@
|
||||
$ hledger -f sample.ledger balance o
|
||||
@ -69,127 +24,7 @@ $ hledger -f sample.ledger balance o
|
||||
$-1
|
||||
@
|
||||
|
||||
@
|
||||
$ hledger -f sample.ledger balance --depth 1
|
||||
$-1 assets
|
||||
$2 expenses
|
||||
$-2 income
|
||||
$1 liabilities
|
||||
@
|
||||
-}
|
||||
{-
|
||||
@
|
||||
$ printf "2009/1/1 a\n b 1.1\n c -1\n" | runhaskell hledger.hs -f- reg 2>&1 ; true
|
||||
"-" (line 4, column 1):
|
||||
unexpected end of input
|
||||
could not balance this transaction, amounts do not add up to zero:
|
||||
2009/01/01 a
|
||||
b 1.1
|
||||
c -1
|
||||
|
||||
|
||||
@
|
||||
|
||||
@
|
||||
$ printf "2009/1/1 x\n (virtual) 100\n a 1\n b\n" | runhaskell hledger.hs -f- print 2>&1 ; true
|
||||
2009/01/01 x
|
||||
(virtual) 100
|
||||
a 1
|
||||
b
|
||||
|
||||
@
|
||||
|
||||
Unicode input/output tests
|
||||
|
||||
-- layout of the balance command with unicode names
|
||||
@
|
||||
$ printf "2009-01-01 проверка\n τράπεζα 10 руб\n नकद\n" | hledger -f - bal
|
||||
10 руб τράπεζα
|
||||
-10 руб नकद
|
||||
@
|
||||
|
||||
-- layout of the register command with unicode names
|
||||
@
|
||||
$ printf "2009-01-01 проверка\n τράπεζα 10 руб\n नकद\n" | hledger -f - reg
|
||||
2009/01/01 проверка τράπεζα 10 руб 10 руб
|
||||
नकद -10 руб 0
|
||||
@
|
||||
|
||||
-- layout of the print command with unicode names
|
||||
@
|
||||
$ printf "2009-01-01 проверка\n счёт:первый 1\n счёт:второй\n" | hledger -f - print
|
||||
2009/01/01 проверка
|
||||
счёт:первый 1
|
||||
счёт:второй
|
||||
|
||||
@
|
||||
|
||||
-- search for unicode account names
|
||||
@
|
||||
$ printf "2009-01-01 проверка\n τράπεζα 10 руб\n नकद\n" | hledger -f - reg τράπ
|
||||
2009/01/01 проверка τράπεζα 10 руб 10 руб
|
||||
@
|
||||
|
||||
-- search for unicode descriptions (should choose only the first entry)
|
||||
@
|
||||
$ printf "2009-01-01 аура (cyrillic letters)\n bank 10\n cash\n2010-01-01 aypa (roman letters)\n bank 20\n cash\n" | hledger -f - reg desc:аура
|
||||
2009/01/01 аура (cyrillic let.. bank 10 10
|
||||
cash -10 0
|
||||
@
|
||||
|
||||
-- error message with unicode in ledger
|
||||
-- not implemented yet
|
||||
--@
|
||||
$ printf "2009-01-01 broken entry\n дебит 1\n кредит -2\n" | hledger -f - 2>&1 ; true
|
||||
hledger: could not balance this transaction, amounts do not add up to zero:
|
||||
2009/01/01 broken entry
|
||||
дебит 1
|
||||
кредит -2
|
||||
|
||||
|
||||
--@
|
||||
|
||||
@
|
||||
$ printf "2009-01-01 x\n a 2\n b (b) b -1\n c\n" | hledger -f - print 2>&1; true
|
||||
2009/01/01 x
|
||||
a 2
|
||||
b (b) b -1
|
||||
c
|
||||
|
||||
@
|
||||
|
||||
Nafai's bug
|
||||
@
|
||||
$ printf "2009/1/1 x\n a: 13\n b\n" | hledger -f - bal -E 2>&1; true
|
||||
hledger: parse error at (line 1, column 4):
|
||||
unexpected " "
|
||||
accountname seems ill-formed: a:
|
||||
@
|
||||
|
||||
|
||||
Eliding, general layout
|
||||
@
|
||||
$ printf "2009/1/1 x\n aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa €1\n b\n" | hledger -f - bal 2>&1
|
||||
€1 aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa
|
||||
€-1 b
|
||||
@
|
||||
|
||||
--@
|
||||
$ printf "2009/1/1 x\n aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa €1\n b\n" | hledger -f - reg 2>&1
|
||||
2009/01/01 x aa:aa:aaaaaaaaaaaaaaaa €1 €1
|
||||
b €-1 0
|
||||
@
|
||||
|
||||
--@
|
||||
$ printf "2009/1/1 x\n aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa €1\n b\n" | hledger -f - print 2>&1
|
||||
2009/01/01 x
|
||||
aa:aaaaaaaaaa:aaaaaaaaaaaaaaaaaaaa
|
||||
b
|
||||
@
|
||||
-}
|
||||
-- other test tools:
|
||||
-- http://hackage.haskell.org/cgi-bin/hackage-scripts/package/test-framework
|
||||
-- http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTF
|
||||
|
||||
module Tests
|
||||
where
|
||||
|
Loading…
Reference in New Issue
Block a user