Tests use env variable to find mongodb host

This commit is contained in:
Victor Denisov 2017-04-09 10:20:10 -07:00
parent 24f060b9d9
commit a11d573ff1
3 changed files with 12 additions and 3 deletions

View file

@ -5,11 +5,15 @@ import Database.MongoDB.Connection (connect, host)
import Database.MongoDB.Query (access, slaveOk) import Database.MongoDB.Query (access, slaveOk)
import Data.Text (unpack) import Data.Text (unpack)
import Test.Hspec.Runner import Test.Hspec.Runner
import System.Environment (getEnv)
import System.IO.Error (catchIOError)
import TestImport
import qualified Spec import qualified Spec
main :: IO () main :: IO ()
main = do main = do
p <- connect $ host "localhost" mongodbHost <- getEnv mongodbHostEnvVariable `catchIOError` (\_ -> return "localhost")
p <- connect $ host mongodbHost
version <- access p slaveOk "admin" serverVersion version <- access p slaveOk "admin" serverVersion
putStrLn $ "Running tests with mongodb version: " ++ (unpack version) putStrLn $ "Running tests with mongodb version: " ++ (unpack version)
hspecWith defaultConfig Spec.spec hspecWith defaultConfig Spec.spec

View file

@ -6,6 +6,8 @@ import Data.String (IsString(..))
import TestImport import TestImport
import Control.Exception import Control.Exception
import Control.Monad (forM_) import Control.Monad (forM_)
import System.Environment (getEnv)
import System.IO.Error (catchIOError)
import qualified Data.List as L import qualified Data.List as L
import qualified Data.Text as T import qualified Data.Text as T
@ -15,7 +17,8 @@ testDBName = "mongodb-haskell-test"
db :: Action IO a -> IO a db :: Action IO a -> IO a
db action = do db action = do
pipe <- connect (host "127.0.0.1") mongodbHost <- getEnv mongodbHostEnvVariable `catchIOError` (\_ -> return "localhost")
pipe <- connect (host mongodbHost)
result <- access pipe master testDBName action result <- access pipe master testDBName action
close pipe close pipe
return result return result

View file

@ -8,7 +8,6 @@ module TestImport (
import Test.Hspec as Export hiding (Selector) import Test.Hspec as Export hiding (Selector)
import Database.MongoDB as Export import Database.MongoDB as Export
import Control.Monad.Trans as Export (MonadIO, liftIO) import Control.Monad.Trans as Export (MonadIO, liftIO)
import Data.Maybe (fromJust)
import Data.Time (ParseTime, UTCTime) import Data.Time (ParseTime, UTCTime)
import qualified Data.Time as Time import qualified Data.Time as Time
@ -32,3 +31,6 @@ parseDate = parseTime (iso8601DateFormat Nothing)
parseDateTime :: String -> UTCTime parseDateTime :: String -> UTCTime
parseDateTime = parseTime (iso8601DateFormat (Just "%H:%M:%S")) parseDateTime = parseTime (iso8601DateFormat (Just "%H:%M:%S"))
mongodbHostEnvVariable :: String
mongodbHostEnvVariable = "HASKELL_MONGODB_TEST_HOST"