Skip to content

Commit 5fd9791

Browse files
committed
Use runParseResult in ParsecTests
1 parent 969576f commit 5fd9791

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

cabal-install/tests/IntegrationTests2/ProjectConfig/ParsecTests.hs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
module IntegrationTests2.ProjectConfig.ParsecTests (parserTests) where
33

44
import qualified Data.ByteString as BS
5+
import Data.Either
56
import Distribution.Client.DistDirLayout
67
import Distribution.Client.HttpUtils
78
import Distribution.Client.ProjectConfig
@@ -12,14 +13,13 @@ import Distribution.Types.CondTree (CondTree (..))
1213
import Distribution.Types.PackageName
1314
import Distribution.Types.PackageVersionConstraint (PackageVersionConstraint (..))
1415
import Distribution.Types.SourceRepo (KnownRepoType (..), RepoType (..))
15-
import Distribution.Types.Version (Version, mkVersion)
16+
import Distribution.Types.Version (mkVersion)
1617
import Distribution.Types.VersionRange.Internal (VersionRange (..))
1718
import Distribution.Verbosity
1819
import System.Directory
1920
import System.FilePath
2021
import Test.Tasty
2122
import Test.Tasty.HUnit
22-
import Test.Tasty.Options
2323

2424
-- TODO create tests:
2525
-- - parser tests to read and compare to expected values
@@ -81,12 +81,8 @@ testExtraPackages = do
8181
readConfigDefault :: FilePath -> IO (ProjectConfigSkeleton, ProjectConfigSkeleton)
8282
readConfigDefault rootFp = readConfig rootFp "cabal.project"
8383

84-
-- TODO this is an overkill, look at warningTests, they just use runParseResult without
85-
-- httpTransport etc
8684
readConfig :: FilePath -> FilePath -> IO (ProjectConfigSkeleton, ProjectConfigSkeleton)
8785
readConfig rootFp projectFileName = do
88-
-- TODO extract argument so it can be mocked
89-
httpTransport <- configureTransport verbosity [] Nothing
9086
projectRootDir <- canonicalizePath (basedir </> rootFp)
9187

9288
let projectRoot = ProjectRootExplicit projectRootDir projectFileName
@@ -96,9 +92,11 @@ readConfig rootFp projectFileName = do
9692
distProjectConfigFp = distProjectFile distDirLayout extensionName
9793
exists <- doesFileExist distProjectConfigFp
9894
assertBool ("projectConfig does not exist: " <> distProjectConfigFp) exists
99-
parsec <-
100-
runRebuild projectRootDir $
101-
readProjectFileSkeleton verbosity httpTransport distDirLayout extensionName extensionDescription
95+
contents <- BS.readFile distProjectConfigFp
96+
let (_, res) = runParseResult $ parseProjectSkeleton contents
97+
assertBool ("should parse successfully: " ++ show res) $ isRight res
98+
let parsec = fromRight undefined res
99+
httpTransport <- configureTransport verbosity [] Nothing
102100
legacy <-
103101
runRebuild projectRootDir $
104102
readProjectFileSkeletonLegacy verbosity httpTransport distDirLayout extensionName extensionDescription
@@ -118,9 +116,6 @@ assertConfig expected config configLegacy access = do
118116
actualLegacy = access configLegacy
119117

120118
-- | Test Utilities
121-
emptyProjectConfig :: ProjectConfig
122-
emptyProjectConfig = mempty
123-
124119
verbosity :: Verbosity
125120
verbosity = normal -- minBound --normal --verbose --maxBound --minBound
126121

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
source-repository-package
2+
type: git
3+
location: https://example.com/Project.git
4+
tag: 1234
5+
6+
source-repository-package
7+
type: git
8+
location: https://example.com/example-dir/
9+
tag: 12345
10+
subdir: subproject

0 commit comments

Comments
 (0)