refactor assertParse/assertParseEqual
This commit is contained in:
		
							parent
							
								
									d4965b87ff
								
							
						
					
					
						commit
						08607362b0
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | |||||||
| # hledger project makefile
 | # hledger project makefile
 | ||||||
| 
 | 
 | ||||||
| # optional features described in MANUAL, comment out if you don't have the libs
 | # optional features described in MANUAL, comment out if you don't have the libs
 | ||||||
| OPTFLAGS=-DCHART -DVTY -DWEB | OPTFLAGS= #-DCHART -DVTY -DWEB | ||||||
| #OPTFLAGS=-DCHART -DVTY -DWEBHAPPSTACK
 | #OPTFLAGS=-DCHART -DVTY -DWEBHAPPSTACK
 | ||||||
| 
 | 
 | ||||||
| # command to run during "make ci"
 | # command to run during "make ci"
 | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								Tests.hs
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								Tests.hs
									
									
									
									
									
								
							| @ -437,10 +437,10 @@ tests = TestList [ | |||||||
|     assertBool "ledgerFile parsing an empty file should give an empty ledger" $ null $ jtxns r |     assertBool "ledgerFile parsing an empty file should give an empty ledger" $ null $ jtxns r | ||||||
| 
 | 
 | ||||||
|   ,"ledgerHistoricalPrice" ~: |   ,"ledgerHistoricalPrice" ~: | ||||||
|     assertParse (parseWithCtx emptyCtx ledgerHistoricalPrice price1_str) price1 |     assertParseEqual (parseWithCtx emptyCtx ledgerHistoricalPrice price1_str) price1 | ||||||
| 
 | 
 | ||||||
|   ,"ledgerTransaction" ~: do |   ,"ledgerTransaction" ~: do | ||||||
|     assertParse (parseWithCtx emptyCtx ledgerTransaction entry1_str) entry1 |     assertParseEqual (parseWithCtx emptyCtx ledgerTransaction entry1_str) entry1 | ||||||
|     assertBool "ledgerTransaction should not parse just a date" |     assertBool "ledgerTransaction should not parse just a date" | ||||||
|                    $ isLeft $ parseWithCtx emptyCtx ledgerTransaction "2009/1/1\n" |                    $ isLeft $ parseWithCtx emptyCtx ledgerTransaction "2009/1/1\n" | ||||||
|     assertBool "ledgerTransaction should require some postings" |     assertBool "ledgerTransaction should require some postings" | ||||||
| @ -456,7 +456,7 @@ tests = TestList [ | |||||||
|     assertBool "ledgeraccountname rejects an empty trailing component" (isLeft $ parsewith ledgeraccountname "a:b:") |     assertBool "ledgeraccountname rejects an empty trailing component" (isLeft $ parsewith ledgeraccountname "a:b:") | ||||||
| 
 | 
 | ||||||
|   ,"ledgerposting" ~: |   ,"ledgerposting" ~: | ||||||
|     assertParse (parseWithCtx emptyCtx ledgerposting rawposting1_str) rawposting1 |     assertParseEqual (parseWithCtx emptyCtx ledgerposting rawposting1_str) rawposting1 | ||||||
| 
 | 
 | ||||||
|   ,"normaliseMixedAmount" ~: do |   ,"normaliseMixedAmount" ~: do | ||||||
|      normaliseMixedAmount (Mixed []) ~?= Mixed [nullamt] |      normaliseMixedAmount (Mixed []) ~?= Mixed [nullamt] | ||||||
| @ -842,8 +842,8 @@ tests = TestList [ | |||||||
|   --    ] |   --    ] | ||||||
| 
 | 
 | ||||||
|   ,"postingamount" ~: do |   ,"postingamount" ~: do | ||||||
|     assertParse (parseWithCtx emptyCtx postingamount " $47.18") (Mixed [dollars 47.18]) |     assertParseEqual (parseWithCtx emptyCtx postingamount " $47.18") (Mixed [dollars 47.18]) | ||||||
|     assertParse (parseWithCtx emptyCtx postingamount " $1.") |     assertParseEqual (parseWithCtx emptyCtx postingamount " $1.") | ||||||
|                 (Mixed [Amount Commodity {symbol="$",side=L,spaced=False,comma=False,precision=0} 1 Nothing]) |                 (Mixed [Amount Commodity {symbol="$",side=L,spaced=False,comma=False,precision=0} 1 Nothing]) | ||||||
| 
 | 
 | ||||||
|   ] |   ] | ||||||
|  | |||||||
| @ -290,9 +290,13 @@ tfilter _ t = t | |||||||
| is :: (Eq a, Show a) => a -> a -> Assertion | is :: (Eq a, Show a) => a -> a -> Assertion | ||||||
| a `is` e = assertEqual "" e a | a `is` e = assertEqual "" e a | ||||||
| 
 | 
 | ||||||
| -- | Assert a parse result is some expected value, or print a parse error. | -- | Assert a parse result is successful, printing the parse error on failure. | ||||||
| assertParse :: (Show a, Eq a) => (Either ParseError a) -> a -> Assertion | assertParse :: (Either ParseError a) -> Assertion | ||||||
| assertParse parse expected = either (assertFailure.show) (`is` expected) parse | assertParse parse = either (assertFailure.show) (const (return ())) parse | ||||||
|  | 
 | ||||||
|  | -- | Assert a parse result is some expected value, printing the parse error on failure. | ||||||
|  | assertParseEqual :: (Show a, Eq a) => (Either ParseError a) -> a -> Assertion | ||||||
|  | assertParseEqual parse expected = either (assertFailure.show) (`is` expected) parse | ||||||
| 
 | 
 | ||||||
| printParseError :: (Show a) => a -> IO () | printParseError :: (Show a) => a -> IO () | ||||||
| printParseError e = do putStr "parse error at "; print e | printParseError e = do putStr "parse error at "; print e | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user