test: don't try to read the journal
This commit is contained in:
		
							parent
							
								
									40d70ad10b
								
							
						
					
					
						commit
						3e0147b7e9
					
				@ -230,8 +230,12 @@ testmode = (defCommandMode ["test"]) {
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
-- | Run some or all hledger-lib and hledger unit tests, and exit with success or failure.
 | 
			
		||||
--
 | 
			
		||||
-- Unlike other hledger commands, this one does not operate on the user's Journal.
 | 
			
		||||
-- For ease of implementation the Journal parameter remains in the type signature, 
 | 
			
		||||
-- but it will not be valid and should not be used.
 | 
			
		||||
testcmd :: CliOpts -> Journal -> IO ()
 | 
			
		||||
testcmd opts _ = do
 | 
			
		||||
testcmd opts _donotuse = do
 | 
			
		||||
  let ts = 
 | 
			
		||||
        (if tree_ $ reportopts_ opts then matchedTestsTree else matchedTestsFlat) 
 | 
			
		||||
          opts tests_Hledger_Cli_Commands
 | 
			
		||||
 | 
			
		||||
@ -169,14 +169,17 @@ main = do
 | 
			
		||||
      | isBadCommand             = badCommandError
 | 
			
		||||
 | 
			
		||||
      -- builtin commands
 | 
			
		||||
      | Just (cmdmode, cmdaction) <- findCommand cmd = do 
 | 
			
		||||
        if cmd=="add" -- add command does extra work before reading journal
 | 
			
		||||
        then (do
 | 
			
		||||
          journalFilePathFromOpts opts >>= (ensureJournalFileExists . head) 
 | 
			
		||||
          withJournalDo opts cmdaction)
 | 
			
		||||
      | Just (cmdmode, cmdaction) <- findCommand cmd =
 | 
			
		||||
        (case cmd of
 | 
			
		||||
          "test" -> -- should not read the journal
 | 
			
		||||
            cmdaction opts (error "journal-less command tried to use the journal")
 | 
			
		||||
          "add" ->  -- should create the journal if missing
 | 
			
		||||
            (ensureJournalFileExists =<< (head <$> journalFilePathFromOpts opts)) >>
 | 
			
		||||
            withJournalDo opts cmdaction
 | 
			
		||||
          _ ->      -- all other commands: read the journal or fail if missing
 | 
			
		||||
            withJournalDo opts cmdaction
 | 
			
		||||
        )
 | 
			
		||||
        `orShowHelp` cmdmode
 | 
			
		||||
        else
 | 
			
		||||
          withJournalDo opts cmdaction `orShowHelp` cmdmode
 | 
			
		||||
 | 
			
		||||
      -- addon commands
 | 
			
		||||
      | isExternalCommand = do
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user