fix: strict: Make sure forecast transactions and auto postings are
checked with --strict. (#1810)
This commit is contained in:
parent
2cf4c221de
commit
55a022a941
@ -314,14 +314,8 @@ journalFinalise iopts@InputOpts{auto_,infer_equity_,balancingopts_,strict_} f tx
|
||||
& journalReverse -- convert all lists to the order they were parsed
|
||||
where
|
||||
checkAddAndBalance d j = do
|
||||
when strict_ $ do
|
||||
-- If in strict mode, check all postings are to declared accounts
|
||||
journalCheckAccountsDeclared j
|
||||
-- and using declared commodities
|
||||
journalCheckCommoditiesDeclared j
|
||||
|
||||
-- Add forecast transactions if enabled
|
||||
journalAddForecast (forecastPeriod iopts j) j
|
||||
newj <- journalAddForecast (forecastPeriod iopts j) j
|
||||
-- Add auto postings if enabled
|
||||
& (if auto_ && not (null $ jtxnmodifiers j) then journalAddAutoPostings d balancingopts_ else pure)
|
||||
-- Balance all transactions and maybe check balance assertions.
|
||||
@ -331,6 +325,14 @@ journalFinalise iopts@InputOpts{auto_,infer_equity_,balancingopts_,strict_} f tx
|
||||
-- infer market prices from commodity-exchanging transactions
|
||||
<&> journalInferMarketPricesFromTransactions
|
||||
|
||||
when strict_ $ do
|
||||
-- If in strict mode, check all postings are to declared accounts
|
||||
journalCheckAccountsDeclared newj
|
||||
-- and using declared commodities
|
||||
journalCheckCommoditiesDeclared newj
|
||||
|
||||
return newj
|
||||
|
||||
journalAddAutoPostings :: Day -> BalancingOpts -> Journal -> Either String Journal
|
||||
journalAddAutoPostings d bopts =
|
||||
-- Balance all transactions without checking balance assertions,
|
||||
|
||||
@ -1,14 +1,49 @@
|
||||
# check accounts succeeds when all accounts are declared
|
||||
# 1. check accounts succeeds when all accounts are declared
|
||||
<
|
||||
account a
|
||||
2020-01-01
|
||||
(a) 1
|
||||
$ hledger -f- check accounts
|
||||
|
||||
# and otherwise fails:
|
||||
# 2. and otherwise fails:
|
||||
<
|
||||
2020-01-01
|
||||
(a) 1
|
||||
$ hledger -f- check accounts
|
||||
>2 /undeclared account "a"/
|
||||
>=1
|
||||
|
||||
# 3. also fails for forecast accounts
|
||||
<
|
||||
account a
|
||||
~ 2022-01-31
|
||||
a $1
|
||||
b
|
||||
$ hledger -f- --forecast check accounts
|
||||
>2 /undeclared account "b"/
|
||||
>=1
|
||||
|
||||
# 4. also fails in --strict mode
|
||||
$ hledger -f- --forecast --strict bal
|
||||
>2 /undeclared account "b"/
|
||||
>=1
|
||||
|
||||
# 5. also fails for auto accounts
|
||||
<
|
||||
account a
|
||||
|
||||
= a
|
||||
(b) $1
|
||||
|
||||
2022-01-31
|
||||
(a) $1
|
||||
|
||||
2022-02-01
|
||||
$ hledger -f- --auto check accounts
|
||||
>2 /undeclared account "b"/
|
||||
>=1
|
||||
|
||||
# 6. also fails in --strict mode
|
||||
$ hledger -f- --auto --strict bal
|
||||
>2 /undeclared account "b"/
|
||||
>=1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user