wai-test 0.1.3.1 → 1.0.0
raw patch · 2 files changed
+21/−17 lines, 2 filesdep +blaze-builder-conduitdep +conduitdep −blaze-builder-enumeratordep −enumeratordep ~waiPVP ok
version bump matches the API change (PVP)
Dependencies added: blaze-builder-conduit, conduit
Dependencies removed: blaze-builder-enumerator, enumerator
Dependency ranges changed: wai
API changes (from Hackage documentation)
Files
- Network/Wai/Test.hs +17/−13
- wai-test.cabal +4/−4
Network/Wai/Test.hs view
@@ -26,14 +26,15 @@ import qualified Data.Map as Map import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as S8-import Data.Enumerator (joinI, ($$), run_, enumList)-import Data.Enumerator.List (consume)-import Blaze.ByteString.Builder.Enumerator (builderToByteString)+import Data.Conduit.Blaze (builderToByteString) import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Lazy.Char8 as L8 import qualified Network.HTTP.Types as H import Data.CaseInsensitive (CI) import qualified Data.ByteString as S+import qualified Data.Conduit as C+import qualified Data.Conduit.List as CL+import Data.Monoid (mempty) type Session = ReaderT Application (StateT ClientState IO) @@ -73,23 +74,26 @@ , remoteHost = error "Network.Wai.Test.defaultRequest{remoteHost}" , pathInfo = [] , queryString = []+ , requestBody = mempty+ , vault = mempty } srequest :: SRequest -> Session SResponse srequest (SRequest req bod) = do app <- ask- res <- liftIO $ run_ $ enumList 4 (L.toChunks bod) $$ app req- sres <- liftIO $ runResponse res- -- FIXME cookie processing- return sres+ liftIO $ C.runResourceT $ do+ let req' = req { requestBody = CL.sourceList $ L.toChunks bod }+ res <- app req'+ sres <- runResponse res+ -- FIXME cookie processing+ return sres -runResponse :: Response -> IO SResponse-runResponse res =- responseEnumerator res go+runResponse :: Response -> C.ResourceT IO SResponse+runResponse res = do+ bss <- body C.$= builderToByteString C.$$ CL.consume+ return $ SResponse s h $ L.fromChunks bss where- go s h = do- bss <- joinI $ builderToByteString $$ consume- return $ SResponse s h $ L.fromChunks bss+ (s, h, body) = responseSource res assertBool :: String -> Bool -> Session () assertBool s b = liftIO $ H.assertBool s b
wai-test.cabal view
@@ -1,5 +1,5 @@ name: wai-test-version: 0.1.3.1+version: 1.0.0 license: BSD3 license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -14,14 +14,14 @@ library build-depends: base >= 4 && < 5- , wai >= 0.4 && < 0.5+ , wai >= 1.0 && < 1.1 , bytestring >= 0.9.1.4 && < 0.10 , blaze-builder >= 0.2.1.4 && < 0.4 , transformers >= 0.2.2 && < 0.3 , containers >= 0.2 && < 0.5- , enumerator >= 0.4.8 && < 0.5+ , conduit+ , blaze-builder-conduit >= 0.0 && < 0.1 , cookie >= 0.2 && < 0.4- , blaze-builder-enumerator >= 0.2 && < 0.3 , HUnit >= 1.2 && < 1.3 , http-types >= 0.6 && < 0.7 , case-insensitive >= 0.2