packages feed

tasty-autocollect 0.3.0.0 → 0.3.1.0

raw patch · 6 files changed

+42/−16 lines, 6 filesdep ~bytestringPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: bytestring

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Unreleased +# v0.3.1.0++* Fix bug where errors in Main module would show the path of the temporary file instead of the original file+* Ignore binary files in test directory+ # v0.3.0.0  * Fix bug when omitting signature after specifying a signature for a prior test
src/Test/Tasty/AutoCollect.hs view
@@ -15,16 +15,14 @@ processFile :: FilePath -> Text -> IO Text processFile path file =   case parseModuleType file of-    Just (ModuleMain cfg) -> generateMainModule cfg path+    Just (ModuleMain cfg) -> addLinePragma <$> generateMainModule cfg path     Just ModuleTest ->-      pure . Text.unlines $-        [ "{-# OPTIONS_GHC -fplugin=Test.Tasty.AutoCollect.ConvertTest #-}"-        , file'-        ]-    Nothing -> pure file'+      pure+        . addLine "{-# OPTIONS_GHC -fplugin=Test.Tasty.AutoCollect.ConvertTest #-}"+        . addLinePragma+        $ file+    Nothing -> pure $ addLinePragma file   where-    file' =-      Text.unlines-        [ "{-# LINE 1 " <> quoted (Text.pack path) <> " #-}"-        , file-        ]+    addLine line f = line <> "\n" <> f+    -- this is needed to tell GHC to use original path in error messages+    addLinePragma = addLine $ "{-# LINE 1 " <> quoted (Text.pack path) <> " #-}"
src/Test/Tasty/AutoCollect/GenerateMain.hs view
@@ -6,12 +6,13 @@   generateMainModule, ) where +import qualified Data.ByteString as ByteString import Data.List (sortOn) import qualified Data.Map.Strict as Map import Data.Maybe (catMaybes, fromMaybe) import Data.Text (Text) import qualified Data.Text as Text-import qualified Data.Text.IO as Text+import qualified Data.Text.Encoding as Text import System.Directory (doesDirectoryExist, listDirectory) import System.FilePath (makeRelative, splitExtensions, takeDirectory, (</>)) @@ -76,10 +77,10 @@     testDir = takeDirectory path      toTestModule fp = do-      fileContents <- Text.readFile fp+      fileContentsBS <- ByteString.readFile fp       return $-        case (splitExtensions fp, parseModuleType fileContents) of-          ((fpNoExt, ".hs"), Just ModuleTest) ->+        case (splitExtensions fp, parseModuleType <$> Text.decodeUtf8' fileContentsBS) of+          ((fpNoExt, ".hs"), Right (Just ModuleTest)) ->             let moduleName = Text.replace "/" "." . Text.pack . makeRelative testDir $ fpNoExt              in Just                   TestModule
tasty-autocollect.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           tasty-autocollect-version:        0.3.0.0+version:        0.3.1.0 synopsis:       Autocollection of tasty tests. description:    Autocollection of tasty tests. See README.md for more details. category:       Testing@@ -64,6 +64,7 @@   ghc-options: -Wall   build-depends:       base >=4.14 && <5+    , bytestring >=0.10 && <0.12     , containers >=0.6.2.1 && <0.7     , directory >=1.3.6.0 && <2     , filepath >=1.4.2.1 && <2
test/Test/Tasty/AutoCollect/GenerateMainTest.hs view
@@ -5,8 +5,10 @@   -- $AUTOCOLLECT.TEST.export$ ) where +import qualified Data.ByteString as ByteString import Data.Text (Text) import qualified Data.Text as Text+import System.FilePath ((</>)) import Test.Predicates import Test.Predicates.HUnit import Test.Tasty.HUnit@@ -36,6 +38,20 @@       , "test = testCase \"test\" $ return ()"       ] +test =+  testCase "ignores binary files" $+    assertSuccess_ $+      runMainWith+        ( \proj ->+            proj+              { preRunCallback = \tmpdir ->+                  ByteString.writeFile+                    (tmpdir </> "binary-file")+                    (ByteString.pack [0 ..])+              }+        )+        ["{- AUTOCOLLECT.MAIN -}"]+ test_batch =   [ testGolden     ("output for group_type = " <> groupType <> " is as expected")@@ -235,6 +251,7 @@           , testFile "FooTest"           , testFile "BarTest"           ]+      , preRunCallback = \_ -> pure ()       , entrypoint = "Main.hs"       , runArgs = []       }
test/TestUtils/Integration.hs view
@@ -76,6 +76,7 @@   { dependencies :: [Text]   , extraGhcArgs :: [Text]   , files :: [(FilePath, FileContents)]+  , preRunCallback :: FilePath -> IO ()   , entrypoint :: FilePath   , runArgs :: [Text]   }@@ -97,6 +98,8 @@       createDirectoryIfMissing True (takeDirectory testFile)       Text.writeFile testFile (Text.unlines contents) +    preRunCallback tmpdir+     let ghcArgs =           concat             [ ["-hide-all-packages"]@@ -136,6 +139,7 @@           [ ("Test.hs", testFilePrefix ++ contents)           , ("Main.hs", ["{- AUTOCOLLECT.MAIN -}"])           ]+      , preRunCallback = \_ -> pure ()       , entrypoint = "Main.hs"       , runArgs = []       }