On 07/08/2017 05:58 AM, Aaron Wolf wrote:
> On 07/08/2017 01:41 AM, fr33domlo...@riseup.net wrote:
>> From: fr33domlover <fr33domlo...@rel4tion.org>
>>
>> ---
>>  website/Snowdrift.cabal       | 12 +++++++-----
>>  website/test/AlertsSpec.hs    |  6 +++---
>>  website/test/AuthSiteSpec.hs  |  8 ++++----
>>  website/test/DiscourseSpec.hs | 35 ++++++++++++++++-------------------
>>  website/test/HandlerSpec.hs   |  6 +++---
>>  website/test/SampleSpec.hs    |  6 +++---
>>  website/test/Spec.hs          |  1 -
>>  website/test/StripeMock.hs    |  2 +-
>>  website/test/Tasty.hs         |  1 +
>>  website/test/TestImport.hs    |  4 ++--
>>  10 files changed, 40 insertions(+), 41 deletions(-)
>>  delete mode 100644 website/test/Spec.hs
>>  create mode 100644 website/test/Tasty.hs
>>
>> diff --git a/website/Snowdrift.cabal b/website/Snowdrift.cabal
>> index 1f1ffc5..c7be912 100644
>> --- a/website/Snowdrift.cabal
>> +++ b/website/Snowdrift.cabal
>> @@ -152,7 +152,7 @@ executable Snowdrift
>>  -- test-suite test {{{1
>>  test-suite test
>>      type:           exitcode-stdio-1.0
>> -    main-is:        Spec.hs
>> +    main-is:        Tasty.hs
>>      hs-source-dirs: test
>>      ghc-options:    -Wall
>>  
>> @@ -178,24 +178,26 @@ test-suite test
>>      -- build-depends {{{2
>>      build-depends:
>>          Snowdrift
>> -        -- For htmlHasLink (should move upstream)
>> -        , HUnit >= 1.3.1.1
>>          , base
>>          , bytestring
>>          , classy-prelude
>>          , classy-prelude-yesod
>>          , cryptonite
>> -        , hspec >= 2.0.0
>>          , http-types
>>          , memory
>>          , persistent
>>          , persistent-postgresql
>>          , postgresql-simple
>> -        , QuickCheck
>>          , quickcheck-text
>>          , shakespeare
>>          , stripe-core
>>          , stripe-haskell
>> +        , tasty
>> +        , tasty-discover
>> +        -- For htmlHasLink (should move upstream)
>> +        , tasty-hunit
>> +        , tasty-hspec
>> +        , tasty-quickcheck
>>          , text >= 1.2.2.1
>>          , wai-extra
>>          , yesod
>> diff --git a/website/test/AlertsSpec.hs b/website/test/AlertsSpec.hs
>> index 62235e8..cf0d9c5 100644
>> --- a/website/test/AlertsSpec.hs
>> +++ b/website/test/AlertsSpec.hs
>> @@ -1,4 +1,4 @@
>> -module AlertsSpec (spec) where
>> +module AlertsSpec (spec_alerts) where
>>  
>>  import TestImport
>>  import Alerts
>> @@ -20,8 +20,8 @@ alertSite = LiteApp go
>>  withAlertSite :: SpecWith (TestApp LiteApp) -> Spec
>>  withAlertSite = before $ pure (alertSite, id)
>>  
>> -spec :: Spec
>> -spec = withAlertSite $
>> +spec_alerts :: Spec
>> +spec_alerts = withAlertSite $
>>      it "adds an alert" $ do
>>          get getR
>>          htmlCount ".alert" 0
>> diff --git a/website/test/AuthSiteSpec.hs b/website/test/AuthSiteSpec.hs
>> index e962fce..a251a9e 100644
>> --- a/website/test/AuthSiteSpec.hs
>> +++ b/website/test/AuthSiteSpec.hs
>> @@ -4,13 +4,13 @@
>>  {-# LANGUAGE ScopedTypeVariables #-}
>>  {-# LANGUAGE ViewPatterns #-}
>>  {-# OPTIONS_GHC -fno-warn-unused-binds #-}
>> -module AuthSiteSpec (spec) where
>> +module AuthSiteSpec (spec_authSite) where
>>  
>>  import TestImport hiding (Handler)
>>  import Database.Persist.Sql hiding (get)
>>  import Database.Persist.Postgresql (pgConnStr)
>>  import Network.Wai.Test (SResponse(..))
>> -import Test.HUnit (assertBool)
>> +import Test.Tasty.HUnit (assertBool)
>>  import Yesod hiding (get)
>>  import Yesod.Default.Config2 (ignoreEnv, loadYamlSettings)
>>  import qualified Data.Text as T
>> @@ -171,8 +171,8 @@ withBob = beforeWith makeBob
>>  
>>  -- ** The actual tests!
>>  
>> -spec :: Spec
>> -spec = mainSpecs >> authRouteSpec
>> +spec_authSite :: Spec
>> +spec_authSite = mainSpecs >> authRouteSpec
>>  
>>  -- | Having this defined separately is clumsy. It should be moved back into
>>  -- the right spot. The problem is that it needs a different value of
>> diff --git a/website/test/DiscourseSpec.hs b/website/test/DiscourseSpec.hs
>> index f00c084..e4cc0b0 100644
>> --- a/website/test/DiscourseSpec.hs
>> +++ b/website/test/DiscourseSpec.hs
>> @@ -13,30 +13,27 @@ import Crypto.MAC.HMAC (HMAC, hmac)
>>  import Data.ByteArray (ByteArray, ByteArrayAccess)
>>  import Data.ByteArray.Encoding (Base(Base16, Base64URLUnpadded), 
>> convertToBase)
>>  import Data.Text.Arbitrary ()
>> -import Test.Hspec.QuickCheck (prop)
>> -import Test.QuickCheck (Arbitrary, arbitrary, choose, oneof, vectorOf, 
>> NonEmptyList(..))
>> +import Test.Tasty.QuickCheck (Arbitrary, arbitrary, choose, oneof, 
>> vectorOf, NonEmptyList(..))
>>  
>>  import qualified Data.ByteString.Char8 as Char8
>>  
>>  {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
>>  
>> -spec :: Spec
>> -spec = do
>> -    prop "validateSig" $ \(NonEmpty secret) (NonEmpty payload) -> do
>> -        let secret' = pack secret
>> -            payload' = pack payload
>> -
>> -        validateSig (DiscourseSecret secret') payload'
>> -            (base16 (hmac secret' payload' :: HMAC SHA256))
>> -
>> -    prop "parsePayload" $ \(Nonce nonce) (Url url) -> do
>> -        let payload = "nonce=" <> nonce <> "&return_sso_url=" <> encodeUtf8 
>> url
>> -        parsePayload (base64 payload)
>> -            `shouldBe`
>> -            Right DiscoursePayload
>> -                    { dpNonce = nonce
>> -                    , dpUrl   = url
>> -                    }
>> +prop_validateSig (NonEmpty secret) (NonEmpty payload) = do
>> +    let secret' = pack secret
>> +        payload' = pack payload
>> +
>> +    validateSig (DiscourseSecret secret') payload'
>> +        (base16 (hmac secret' payload' :: HMAC SHA256))
>> +
>> +prop_parsePayload (Nonce nonce) (Url url) = do
>> +    let payload = "nonce=" <> nonce <> "&return_sso_url=" <> encodeUtf8 url
>> +    parsePayload (base64 payload)
>> +        `shouldBe`
>> +        Right DiscoursePayload
>> +                { dpNonce = nonce
>> +                , dpUrl   = url
>> +                }
>>  
>>  -- 16 bytes of [0-9A-F]
>>  newtype Nonce
>> diff --git a/website/test/HandlerSpec.hs b/website/test/HandlerSpec.hs
>> index 5a537fb..12d9f39 100644
>> --- a/website/test/HandlerSpec.hs
>> +++ b/website/test/HandlerSpec.hs
>> @@ -1,4 +1,4 @@
>> -module HandlerSpec (spec) where
>> +module HandlerSpec (spec_handler) where
>>  
>>  import TestImport
>>  
>> @@ -14,8 +14,8 @@ import Network.Wai.Test (SResponse(..))
>>  
>>  {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
>>  
>> -spec :: Spec
>> -spec = withApp $ do
>> +spec_handler :: Spec
>> +spec_handler = withApp $ do
>>      describe "getRobotsR" getRobotsSpec
>>      describe "getFaviconR" getFaviconSpec
>>      describe "getWelcomeR" getWelcomeSpec
>> diff --git a/website/test/SampleSpec.hs b/website/test/SampleSpec.hs
>> index c95170e..35971d6 100644
>> --- a/website/test/SampleSpec.hs
>> +++ b/website/test/SampleSpec.hs
>> @@ -1,9 +1,9 @@
>> -module SampleSpec (spec) where
>> +module SampleSpec (spec_sample) where
>>  
>>  import TestImport
>>  
>> -spec :: Spec
>> -spec = withApp $ do
>> +spec_sample :: Spec
>> +spec_sample = withApp $ do
>>      describe "various properties" $ do
>>          it "/home links to /privacy and /terms" $ do
>>              get WelcomeR
>> diff --git a/website/test/Spec.hs b/website/test/Spec.hs
>> deleted file mode 100644
>> index a824f8c..0000000
>> --- a/website/test/Spec.hs
>> +++ /dev/null
>> @@ -1 +0,0 @@
>> -{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
>> diff --git a/website/test/StripeMock.hs b/website/test/StripeMock.hs
>> index 23c5b8a..51ffb86 100644
>> --- a/website/test/StripeMock.hs
>> +++ b/website/test/StripeMock.hs
>> @@ -9,7 +9,7 @@ import ClassyPrelude.Yesod hiding (method)
>>  import Data.Typeable
>>  import Web.Stripe
>>  import Web.Stripe.Error
>> -import Test.Hspec (shouldBe)
>> +import Test.Tasty.Hspec (shouldBe)
>>  
>>  data StripeMockEffects
>>      = forall a. Typeable (StripeReturn a)
>> diff --git a/website/test/Tasty.hs b/website/test/Tasty.hs
>> new file mode 100644
>> index 0000000..70c55f5
>> --- /dev/null
>> +++ b/website/test/Tasty.hs
>> @@ -0,0 +1 @@
>> +{-# OPTIONS_GHC -F -pgmF tasty-discover #-}
>> diff --git a/website/test/TestImport.hs b/website/test/TestImport.hs
>> index ccce560..a452a66 100644
>> --- a/website/test/TestImport.hs
>> +++ b/website/test/TestImport.hs
>> @@ -10,14 +10,14 @@ import Database.Persist.Postgresql (pgConnStr, 
>> ConnectionString)
>>  import Foundation as X
>>  import Network.HTTP.Types (Status(..))
>>  import Network.Wai.Test (SResponse(..))
>> -import Test.Hspec as X
>> +import Test.Tasty.Hspec as X
>>  import Yesod.Default.Config2 (ignoreEnv, loadYamlSettings)
>>  import Yesod.Test as X
>>  import qualified Data.Text.Encoding as T
>>  import qualified Database.PostgreSQL.Simple as PG
>>  
>>  -- For htmlHasLink
>> -import Test.HUnit
>> +import Test.Tasty.HUnit
>>  import Yesod.Core
>>  
>>  import Application (makeFoundation, makeLogWare)
>>
> 
> In trying this patch, it looks like tasty-discover needs to be added to
> stack.yaml also. I could just do it, but I wanted to check that it makes
> sense to you that this is needed. Probably you had it installed manually
> so didn't get the error I got:
> 
> ```
> $ make
> stack build --only-dependencies --install-ghc Snowdrift:test
> 
> Error: While constructing the build plan, the following exceptions were
> encountered:
> 
> In the dependencies for Snowdrift-0.1.4(+dev):
>     tasty-discover must match -any, but the stack configuration has no
> specified version (latest applicable is 2.0.3)
> 
> Recommended action: try adding the following to your extra-deps in
> /home/aaron/sites-programs/snowdrift/stack.yaml:
> - tasty-discover-2.0.3
> 
> You may also want to try the 'stack solver' command
> Plan construction failed.
> Makefile:8: recipe for target 'deps' failed
> make: *** [deps] Error 1
> ```
> 
I went ahead and did it. Merging everything now…

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev

Reply via email to