2
2
module IntegrationTests2.ProjectConfig.ParsecTests (parserTests ) where
3
3
4
4
import qualified Data.ByteString as BS
5
+ import Data.Either
5
6
import Distribution.Client.DistDirLayout
6
7
import Distribution.Client.HttpUtils
7
8
import Distribution.Client.ProjectConfig
@@ -12,14 +13,13 @@ import Distribution.Types.CondTree (CondTree (..))
12
13
import Distribution.Types.PackageName
13
14
import Distribution.Types.PackageVersionConstraint (PackageVersionConstraint (.. ))
14
15
import Distribution.Types.SourceRepo (KnownRepoType (.. ), RepoType (.. ))
15
- import Distribution.Types.Version (Version , mkVersion )
16
+ import Distribution.Types.Version (mkVersion )
16
17
import Distribution.Types.VersionRange.Internal (VersionRange (.. ))
17
18
import Distribution.Verbosity
18
19
import System.Directory
19
20
import System.FilePath
20
21
import Test.Tasty
21
22
import Test.Tasty.HUnit
22
- import Test.Tasty.Options
23
23
24
24
-- TODO create tests:
25
25
-- - parser tests to read and compare to expected values
@@ -81,12 +81,8 @@ testExtraPackages = do
81
81
readConfigDefault :: FilePath -> IO (ProjectConfigSkeleton , ProjectConfigSkeleton )
82
82
readConfigDefault rootFp = readConfig rootFp " cabal.project"
83
83
84
- -- TODO this is an overkill, look at warningTests, they just use runParseResult without
85
- -- httpTransport etc
86
84
readConfig :: FilePath -> FilePath -> IO (ProjectConfigSkeleton , ProjectConfigSkeleton )
87
85
readConfig rootFp projectFileName = do
88
- -- TODO extract argument so it can be mocked
89
- httpTransport <- configureTransport verbosity [] Nothing
90
86
projectRootDir <- canonicalizePath (basedir </> rootFp)
91
87
92
88
let projectRoot = ProjectRootExplicit projectRootDir projectFileName
@@ -96,9 +92,11 @@ readConfig rootFp projectFileName = do
96
92
distProjectConfigFp = distProjectFile distDirLayout extensionName
97
93
exists <- doesFileExist distProjectConfigFp
98
94
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
102
100
legacy <-
103
101
runRebuild projectRootDir $
104
102
readProjectFileSkeletonLegacy verbosity httpTransport distDirLayout extensionName extensionDescription
@@ -118,9 +116,6 @@ assertConfig expected config configLegacy access = do
118
116
actualLegacy = access configLegacy
119
117
120
118
-- | Test Utilities
121
- emptyProjectConfig :: ProjectConfig
122
- emptyProjectConfig = mempty
123
-
124
119
verbosity :: Verbosity
125
120
verbosity = normal -- minBound --normal --verbose --maxBound --minBound
126
121
0 commit comments