servant-quickcheck 0.0.1.0 → 0.0.1.1
raw patch · 5 files changed
+33/−35 lines, 5 filesdep −bifunctorsdep ~QuickCheckdep ~aesondep ~base
Dependencies removed: bifunctors
Dependency ranges changed: QuickCheck, aeson, base, http-types, mtl, servant, servant-client, servant-server, string-conversions
Files
- CHANGELOG.md +5/−0
- servant-quickcheck.cabal +17/−18
- src/Servant/QuickCheck/Internal/ErrorTypes.hs +3/−2
- src/Servant/QuickCheck/Internal/Predicates.hs +5/−9
- src/Servant/QuickCheck/Internal/QuickCheck.hs +3/−6
CHANGELOG.md view
@@ -1,3 +1,8 @@+# 0.0.1.1++- Exclude GHC 7.8 base (it wasn't properly supported anyhow).+- More generous bounds for other packages.+ # 0.0.1.0 - Better error messages. Error messages now contain failing predicate, failing
servant-quickcheck.cabal view
@@ -1,5 +1,5 @@ name: servant-quickcheck-version: 0.0.1.0+version: 0.0.1.1 synopsis: QuickCheck entire APIs description: This packages provides QuickCheck properties that are tested across an entire@@ -27,30 +27,28 @@ , Servant.QuickCheck.Internal.QuickCheck , Servant.QuickCheck.Internal.Equality , Servant.QuickCheck.Internal.ErrorTypes- build-depends: base >=4.7 && <4.9+ build-depends: base >=4.8 && <4.9 , base-compat == 0.9.*- , QuickCheck == 2.8.*+ , aeson > 0.8 && < 0.12 , bytestring == 0.10.*- , aeson > 0.10 && < 0.12- , mtl == 2.2.*+ , case-insensitive == 1.2.*+ , data-default-class == 0.0.*+ , hspec == 2.2.* , http-client == 0.4.*- , http-types == 0.9.* , http-media == 0.6.*- , servant-client == 0.7.*- , servant-server == 0.7.*- , string-conversions == 0.4.*- , data-default-class == 0.0.*- , servant == 0.7.*- , warp >= 3.2.4 && < 3.3+ , http-types > 0.8 && < 0.10+ , mtl > 2.1 && < 2.3+ , pretty == 1.1.* , process == 1.2.*- , temporary == 1.2.*+ , QuickCheck > 2.7 && < 2.9+ , servant > 0.6 && < 0.9+ , servant-client > 0.6 && < 0.9+ , servant-server > 0.6 && < 0.9 , split == 0.2.*- , case-insensitive == 1.2.*- , hspec == 2.2.*+ , string-conversions > 0.3 && < 0.5+ , temporary == 1.2.* , text == 1.*- , pretty == 1.1.*- if impl(ghc < 7.10)- build-depends: bifunctors == 5.*+ , warp >= 3.2.4 && < 3.3 hs-source-dirs: src default-extensions: TypeOperators@@ -68,6 +66,7 @@ , OverloadedStrings , FunctionalDependencies , NoImplicitPrelude+ , DeriveDataTypeable default-language: Haskell2010 test-suite spec
src/Servant/QuickCheck/Internal/ErrorTypes.hs view
@@ -4,6 +4,7 @@ import qualified Data.ByteString.Lazy as LBS import Data.String.Conversions (cs) import qualified Data.Text as T+import Data.Typeable (Typeable) import GHC.Generics (Generic) import qualified Network.HTTP.Client as C import Network.HTTP.Types (Header, statusCode)@@ -12,7 +13,7 @@ data PredicateFailure = PredicateFailure T.Text (Maybe C.Request) (C.Response LBS.ByteString)- deriving (Generic)+ deriving (Typeable, Generic) instance Exception ServerEqualityFailure where @@ -22,7 +23,7 @@ data ServerEqualityFailure = ServerEqualityFailure C.Request (C.Response LBS.ByteString) (C.Response LBS.ByteString)- deriving (Generic)+ deriving (Typeable, Generic) instance Show ServerEqualityFailure where show = render . prettyServerEqualityFailure
src/Servant/QuickCheck/Internal/Predicates.hs view
@@ -1,10 +1,8 @@ module Servant.QuickCheck.Internal.Predicates where -import Control.Exception (SomeException, catch, throw)-import Control.Monad (ap, guard, liftM2)-import Control.Monad.Reader+import Control.Exception (catch, throw)+import Control.Monad (when, unless, liftM2) import Data.Aeson (Object, decode)-import Data.Bifunctor (Bifunctor (..)) import qualified Data.ByteString as SBS import qualified Data.ByteString.Char8 as SBSC import qualified Data.ByteString.Lazy as LBS@@ -13,12 +11,10 @@ import Data.List.Split (wordsBy) import Data.Maybe (fromMaybe, isJust) import Data.Monoid ((<>))-import Data.Text (Text) import GHC.Generics (Generic) import Network.HTTP.Client (Manager, Request, Response, httpLbs,- method, parseUrl, requestHeaders,- responseBody, responseHeaders,- responseStatus)+ method, requestHeaders, responseBody,+ responseHeaders, parseUrl, responseStatus) import Network.HTTP.Media (matchAccept) import Network.HTTP.Types (methodGet, methodHead, parseMethod, renderStdMethod, status100, status200,@@ -134,7 +130,7 @@ | m <- [minBound .. maxBound ] , renderStdMethod m /= method req ] case filter pred' resp of- (x:xs) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x+ (x:_) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x [] -> return resp where pred' resp = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)
src/Servant/QuickCheck/Internal/QuickCheck.hs view
@@ -5,9 +5,6 @@ import Control.Monad (unless) import qualified Data.ByteString.Lazy as LBS import Data.Proxy (Proxy)-import Data.String (IsString (..))-import Data.Text (Text)-import GHC.Generics (Generic) import qualified Network.HTTP.Client as C import Network.Wai.Handler.Warp (withApplication) import Prelude.Compat@@ -87,7 +84,7 @@ assert False case r of Success {} -> return ()- f@Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $+ Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $ "Failed:\n" ++ show x GaveUp { numTests = n } -> expectationFailure $ "Gave up after " ++ show n ++ " tests" NoExpectedFailure {} -> expectationFailure $ "No expected failure"@@ -121,11 +118,11 @@ v <- run $ finishPredicates preds (noCheckStatus req) defManager run $ modifyMVar_ deetsMVar $ const $ return v case v of- Just x -> assert False+ Just _ -> assert False _ -> return () case r of Success {} -> return ()- f@Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $+ Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $ "Failed:\n" ++ show x GaveUp { numTests = n } -> expectationFailure $ "Gave up after " ++ show n ++ " tests" NoExpectedFailure {} -> expectationFailure $ "No expected failure"