From 653ffd02fb1a82482bc0cd1959754cca2b9e7baa Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Sun, 6 May 2012 20:37:20 +0200 Subject: [PATCH 1/4] yesod-core: Adapt tests for hspec-1.1 This is not strictly necessary, the `UnevaluatedSpec` is merely deprecated. But it is a good idea anyway. --- yesod-core/test/YesodCoreTest.hs | 4 ++-- yesod-core/test/YesodCoreTest/Cache.hs | 3 +-- yesod-core/test/YesodCoreTest/CleanPath.hs | 3 +-- yesod-core/test/YesodCoreTest/ErrorHandling.hs | 3 +-- yesod-core/test/YesodCoreTest/Exceptions.hs | 3 +-- yesod-core/test/YesodCoreTest/InternalRequest.hs | 9 ++++----- yesod-core/test/YesodCoreTest/JsLoader.hs | 3 +-- yesod-core/test/YesodCoreTest/Links.hs | 3 +-- yesod-core/test/YesodCoreTest/Media.hs | 3 +-- yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs | 3 +-- yesod-core/test/YesodCoreTest/Redirect.hs | 3 +-- yesod-core/test/YesodCoreTest/WaiSubsite.hs | 3 +-- yesod-core/test/YesodCoreTest/Widget.hs | 3 +-- yesod-core/yesod-core.cabal | 2 +- 14 files changed, 18 insertions(+), 30 deletions(-) diff --git a/yesod-core/test/YesodCoreTest.hs b/yesod-core/test/YesodCoreTest.hs index db4e2ccf..b89d5ed2 100644 --- a/yesod-core/test/YesodCoreTest.hs +++ b/yesod-core/test/YesodCoreTest.hs @@ -13,9 +13,9 @@ import qualified YesodCoreTest.WaiSubsite as WaiSubsite import qualified YesodCoreTest.Redirect as Redirect import qualified YesodCoreTest.JsLoader as JsLoader -import Test.Hspec.Core (UnevaluatedSpec) +import Test.Hspec -specs :: [UnevaluatedSpec] +specs :: [Spec] specs = [ cleanPathTest , exceptionsTest diff --git a/yesod-core/test/YesodCoreTest/Cache.hs b/yesod-core/test/YesodCoreTest/Cache.hs index e38fddb6..9e96947b 100644 --- a/yesod-core/test/YesodCoreTest/Cache.hs +++ b/yesod-core/test/YesodCoreTest/Cache.hs @@ -4,7 +4,6 @@ module YesodCoreTest.Cache (cacheTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit() import Network.Wai @@ -36,7 +35,7 @@ getRootR = do Nothing <- cacheLookup key return () -cacheTest :: UnevaluatedSpec +cacheTest :: Spec cacheTest = describe "Test.Cache" [ it "works" works diff --git a/yesod-core/test/YesodCoreTest/CleanPath.hs b/yesod-core/test/YesodCoreTest/CleanPath.hs index a7a1a6f0..3b916bc5 100644 --- a/yesod-core/test/YesodCoreTest/CleanPath.hs +++ b/yesod-core/test/YesodCoreTest/CleanPath.hs @@ -4,7 +4,6 @@ module YesodCoreTest.CleanPath (cleanPathTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit() import Yesod.Core hiding (Request) @@ -63,7 +62,7 @@ getBarR, getPlainR :: Handler RepPlain getBarR = return $ RepPlain "bar" getPlainR = return $ RepPlain "plain" -cleanPathTest :: UnevaluatedSpec +cleanPathTest :: Spec cleanPathTest = describe "Test.CleanPath" [ it "remove trailing slash" removeTrailingSlash diff --git a/yesod-core/test/YesodCoreTest/ErrorHandling.hs b/yesod-core/test/YesodCoreTest/ErrorHandling.hs index 3928047b..3ec1df30 100644 --- a/yesod-core/test/YesodCoreTest/ErrorHandling.hs +++ b/yesod-core/test/YesodCoreTest/ErrorHandling.hs @@ -5,7 +5,6 @@ module YesodCoreTest.ErrorHandling ) where import Yesod.Core import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit() import Network.Wai import Network.Wai.Test @@ -53,7 +52,7 @@ postAfterRunRequestBodyR = do _ <- error $ show x getHomeR -errorHandlingTest :: UnevaluatedSpec +errorHandlingTest :: Spec errorHandlingTest = describe "Test.ErrorHandling" [ it "says not found" caseNotFound , it "says 'There was an error' before runRequestBody" caseBefore diff --git a/yesod-core/test/YesodCoreTest/Exceptions.hs b/yesod-core/test/YesodCoreTest/Exceptions.hs index df52df81..81c10d07 100644 --- a/yesod-core/test/YesodCoreTest/Exceptions.hs +++ b/yesod-core/test/YesodCoreTest/Exceptions.hs @@ -4,7 +4,6 @@ module YesodCoreTest.Exceptions (exceptionsTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) @@ -31,7 +30,7 @@ getRedirR = do setHeader "foo" "bar" redirectWith status301 RootR -exceptionsTest :: UnevaluatedSpec +exceptionsTest :: Spec exceptionsTest = describe "Test.Exceptions" [ it "500" case500 , it "redirect keeps headers" caseRedirect diff --git a/yesod-core/test/YesodCoreTest/InternalRequest.hs b/yesod-core/test/YesodCoreTest/InternalRequest.hs index a5106570..2158f262 100644 --- a/yesod-core/test/YesodCoreTest/InternalRequest.hs +++ b/yesod-core/test/YesodCoreTest/InternalRequest.hs @@ -9,9 +9,8 @@ import Network.Wai.Test import Yesod.Internal.TestApi (randomString, parseWaiRequest') import Yesod.Request (Request (..)) import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) -randomStringSpecs :: UnevaluatedSpec +randomStringSpecs :: Spec randomStringSpecs = describe "Yesod.Internal.Request.randomString" [ it "looks reasonably random" looksRandom , it "does not repeat itself" $ noRepeat 10 100 @@ -31,7 +30,7 @@ g :: StdGen g = error "test/YesodCoreTest/InternalRequest.g" -tokenSpecs :: UnevaluatedSpec +tokenSpecs :: Spec tokenSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqToken)" [ it "is Nothing if sessions are disabled" noDisabledToken , it "ignores pre-existing token if sessions are disabled" ignoreDisabledToken @@ -56,7 +55,7 @@ generateToken = reqToken r /= Nothing where r = parseWaiRequest' defaultRequest [("_TOKEN", "old")] True g -langSpecs :: UnevaluatedSpec +langSpecs :: Spec langSpecs = describe "Yesod.Internal.Request.parseWaiRequest (reqLangs)" [ it "respects Accept-Language" respectAcceptLangs , it "respects sessions" respectSessionLang @@ -94,7 +93,7 @@ prioritizeLangs = reqLangs r == ["en-QUERY", "en-COOKIE", "en-SESSION", "en", "e } [("_LANG", "en-SESSION")] False g -internalRequestTest :: UnevaluatedSpec +internalRequestTest :: Spec internalRequestTest = describe "Test.InternalRequestTest" [ randomStringSpecs , tokenSpecs diff --git a/yesod-core/test/YesodCoreTest/JsLoader.hs b/yesod-core/test/YesodCoreTest/JsLoader.hs index 53b8beef..c23b2229 100644 --- a/yesod-core/test/YesodCoreTest/JsLoader.hs +++ b/yesod-core/test/YesodCoreTest/JsLoader.hs @@ -7,7 +7,6 @@ import YesodCoreTest.JsLoaderSites.HeadAsync (HA(..)) import YesodCoreTest.JsLoaderSites.Bottom (B(..)) import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) @@ -23,7 +22,7 @@ instance Yesod H where getHeadR :: Handler RepHtml getHeadR = defaultLayout $ addScriptRemote "load.js" -specs :: UnevaluatedSpec +specs :: Spec specs = describe "Test.JsLoader" [ it "link from head" $ runner H $ do res <- request defaultRequest diff --git a/yesod-core/test/YesodCoreTest/Links.hs b/yesod-core/test/YesodCoreTest/Links.hs index 98c2d7a8..1e8e8ca2 100644 --- a/yesod-core/test/YesodCoreTest/Links.hs +++ b/yesod-core/test/YesodCoreTest/Links.hs @@ -4,7 +4,6 @@ module YesodCoreTest.Links (linksTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) @@ -21,7 +20,7 @@ instance Yesod Y getRootR :: Handler RepHtml getRootR = defaultLayout $ toWidget [hamlet||] -linksTest :: UnevaluatedSpec +linksTest :: Spec linksTest = describe "Test.Links" [ it "linkToHome" case_linkToHome ] diff --git a/yesod-core/test/YesodCoreTest/Media.hs b/yesod-core/test/YesodCoreTest/Media.hs index 5ffaec37..812b39de 100644 --- a/yesod-core/test/YesodCoreTest/Media.hs +++ b/yesod-core/test/YesodCoreTest/Media.hs @@ -5,7 +5,6 @@ module YesodCoreTest.Media (mediaTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) import Network.Wai @@ -50,7 +49,7 @@ caseMediaLink = runner $ do assertStatus 200 res flip assertBody res "\n" -mediaTest :: UnevaluatedSpec +mediaTest :: Spec mediaTest = describe "Test.Media" [ it "media" caseMedia , it "media link" caseMediaLink diff --git a/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs b/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs index 7c9c932e..63e20c80 100644 --- a/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs +++ b/yesod-core/test/YesodCoreTest/NoOverloadedStrings.hs @@ -3,7 +3,6 @@ module YesodCoreTest.NoOverloadedStrings (noOverloadedTest, Widget) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) @@ -45,7 +44,7 @@ case_sanity = runner $ do res <- request defaultRequest assertBody mempty res -noOverloadedTest :: UnevaluatedSpec +noOverloadedTest :: Spec noOverloadedTest = describe "Test.NoOverloadedStrings" [ it "sanity" case_sanity ] diff --git a/yesod-core/test/YesodCoreTest/Redirect.hs b/yesod-core/test/YesodCoreTest/Redirect.hs index 0b406785..178dbe2f 100644 --- a/yesod-core/test/YesodCoreTest/Redirect.hs +++ b/yesod-core/test/YesodCoreTest/Redirect.hs @@ -4,7 +4,6 @@ module YesodCoreTest.Redirect (specs, Widget) where import YesodCoreTest.YesodTest import Yesod.Handler (redirectWith) import qualified Network.HTTP.Types as H -import Test.Hspec.Core (UnevaluatedSpec) data Y = Y mkYesod "Y" [parseRoutes| @@ -27,7 +26,7 @@ getR303 = redirectWith H.status303 RootR getR307 = redirectWith H.status307 RootR getRRegular = redirect RootR -specs :: UnevaluatedSpec +specs :: Spec specs = describe "Redirect" [ it "301 redirect" $ app $ do res <- request defaultRequest { pathInfo = ["r301"] } diff --git a/yesod-core/test/YesodCoreTest/WaiSubsite.hs b/yesod-core/test/YesodCoreTest/WaiSubsite.hs index f5e209c9..929f2d2b 100644 --- a/yesod-core/test/YesodCoreTest/WaiSubsite.hs +++ b/yesod-core/test/YesodCoreTest/WaiSubsite.hs @@ -4,7 +4,6 @@ module YesodCoreTest.WaiSubsite (specs, Widget) where import YesodCoreTest.YesodTest import Yesod.Core import qualified Network.HTTP.Types as H -import Test.Hspec.Core (UnevaluatedSpec) myApp :: Application myApp _ = return $ responseLBS H.status200 [("Content-type", "text/plain")] "WAI" @@ -26,7 +25,7 @@ app = yesod Y getRootR :: Handler () getRootR = return () -specs :: UnevaluatedSpec +specs :: Spec specs = describe "WaiSubsite" [ it "root" $ app $ do res <- request defaultRequest { pathInfo = [] } diff --git a/yesod-core/test/YesodCoreTest/Widget.hs b/yesod-core/test/YesodCoreTest/Widget.hs index bead9b6c..055e42dd 100644 --- a/yesod-core/test/YesodCoreTest/Widget.hs +++ b/yesod-core/test/YesodCoreTest/Widget.hs @@ -4,7 +4,6 @@ module YesodCoreTest.Widget (widgetTest) where import Test.Hspec -import Test.Hspec.Core (UnevaluatedSpec) import Test.Hspec.HUnit () import Yesod.Core hiding (Request) @@ -78,7 +77,7 @@ getAutoR = defaultLayout [whamlet| where someHtml = [shamlet|somehtml|] -widgetTest :: UnevaluatedSpec +widgetTest :: Spec widgetTest = describe "Test.Widget" [ it "addJuliusBody" case_addJuliusBody , it "whamlet" case_whamlet diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index d83407d5..ca6b6caf 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -119,7 +119,7 @@ test-suite tests cpp-options: -DTEST build-depends: base - ,hspec >= 1.0 && < 1.1 + ,hspec >= 1.1 && < 1.2 ,wai-test ,wai ,yesod-core From 543e815744dcb0f68a4513baceaa17a5043cec15 Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Mon, 7 May 2012 07:11:33 +0200 Subject: [PATCH 2/4] yesod-routes: Adapt cabal file for hspec-1.1 --- yesod-routes/yesod-routes.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-routes/yesod-routes.cabal b/yesod-routes/yesod-routes.cabal index f8f3eaa0..c8c0a3b8 100644 --- a/yesod-routes/yesod-routes.cabal +++ b/yesod-routes/yesod-routes.cabal @@ -41,7 +41,7 @@ test-suite runtests , yesod-routes , text >= 0.5 && < 0.12 , HUnit >= 1.2 && < 1.3 - , hspec >= 0.6 && < 1.1 + , hspec >= 0.6 && < 1.2 , containers , template-haskell , path-pieces From ad93e8c729269f2898977d0d563f59c613c3c9fc Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Mon, 7 May 2012 07:18:57 +0200 Subject: [PATCH 3/4] yesod-static: Adapt tests for hspec-1.0 and hspec-1.1 --- yesod-static/test/YesodStaticTest.hs | 2 +- yesod-static/test/tests.hs | 2 +- yesod-static/yesod-static.cabal | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/yesod-static/test/YesodStaticTest.hs b/yesod-static/test/YesodStaticTest.hs index ec31dc57..30147081 100644 --- a/yesod-static/test/YesodStaticTest.hs +++ b/yesod-static/test/YesodStaticTest.hs @@ -6,7 +6,7 @@ import Test.Hspec.HUnit ( ) import Yesod.Static (getFileListPieces) -specs :: [Specs] +specs :: Specs specs = [ describe "get file list" [ it "pieces" $ do diff --git a/yesod-static/test/tests.hs b/yesod-static/test/tests.hs index 1176f6d9..672c61e0 100644 --- a/yesod-static/test/tests.hs +++ b/yesod-static/test/tests.hs @@ -4,4 +4,4 @@ import Test.Hspec import YesodStaticTest (specs) main :: IO () -main = hspecX $ descriptions specs +main = hspecX specs diff --git a/yesod-static/yesod-static.cabal b/yesod-static/yesod-static.cabal index effac990..31cb6044 100644 --- a/yesod-static/yesod-static.cabal +++ b/yesod-static/yesod-static.cabal @@ -44,7 +44,7 @@ test-suite tests type: exitcode-stdio-1.0 cpp-options: -DTEST_EXPORT build-depends: base - , hspec >= 0.8 && < 0.10 + , hspec >= 1.0 && < 1.2 , HUnit -- copy from above , containers >= 0.2 && < 0.5 From c4863019d029399a945904c53af8f538faa11441 Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Mon, 7 May 2012 07:40:06 +0200 Subject: [PATCH 4/4] yesod-test: Adapt for hspec-1.1 --- yesod-test/Yesod/Test.hs | 2 +- yesod-test/yesod-test.cabal | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index a2f25d23..e8715d10 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -90,7 +90,7 @@ import qualified Data.Text.Lazy as TL import Data.Text.Lazy.Encoding (encodeUtf8, decodeUtf8) -- | The state used in 'describe' to build a list of specs -data SpecsData = SpecsData Application ConnectionPool [Core.Spec Core.AnyExample] +data SpecsData = SpecsData Application ConnectionPool [Core.Spec] -- | The specs state monad is where 'describe' runs. type Specs = ST.StateT SpecsData IO () diff --git a/yesod-test/yesod-test.cabal b/yesod-test/yesod-test.cabal index e7b681e0..3078dab3 100644 --- a/yesod-test/yesod-test.cabal +++ b/yesod-test/yesod-test.cabal @@ -29,7 +29,7 @@ library , network >= 2.2 && < 2.4 , http-types >= 0.6 && < 0.7 , HUnit >= 1.2 && < 1.3 - , hspec >= 1.0 && < 1.1 + , hspec >= 1.1 && < 1.2 , bytestring >= 0.9 , case-insensitive >= 0.2 , text