git.iko.soy/servant-quickcheck
on master help sign in
Cleanup
commit0682e353d6b7465ec57bd8a97400ac80ef929c5c authorJulian K. Arni <jkarni@gmail.com> dateSun 28 Aug 2016, 19:17 (10 years ago) parent1a24673
8 files changed+58−51
src/Servant/QuickCheck.hs+3−3 src/Servant/QuickCheck/Internal.hs+4−4 src/Servant/QuickCheck/Internal/Equality.hs+3−3 src/Servant/QuickCheck/Internal/ErrorTypes.hs+22−15 src/Servant/QuickCheck/Internal/HasGenRequest.hs+14−14 src/Servant/QuickCheck/Internal/Predicates.hs+6−6 src/Servant/QuickCheck/Internal/QuickCheck.hs+5−4 test/Servant/QuickCheck/InternalSpec.hs+1−2
src/Servant/QuickCheck.hs+3−3
@@ -69,10 +69,10 @@ module Servant.QuickCheck
6969
7070 ) where
7171
72+import Data.Proxy (Proxy (..))
73+import Servant.Client (BaseUrl (..), Scheme (..))
7274import Servant.QuickCheck.Internal
73−import Servant.Client (BaseUrl(..), Scheme(..))
74−import Test.QuickCheck (Args(..), stdArgs)
75−import Data.Proxy (Proxy(..))
75+import Test.QuickCheck (Args (..), stdArgs)
7676
7777-- | QuickCheck @Args@ with 1000 rather than 100 test cases.
7878--
src/Servant/QuickCheck/Internal.hs+4−4
@@ -1,7 +1,7 @@
11module Servant.QuickCheck.Internal (module X) where
22
3+import Servant.QuickCheck.Internal.Equality as X
4+import Servant.QuickCheck.Internal.ErrorTypes as X
35import Servant.QuickCheck.Internal.HasGenRequest as X
4−import Servant.QuickCheck.Internal.Predicates as X
5−import Servant.QuickCheck.Internal.QuickCheck as X
6−import Servant.QuickCheck.Internal.Equality as X
7−import Servant.QuickCheck.Internal.ErrorTypes as X
6+import Servant.QuickCheck.Internal.Predicates as X
7+import Servant.QuickCheck.Internal.QuickCheck as X
src/Servant/QuickCheck/Internal/Equality.hs+3−3
@@ -1,8 +1,8 @@
11module Servant.QuickCheck.Internal.Equality where
22
3−import Data.Function (on)
4−import Network.HTTP.Client (Response, responseBody)
5−import Prelude.Compat
3+import Data.Function (on)
4+import Network.HTTP.Client (Response, responseBody)
5+import Prelude.Compat
66
77newtype ResponseEquality b
88 = ResponseEquality { getResponseEquality :: Response b -> Response b -> Bool }
src/Servant/QuickCheck/Internal/ErrorTypes.hs+22−15
@@ -10,6 +10,28 @@ import Network.HTTP.Types (Header, statusCode)
1010import Prelude.Compat
1111import Text.PrettyPrint
1212
13+data PredicateFailure
14+ = PredicateFailure T.Text (Maybe C.Request) (C.Response LBS.ByteString)
15+ deriving (Generic)
16+
17+instance Exception ServerEqualityFailure where
18+
19+instance Show PredicateFailure where
20+ show = render . prettyPredicateFailure
21+
22+
23+data ServerEqualityFailure
24+ = ServerEqualityFailure C.Request (C.Response LBS.ByteString) (C.Response LBS.ByteString)
25+ deriving (Generic)
26+
27+instance Show ServerEqualityFailure where
28+ show = render . prettyServerEqualityFailure
29+
30+
31+instance Exception PredicateFailure where
32+
33+-- * Pretty printing
34+
1335prettyHeaders :: [Header] -> Doc
1436prettyHeaders hdrs = vcat $ prettyHdr <$> hdrs
1537 where
@@ -35,12 +57,6 @@ prettyResp r =
3557 $$ text "Body:" <+> (nest 5 $ text . cs $ C.responseBody r))
3658
3759
38−-- The error that occurred.
39−data PredicateFailure = PredicateFailure T.Text (Maybe C.Request) (C.Response LBS.ByteString)
40− deriving (Generic)
41−
42−data ServerEqualityFailure = ServerEqualityFailure C.Request (C.Response LBS.ByteString) (C.Response LBS.ByteString)
43− deriving (Generic)
4460
4561prettyServerEqualityFailure :: ServerEqualityFailure -> Doc
4662prettyServerEqualityFailure (ServerEqualityFailure req resp1 resp2) =
@@ -61,12 +77,3 @@ prettyPredicateFailure (PredicateFailure predicate req resp) =
6177 Nothing -> text ""
6278 Just v -> prettyReq v
6379
64−instance Show ServerEqualityFailure where
65− show = render . prettyServerEqualityFailure
66−
67−instance Exception ServerEqualityFailure where
68−
69−instance Show PredicateFailure where
70− show = render . prettyPredicateFailure
71−
72−instance Exception PredicateFailure where
src/Servant/QuickCheck/Internal/HasGenRequest.hs+14−14
@@ -1,20 +1,20 @@
11{-# LANGUAGE PolyKinds #-}
22module Servant.QuickCheck.Internal.HasGenRequest where
33
4−import Data.Default.Class (def)
5−import Data.Monoid ((<>))
6−import Data.String (fromString)
7−import Data.String.Conversions (cs)
8−import GHC.TypeLits (KnownSymbol, Nat, symbolVal)
9−import Network.HTTP.Client (Request, RequestBody (..), host,
10− method, path, port, queryString,
11− requestBody, requestHeaders, secure)
12−import Network.HTTP.Media (renderHeader)
13−import Prelude.Compat
14−import Servant
15−import Servant.API.ContentTypes (AllMimeRender (..))
16−import Servant.Client (BaseUrl (..), Scheme (..))
17−import Test.QuickCheck (Arbitrary (..), Gen, elements, oneof)
4+import Data.Default.Class (def)
5+import Data.Monoid ((<>))
6+import Data.String (fromString)
7+import Data.String.Conversions (cs)
8+import GHC.TypeLits (KnownSymbol, Nat, symbolVal)
9+import Network.HTTP.Client (Request, RequestBody (..), host, method, path,
10+ port, queryString, requestBody, requestHeaders,
11+ secure)
12+import Network.HTTP.Media (renderHeader)
13+import Prelude.Compat
14+import Servant
15+import Servant.API.ContentTypes (AllMimeRender (..))
16+import Servant.Client (BaseUrl (..), Scheme (..))
17+import Test.QuickCheck (Arbitrary (..), Gen, elements, oneof)
1818
1919
2020class HasGenRequest a where
src/Servant/QuickCheck/Internal/Predicates.hs+6−6
@@ -1,11 +1,10 @@
11module Servant.QuickCheck.Internal.Predicates where
22
3−import Control.Exception (catch, SomeException, throw)
4−import Control.Monad (liftM2, guard, ap)
3+import Control.Exception (SomeException, catch, throw)
4+import Control.Monad (ap, guard, liftM2)
55import Control.Monad.Reader
66import Data.Aeson (Object, decode)
77import Data.Bifunctor (Bifunctor (..))
8−import Prelude.Compat
98import qualified Data.ByteString as SBS
109import qualified Data.ByteString.Char8 as SBSC
1110import qualified Data.ByteString.Lazy as LBS
@@ -22,9 +21,10 @@ import Network.HTTP.Client (Manager, Request, Response, httpLbs,
2221 responseStatus)
2322import Network.HTTP.Media (matchAccept)
2423import Network.HTTP.Types (methodGet, methodHead, parseMethod,
25− renderStdMethod, status200, status201,
26− status300, status401, status405,
27− status500, status100)
24+ renderStdMethod, status100, status200,
25+ status201, status300, status401,
26+ status405, status500)
27+import Prelude.Compat
2828
2929import Servant.QuickCheck.Internal.ErrorTypes
3030
src/Servant/QuickCheck/Internal/QuickCheck.hs+5−4
@@ -1,6 +1,8 @@
11{-# LANGUAGE RecordWildCards #-}
22module Servant.QuickCheck.Internal.QuickCheck where
33
4+import Control.Concurrent (modifyMVar_, newMVar, readMVar)
5+import Control.Monad (unless)
46import qualified Data.ByteString.Lazy as LBS
57import Data.Proxy (Proxy)
68import Data.String (IsString (..))
@@ -16,15 +18,14 @@ import System.IO.Unsafe (unsafePerformIO)
1618import Test.Hspec (Expectation, expectationFailure)
1719import Test.QuickCheck (Args (..), Result (..),
1820 quickCheckWithResult)
19−import Test.QuickCheck.Monadic (assert, forAllM, monadicIO, run, monitor)
21+import Test.QuickCheck.Monadic (assert, forAllM, monadicIO, monitor,
22+ run)
2023import Test.QuickCheck.Property (counterexample)
21−import Control.Monad (unless)
22−import Control.Concurrent (newMVar, modifyMVar_, readMVar)
2324
2425import Servant.QuickCheck.Internal.Equality
26+import Servant.QuickCheck.Internal.ErrorTypes
2527import Servant.QuickCheck.Internal.HasGenRequest
2628import Servant.QuickCheck.Internal.Predicates
27−import Servant.QuickCheck.Internal.ErrorTypes
2829
2930
3031-- | Start a servant application on an open port, run the provided function,
test/Servant/QuickCheck/InternalSpec.hs+1−2
@@ -7,8 +7,7 @@ import Prelude.Compat
77import Servant
88import Servant.API.Internal.Test.ComprehensiveAPI (comprehensiveAPI)
99import Test.Hspec (Spec, context, describe, it,
10− pending, shouldBe,
11− shouldContain)
10+ shouldBe, shouldContain)
1211import Test.Hspec.Core.Spec (Arg, Example, Result (..),
1312 defaultParams,
1413 evaluateExample)