conduit-combinators 0.2.3 → 0.2.3.1
raw patch · 2 files changed
+19/−15 lines, 2 filesdep −basic-prelude
Dependencies removed: basic-prelude
Files
- conduit-combinators.cabal +2/−2
- test/Spec.hs +17/−13
conduit-combinators.cabal view
@@ -1,5 +1,5 @@ name: conduit-combinators-version: 0.2.3+version: 0.2.3.1 synopsis: Commonly used conduit functions, for both chunked and unchunked data description: Provides a replacement for Data.Conduit.List, as well as a convenient Conduit module. homepage: https://github.com/fpco/conduit-combinators@@ -47,7 +47,6 @@ build-depends: conduit-combinators , base , hspec >= 1.3- , basic-prelude , text , vector , transformers@@ -58,6 +57,7 @@ , mwc-random , base16-bytestring , base64-bytestring+ , system-filepath ghc-options: -Wall source-repository head
test/Spec.hs view
@@ -1,12 +1,15 @@-{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -fno-warn-type-defaults #-} import Conduit+import Prelude hiding (FilePath)+import Data.Maybe (listToMaybe) import Data.Conduit.Combinators.Internal+import Data.List (intersperse, sort, find)+import Filesystem.Path (hasExtension)+import Filesystem.Path.CurrentOS (encodeString) import Test.Hspec import Test.Hspec.QuickCheck-import BasicPrelude hiding (encodeUtf8) import qualified Data.Text as T import qualified Data.Text.Lazy as TL import Data.IORef@@ -14,8 +17,9 @@ import qualified Data.Vector.Unboxed as VU import qualified Data.Vector.Storable as VS import Control.Monad.Trans.Writer-import qualified Prelude import qualified System.IO as IO+import Data.Monoid (Monoid (..))+import Control.Applicative ((<$>), (<*>)) import Data.Builder import Data.Sequences.Lazy import Data.Textual.Encoding@@ -40,7 +44,7 @@ runIdentity (yieldMany [1..10] $$ sinkList) `shouldBe` [1..10] it "Text" $- runIdentity (yieldMany ("Hello World" :: Text) $$ sinkList)+ runIdentity (yieldMany ("Hello World" :: T.Text) $$ sinkList) `shouldBe` "Hello World" it "unfold" $ let f 11 = Nothing@@ -94,22 +98,22 @@ it "sourceFile" $ do let contents = concat $ replicate 10000 $ "this is some content\n" fp = "tmp"- writeFile fp contents+ writeFile (encodeString fp) contents res <- runResourceT $ sourceFile fp $$ sinkLazy- res `shouldBe` TL.fromStrict contents+ res `shouldBe` TL.pack contents it "sourceHandle" $ do let contents = concat $ replicate 10000 $ "this is some content\n" fp = "tmp" writeFile fp contents res <- IO.withBinaryFile "tmp" IO.ReadMode $ \h -> sourceHandle h $$ sinkLazy- res `shouldBe` TL.fromStrict contents+ res `shouldBe` TL.pack contents it "sourceIOHandle" $ do let contents = concat $ replicate 10000 $ "this is some content\n" fp = "tmp" writeFile fp contents let open = IO.openBinaryFile "tmp" IO.ReadMode res <- runResourceT $ sourceIOHandle open $$ sinkLazy- res `shouldBe` TL.fromStrict contents+ res `shouldBe` TL.pack contents prop "stdin" $ \(S.pack -> content) -> do S.writeFile "tmp" content IO.withBinaryFile "tmp" IO.ReadMode $ \h -> do@@ -312,7 +316,7 @@ let contents = concat $ replicate 1000 $ "this is some content\n" fp = "tmp" runResourceT $ yield contents $$ sinkFile fp- res <- readFile fp+ res <- readFile $ encodeString fp res `shouldBe` contents it "sinkHandle" $ do let contents = concat $ replicate 1000 $ "this is some content\n"@@ -381,9 +385,9 @@ res = runIdentity $ src $$ sink in res `shouldBe` (1, [6..10]) it "takeExactlyE" $- let src = yield ("Hello World" :: Text)+ let src = yield ("Hello World" :: T.Text) sink = do- takeExactlyCE 5 (mempty :: Sink Text Identity ())+ takeExactlyCE 5 (mempty :: Sink T.Text Identity ()) y <- sinkLazy return y res = runIdentity $ src $$ sink@@ -397,7 +401,7 @@ res <- src $$ sink res `shouldBe` (1, V.fromList $ T.unpack " World") it "takeExactlyE 2" $- let src = yield ("Hello World" :: Text)+ let src = yield ("Hello World" :: T.Text) sink = do x <- takeExactlyCE 5 $ return 1 y <- sinkLazy@@ -412,7 +416,7 @@ -- Aborted (core dumped) -- -- Report upstream when packages are released- in res `shouldBe` (1, " World" :: LText)+ in res `shouldBe` (1, " World" :: TL.Text) prop "concat" $ \input -> runIdentity (yield (T.pack input) $$ concatC =$ sinkList) `shouldBe` input