diff --git a/hledger/test/errors/csvamountonenonzero.csv b/hledger/test/errors/csvamountonenonzero.csv new file mode 100755 index 000000000..c278cb3b5 --- /dev/null +++ b/hledger/test/errors/csvamountonenonzero.csv @@ -0,0 +1,5 @@ +#!/usr/bin/env -S hledger print -f +# Non-zero for both amount-in and amount-out. +2022-01-01,1, +2022-01-02,1,0 +2022-01-03,1,2 diff --git a/hledger/test/errors/csvamountonenonzero.csv.rules b/hledger/test/errors/csvamountonenonzero.csv.rules new file mode 100644 index 000000000..6ce6980db --- /dev/null +++ b/hledger/test/errors/csvamountonenonzero.csv.rules @@ -0,0 +1,4 @@ +skip 2 +date %1 +amount-in %2 +amount-out %3 diff --git a/hledger/test/errors/csvamountonenonzero.test b/hledger/test/errors/csvamountonenonzero.test new file mode 100644 index 000000000..a396001bc --- /dev/null +++ b/hledger/test/errors/csvamountonenonzero.test @@ -0,0 +1,10 @@ +$$$ hledger print -f csvamountonenonzero.csv +>>>2 /hledger: Error: multiple non-zero amounts assigned, +please ensure just one. \(https:\/\/hledger.org\/csv.html#amount\) + record values: "2022-01-03","1","2" + for posting: 1 + assignment: amount-in %2 => value: 1 + assignment: amount-out %3 => value: 2 + +/ +>>>= 1 diff --git a/hledger/test/errors/csvamountparse.csv b/hledger/test/errors/csvamountparse.csv new file mode 100755 index 000000000..3792544ee --- /dev/null +++ b/hledger/test/errors/csvamountparse.csv @@ -0,0 +1,5 @@ +#!/usr/bin/env -S hledger print -f +# Unparseable amount. +2022-01-01,1 +2022-01-02,$1 +2022-01-03,badamount diff --git a/hledger/test/errors/csvamountparse.csv.rules b/hledger/test/errors/csvamountparse.csv.rules new file mode 100644 index 000000000..1227ffe7b --- /dev/null +++ b/hledger/test/errors/csvamountparse.csv.rules @@ -0,0 +1,3 @@ +skip 2 +date %1 +amount %2 diff --git a/hledger/test/errors/csvamountparse.test b/hledger/test/errors/csvamountparse.test new file mode 100644 index 000000000..46d80fa01 --- /dev/null +++ b/hledger/test/errors/csvamountparse.test @@ -0,0 +1,15 @@ +$$$ hledger print -f csvamountparse.csv +>>>2 /hledger: Error: error: could not parse "badamount" as an amount +record values: "2022-01-03","badamount" +the amount rule is: %2 +the date rule is: %1 + +the parse error is: 1:10: + \| +1 \| badamount + \| \^ +unexpected end of input +expecting '\+', '-', or number + +you may need to change your/ +>>>= 1 diff --git a/hledger/test/errors/csvbalanceparse.csv b/hledger/test/errors/csvbalanceparse.csv new file mode 100755 index 000000000..0ed4bd55b --- /dev/null +++ b/hledger/test/errors/csvbalanceparse.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger print -f +# Unparseable balance amount. +2022-01-03,badbalance diff --git a/hledger/test/errors/csvbalanceparse.csv.rules b/hledger/test/errors/csvbalanceparse.csv.rules new file mode 100644 index 000000000..888f06412 --- /dev/null +++ b/hledger/test/errors/csvbalanceparse.csv.rules @@ -0,0 +1,3 @@ +skip 2 +date %1 +balance %2 diff --git a/hledger/test/errors/csvbalanceparse.test b/hledger/test/errors/csvbalanceparse.test new file mode 100644 index 000000000..4a99f05b2 --- /dev/null +++ b/hledger/test/errors/csvbalanceparse.test @@ -0,0 +1,16 @@ +$$$ hledger print -f csvbalanceparse.csv +>>>2 /hledger: Error: error: could not parse "badbalance" as balance1 amount +record values: "2022-01-03","badbalance" +the balance rule is: %2 +the date rule is: %1 + +the parse error is: 1:11: + \| +1 \| badbalance + \| \^ +unexpected end of input +expecting '\+', '-', or number + + +/ +>>>= 1 diff --git a/hledger/test/errors/csvbalancetypeparse.csv b/hledger/test/errors/csvbalancetypeparse.csv new file mode 100755 index 000000000..da5db83d6 --- /dev/null +++ b/hledger/test/errors/csvbalancetypeparse.csv @@ -0,0 +1,4 @@ +#!/usr/bin/env -S hledger check -f +# See rules. +2022-01-01,1 + diff --git a/hledger/test/errors/csvbalancetypeparse.csv.rules b/hledger/test/errors/csvbalancetypeparse.csv.rules new file mode 100644 index 000000000..052d2fccd --- /dev/null +++ b/hledger/test/errors/csvbalancetypeparse.csv.rules @@ -0,0 +1,4 @@ +skip 2 +date %1 +balance %2 +balance-type badtype diff --git a/hledger/test/errors/csvbalancetypeparse.test b/hledger/test/errors/csvbalancetypeparse.test new file mode 100644 index 000000000..5de9aaa6d --- /dev/null +++ b/hledger/test/errors/csvbalancetypeparse.test @@ -0,0 +1,9 @@ +$$$ hledger check -f csvbalancetypeparse.csv +>>>2 /hledger: Error: balance-type "badtype" is invalid. Use =, ==, =\* or ==\*. +record values: "2022-01-01","1" +the balance rule is: %2 +the date rule is: %1 + + +/ +>>>= 1 diff --git a/hledger/test/errors/csvdateformat.csv b/hledger/test/errors/csvdateformat.csv new file mode 100755 index 000000000..73e45ec4c --- /dev/null +++ b/hledger/test/errors/csvdateformat.csv @@ -0,0 +1,4 @@ +#!/usr/bin/env -S hledger print -f +# See rules (missing/bad date-format rule). +# Note check doesn't show this error; print was needed. +a,b diff --git a/hledger/test/errors/csvdateformat.csv.rules b/hledger/test/errors/csvdateformat.csv.rules new file mode 100644 index 000000000..6a1b6e9eb --- /dev/null +++ b/hledger/test/errors/csvdateformat.csv.rules @@ -0,0 +1,2 @@ +skip 3 +date %1 diff --git a/hledger/test/errors/csvdateformat.test b/hledger/test/errors/csvdateformat.test new file mode 100644 index 000000000..7455d5cc4 --- /dev/null +++ b/hledger/test/errors/csvdateformat.test @@ -0,0 +1,8 @@ +$$$ hledger print -f csvdateformat.csv +>>>2 /hledger: Error: error: could not parse "a" as a date using date format "YYYY\/M\/D", "YYYY-M-D" or "YYYY.M.D" +record values: "a","b" +the date rule is: %1 +the date-format is: unspecified +you may need to change your date rule, add a date-format rule, or change your skip rule +for m\/d\/y or d\/m\/y d/ +>>>= 1 diff --git a/hledger/test/errors/csvdateparse.csv b/hledger/test/errors/csvdateparse.csv new file mode 100755 index 000000000..f13036592 --- /dev/null +++ b/hledger/test/errors/csvdateparse.csv @@ -0,0 +1,4 @@ +#!/usr/bin/env -S hledger check -f +# Date value not parseable by date-format rule. +2022-01-01,b +baddate,b diff --git a/hledger/test/errors/csvdateparse.csv.rules b/hledger/test/errors/csvdateparse.csv.rules new file mode 100644 index 000000000..717d10430 --- /dev/null +++ b/hledger/test/errors/csvdateparse.csv.rules @@ -0,0 +1,3 @@ +skip 2 +date %1 +date-format %Y-%m-%d diff --git a/hledger/test/errors/csvdateparse.test b/hledger/test/errors/csvdateparse.test new file mode 100644 index 000000000..ee3f93d0b --- /dev/null +++ b/hledger/test/errors/csvdateparse.test @@ -0,0 +1,8 @@ +$$$ hledger check -f csvdateparse.csv +>>>2 /hledger: Error: error: could not parse "baddate" as a date using date format "%Y-%m-%d" +record values: "baddate","b" +the date rule is: %1 +the date-format is: %Y-%m-%d +you may need to change your date rule, change your date-format rule, or change your skip rule +for m\/d\/y or d\/m\/y dates, use dat/ +>>>= 1 diff --git a/hledger/test/errors/csvdaterule.csv b/hledger/test/errors/csvdaterule.csv new file mode 100755 index 000000000..b586b5fb4 --- /dev/null +++ b/hledger/test/errors/csvdaterule.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger check -f +# Rules have no date rule. +a,b diff --git a/hledger/test/errors/csvdaterule.csv.rules b/hledger/test/errors/csvdaterule.csv.rules new file mode 100644 index 000000000..92d8bd67e --- /dev/null +++ b/hledger/test/errors/csvdaterule.csv.rules @@ -0,0 +1 @@ +skip 2 diff --git a/hledger/test/errors/csvdaterule.test b/hledger/test/errors/csvdaterule.test new file mode 100644 index 000000000..2419a021d --- /dev/null +++ b/hledger/test/errors/csvdaterule.test @@ -0,0 +1,6 @@ +$$$ hledger check -f csvdaterule.csv +>>>2 /hledger: Error: offset=0: +Please specify \(at top level\) the date field. Eg: date %1 + +/ +>>>= 1 diff --git a/hledger/test/errors/csvdecimalmarkparse.csv b/hledger/test/errors/csvdecimalmarkparse.csv new file mode 100755 index 000000000..f4da5151a --- /dev/null +++ b/hledger/test/errors/csvdecimalmarkparse.csv @@ -0,0 +1,4 @@ +#!/usr/bin/env -S hledger check -f +# See rules. +2022-01-01,1.0 + diff --git a/hledger/test/errors/csvdecimalmarkparse.csv.rules b/hledger/test/errors/csvdecimalmarkparse.csv.rules new file mode 100644 index 000000000..062e72e64 --- /dev/null +++ b/hledger/test/errors/csvdecimalmarkparse.csv.rules @@ -0,0 +1,4 @@ +skip 2 +date %1 +amount %2 +decimal-mark badmark diff --git a/hledger/test/errors/csvdecimalmarkparse.test b/hledger/test/errors/csvdecimalmarkparse.test new file mode 100644 index 000000000..0ed46520b --- /dev/null +++ b/hledger/test/errors/csvdecimalmarkparse.test @@ -0,0 +1,4 @@ +$$$ hledger check -f csvdecimalmarkparse.csv +>>>2 /hledger: Error: decimal-mark's argument should be "." or "," \(not "badmark"\) +/ +>>>= 1 diff --git a/hledger/test/errors/csvifblocknonempty.csv b/hledger/test/errors/csvifblocknonempty.csv new file mode 100755 index 000000000..84f97c3bd --- /dev/null +++ b/hledger/test/errors/csvifblocknonempty.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger check -f +# Rules have an empty conditional block. +a,b diff --git a/hledger/test/errors/csvifblocknonempty.csv.rules b/hledger/test/errors/csvifblocknonempty.csv.rules new file mode 100644 index 000000000..be75fc02e --- /dev/null +++ b/hledger/test/errors/csvifblocknonempty.csv.rules @@ -0,0 +1,2 @@ +# no (indented) rules following if +if foo diff --git a/hledger/test/errors/csvifblocknonempty.test b/hledger/test/errors/csvifblocknonempty.test new file mode 100644 index 000000000..9e6d16080 --- /dev/null +++ b/hledger/test/errors/csvifblocknonempty.test @@ -0,0 +1,10 @@ +$$$ hledger check -f csvifblocknonempty.csv +>>>2 /hledger: Error: .*csvifblocknonempty.csv.rules:2:1: + \| +2 \| if foo + \| \^ +start of conditional block found, but no assignment rules afterward +\(assignment rules in a conditional block should be indented\) + +/ +>>>= 1 diff --git a/hledger/test/errors/csviftablefieldnames.csv b/hledger/test/errors/csviftablefieldnames.csv new file mode 100755 index 000000000..eb28858cc --- /dev/null +++ b/hledger/test/errors/csviftablefieldnames.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger check -f +# See rules. + diff --git a/hledger/test/errors/csviftablefieldnames.csv.rules b/hledger/test/errors/csviftablefieldnames.csv.rules new file mode 100644 index 000000000..bfa963739 --- /dev/null +++ b/hledger/test/errors/csviftablefieldnames.csv.rules @@ -0,0 +1,2 @@ +# if table not using valid CSV field names. +if,date,nosuchfield,description diff --git a/hledger/test/errors/csviftablefieldnames.test b/hledger/test/errors/csviftablefieldnames.test new file mode 100644 index 000000000..bac26db57 --- /dev/null +++ b/hledger/test/errors/csviftablefieldnames.test @@ -0,0 +1,8 @@ +$$$ hledger check -f csviftablefieldnames.csv +>>>2 /hledger: Error: .*csviftablefieldnames.csv.rules:2:9: + \| +2 \| if,date,nosuchfield,description + \| \^\^\^\^\^\^\^\^\^\^\^\^ +unexpected "nosuchfield," +expecting "account1", "account10", "account11", "account12", "account13", "account14", "account15", "account16", "account17", "account18", "/ +>>>= 1 diff --git a/hledger/test/errors/csviftablenonempty.csv b/hledger/test/errors/csviftablenonempty.csv new file mode 100755 index 000000000..eb28858cc --- /dev/null +++ b/hledger/test/errors/csviftablenonempty.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger check -f +# See rules. + diff --git a/hledger/test/errors/csviftablenonempty.csv.rules b/hledger/test/errors/csviftablenonempty.csv.rules new file mode 100644 index 000000000..cd76861c9 --- /dev/null +++ b/hledger/test/errors/csviftablenonempty.csv.rules @@ -0,0 +1,2 @@ +# no (indented) rules following if table +if,date,description,comment diff --git a/hledger/test/errors/csviftablenonempty.test b/hledger/test/errors/csviftablenonempty.test new file mode 100644 index 000000000..611b283c5 --- /dev/null +++ b/hledger/test/errors/csviftablenonempty.test @@ -0,0 +1,9 @@ +$$$ hledger check -f csviftablenonempty.csv +>>>2 /hledger: Error: .*csviftablenonempty.csv.rules:2:1: + \| +2 \| if,date,description,comment + \| \^ +start of conditional table found, but no assignment rules afterward + +/ +>>>= 1 diff --git a/hledger/test/errors/csviftablevaluecount.csv b/hledger/test/errors/csviftablevaluecount.csv new file mode 100755 index 000000000..eb28858cc --- /dev/null +++ b/hledger/test/errors/csviftablevaluecount.csv @@ -0,0 +1,3 @@ +#!/usr/bin/env -S hledger check -f +# See rules. + diff --git a/hledger/test/errors/csviftablevaluecount.csv.rules b/hledger/test/errors/csviftablevaluecount.csv.rules new file mode 100644 index 000000000..5111a25a7 --- /dev/null +++ b/hledger/test/errors/csviftablevaluecount.csv.rules @@ -0,0 +1,4 @@ +# if table where some records have wrong number of values. +if,date,description +two,val1,val2 +one,val1 diff --git a/hledger/test/errors/csviftablevaluecount.test b/hledger/test/errors/csviftablevaluecount.test new file mode 100644 index 000000000..ec890c172 --- /dev/null +++ b/hledger/test/errors/csviftablevaluecount.test @@ -0,0 +1,9 @@ +$$$ hledger check -f csviftablevaluecount.csv +>>>2 /hledger: Error: .*csviftablevaluecount.csv.rules:4:1: + \| +4 \| one,val1 + \| \^ +line of conditional table should have 2 values, but this one has only 1 + +/ +>>>= 1 diff --git a/hledger/test/errors/csvnoinclude.csv b/hledger/test/errors/csvnoinclude.csv new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/errors/csvnoinclude.j b/hledger/test/errors/csvnoinclude.j new file mode 100755 index 000000000..6d54945ad --- /dev/null +++ b/hledger/test/errors/csvnoinclude.j @@ -0,0 +1,6 @@ +#!/usr/bin/env -S hledger check -f +# Trying to include a CSV file. + +include csvinclude.csv + + diff --git a/hledger/test/errors/csvnoinclude.test b/hledger/test/errors/csvnoinclude.test new file mode 100644 index 000000000..6f302749e --- /dev/null +++ b/hledger/test/errors/csvnoinclude.test @@ -0,0 +1,9 @@ +$$$ hledger check -f csvnoinclude.j +>>>2 /hledger: Error: .*csvnoinclude.j:4:23: + \| +4 \| include csvinclude.csv + \| \^ +No existing files match pattern: csvinclude.csv + +/ +>>>= 1 diff --git a/hledger/test/errors/csvskipvalue.csv b/hledger/test/errors/csvskipvalue.csv new file mode 100755 index 000000000..6a9b93c64 --- /dev/null +++ b/hledger/test/errors/csvskipvalue.csv @@ -0,0 +1,2 @@ +#!/usr/bin/env -S hledger check -f +# See rules. diff --git a/hledger/test/errors/csvskipvalue.csv.rules b/hledger/test/errors/csvskipvalue.csv.rules new file mode 100644 index 000000000..76577c1a7 --- /dev/null +++ b/hledger/test/errors/csvskipvalue.csv.rules @@ -0,0 +1,2 @@ +date %1 +skip badval diff --git a/hledger/test/errors/csvskipvalue.test b/hledger/test/errors/csvskipvalue.test new file mode 100644 index 000000000..2e4be3641 --- /dev/null +++ b/hledger/test/errors/csvskipvalue.test @@ -0,0 +1,4 @@ +$$$ hledger check -f csvskipvalue.csv +>>>2 /hledger: Error: could not parse skip value: "badval" +/ +>>>= 1 diff --git a/hledger/test/errors/csvstatusparse.csv b/hledger/test/errors/csvstatusparse.csv new file mode 100755 index 000000000..240ee00aa --- /dev/null +++ b/hledger/test/errors/csvstatusparse.csv @@ -0,0 +1,6 @@ +#!/usr/bin/env -S hledger print -f +# Status value not parseable. +2022-01-01,* +2022-01-02,! +2022-01-03, +2022-01-04,badstatus diff --git a/hledger/test/errors/csvstatusparse.csv.rules b/hledger/test/errors/csvstatusparse.csv.rules new file mode 100644 index 000000000..95e216085 --- /dev/null +++ b/hledger/test/errors/csvstatusparse.csv.rules @@ -0,0 +1,3 @@ +skip 2 +date %1 +status %2 diff --git a/hledger/test/errors/csvstatusparse.test b/hledger/test/errors/csvstatusparse.test new file mode 100644 index 000000000..17022c5aa --- /dev/null +++ b/hledger/test/errors/csvstatusparse.test @@ -0,0 +1,12 @@ +$$$ hledger print -f csvstatusparse.csv +>>>2 /hledger: Error: error: could not parse "badstatus" as a cleared status \(should be \*, ! or empty\) +the parse error is: 1:1: + \| +1 \| badstatus + \| \^ +unexpected 'b' +expecting '!', '\*', or end of input + + +/ +>>>= 1 diff --git a/hledger/test/errors/csvstdinrules.sh b/hledger/test/errors/csvstdinrules.sh new file mode 100755 index 000000000..398586f5d --- /dev/null +++ b/hledger/test/errors/csvstdinrules.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env -S sh +# Second space above is significant, prevents shelltest's "-w hledger" substitution. +# Try to read CSV from stdin without specifying a rules file. +echo | hledger -fcsv:- check diff --git a/hledger/test/errors/csvstdinrules.test b/hledger/test/errors/csvstdinrules.test new file mode 100644 index 000000000..bb598c777 --- /dev/null +++ b/hledger/test/errors/csvstdinrules.test @@ -0,0 +1,4 @@ +$$$ sh csvstdinrules.sh +>>>2 /hledger: Error: please use --rules-file when reading CSV from stdin +/ +>>>= 1 diff --git a/hledger/test/errors/csvtwofields.csv b/hledger/test/errors/csvtwofields.csv new file mode 100755 index 000000000..f629b6d26 --- /dev/null +++ b/hledger/test/errors/csvtwofields.csv @@ -0,0 +1,5 @@ +#!/usr/bin/env -S hledger check -f +# Record(s) have less than two fields. +a,a +b +c,c diff --git a/hledger/test/errors/csvtwofields.csv.rules b/hledger/test/errors/csvtwofields.csv.rules new file mode 100644 index 000000000..8c81abb3b --- /dev/null +++ b/hledger/test/errors/csvtwofields.csv.rules @@ -0,0 +1,2 @@ +skip 2 +date %1 diff --git a/hledger/test/errors/csvtwofields.test b/hledger/test/errors/csvtwofields.test new file mode 100644 index 000000000..9ab83b90b --- /dev/null +++ b/hledger/test/errors/csvtwofields.test @@ -0,0 +1,4 @@ +$$$ hledger check -f csvtwofields.csv +>>>2 /hledger: Error: CSV record \["b"\] has less than two fields +/ +>>>= 1