From 2ffed3aec7f11f3bda6ce732a8ed3fc2b7a7d3f6 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Thu, 31 Dec 2020 11:43:51 -0800 Subject: [PATCH] check: ordereddates: test --date2, clarify --unique and QUERY dropped --- .../Cli/Commands/Check/Ordereddates.hs | 17 +++++----- hledger/test/check-ordereddates.test | 33 ++++++++++++++++--- 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Check/Ordereddates.hs b/hledger/Hledger/Cli/Commands/Check/Ordereddates.hs index d3598344f..9ef255027 100755 --- a/hledger/Hledger/Cli/Commands/Check/Ordereddates.hs +++ b/hledger/Hledger/Cli/Commands/Check/Ordereddates.hs @@ -8,26 +8,27 @@ import Hledger.Cli.CliOptions import Text.Printf journalCheckOrdereddates :: CliOpts -> Journal -> Either String () -journalCheckOrdereddates CliOpts{rawopts_=rawopts,reportspec_=rspec} j = do +journalCheckOrdereddates CliOpts{reportspec_=rspec} j = do let ropts = (rsOpts rspec){accountlistmode_=ALFlat} let ts = filter (rsQuery rspec `matchesTransaction`) $ jtxns $ journalSelectingAmountFromOpts ropts j - let unique = boolopt "--unique" rawopts - let date = transactionDateFn ropts + let checkunique = False -- boolopt "unique" rawopts XXX was supported by checkdates command + let getdate = transactionDateFn ropts let compare a b = - if unique - then date a < date b - else date a <= date b + if checkunique + then getdate a < getdate b + else getdate a <= getdate b case checkTransactions compare ts of FoldAcc{fa_previous=Nothing} -> return () FoldAcc{fa_error=Nothing} -> return () FoldAcc{fa_error=Just error, fa_previous=Just previous} -> do let - uniquestr = if unique then " and/or not unique" else "" + uniquestr = if checkunique then " and/or not unique" else "" positionstr = showGenericSourcePos $ tsourcepos error txn1str = linesPrepend " " $ showTransaction previous txn2str = linesPrepend2 "> " " " $ showTransaction error - Left $ printf "transaction date is out of order%s\nat %s:\n\n%s" + Left $ printf "transaction date%s is out of order%s\nat %s:\n\n%s" + (if date2_ ropts then "2" else "") uniquestr positionstr (txn1str ++ txn2str) diff --git a/hledger/test/check-ordereddates.test b/hledger/test/check-ordereddates.test index d5334ee76..a180a9053 100644 --- a/hledger/test/check-ordereddates.test +++ b/hledger/test/check-ordereddates.test @@ -14,7 +14,32 @@ $ hledger -f- check ordereddates $ hledger -f- check ordereddates >2 /transaction date is out of order/ >=1 -# XXX -# With --date2, it checks secondary dates instead. -# With --strict, dates must also be unique. -# With a query, only matched transactions' dates are checked. + +# With --date2, it checks secondary dates instead +< +2020-01-02 +2020-01-01=2020-01-03 +$ hledger -f- check ordereddates --date2 + +# +< +2020-01-01=2020-01-03 +2020-01-02 +$ hledger -f- check ordereddates --date2 +>2 /transaction date2 is out of order/ +>=1 + +# XXX not supported: With a query, only matched transactions' dates are checked. +# < +# 2020-01-01 a +# 2020-01-03 b +# 2020-01-02 a +# $ hledger -f- check ordereddates + +# XXX not supported: With --unique, dates must also be unique. +# < +# 2020-01-01 +# 2020-01-01 +# $ hledger -f- check ordereddates --unique +# >2 /transaction date is out of order and/or not unique/ +# >=1