Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix tests
Browse files Browse the repository at this point in the history
tchoutri committed Dec 27, 2023
1 parent d5e8b72 commit 4a14950
Showing 3 changed files with 15 additions and 10 deletions.
12 changes: 5 additions & 7 deletions src/core/Flora/Model/Package/Query.hs
Original file line number Diff line number Diff line change
@@ -322,6 +322,9 @@ getAllRequirements
-> Eff es ComponentDependencies
getAllRequirements releaseId = dbtToEff $ toComponentDependencies <$> query Select getAllRequirementsQuery (Only releaseId)

-- | This function has a bit of logic where if there exists a component with the same name as the package,
-- this component's dependencies are chosen.
-- Otherwise, requirements without discrimination by component are fetched.
getRequirements
:: (DB :> es, Log :> es, Time :> es)
=> PackageName
@@ -391,8 +394,6 @@ getRequirementsQuery singleComponentType =
<> " "
<> (if singleComponentType then tablesSingleType else tablesManyTypes)
<> " "
<> whereClause
<> " "
<> orderClause
where
selectors =
@@ -410,6 +411,8 @@ getRequirementsQuery singleComponentType =
AND pc.component_type = ?
INNER JOIN releases AS rel ON rel.release_id = pc.release_id
INNER JOIN packages AS dependent ON rel.package_id = dependent.package_id
WHERE rel.release_id = ?
AND pc.component_name = dependent.name
|]
tablesManyTypes =
[sql|
@@ -418,12 +421,7 @@ getRequirementsQuery singleComponentType =
INNER JOIN package_components AS pc ON pc.package_component_id = req.package_component_id
INNER JOIN releases AS rel ON rel.release_id = pc.release_id
INNER JOIN packages AS dependent ON rel.package_id = dependent.package_id
|]

whereClause =
[sql|
WHERE rel.release_id = ?
AND pc.component_name = dependent.name
|]

orderClause =
12 changes: 10 additions & 2 deletions test/Flora/PackageSpec.hs
Original file line number Diff line number Diff line change
@@ -253,8 +253,16 @@ testExecutableOnlyPackage = do
release <- assertJust =<< Query.getReleaseByVersion package.packageId (mkVersion [0, 10, 2, 2])
requirements <- Query.getRequirements package.name release.releaseId
assertEqual
Vector.empty
requirements
( Set.fromList
[ PackageName "stm"
, PackageName "directory"
, PackageName "containers"
, PackageName "bytestring"
, PackageName "base"
, PackageName "random"
]
)
(Set.fromList $ view _2 <$> Vector.toList requirements)

---

1 change: 0 additions & 1 deletion test/fixtures/Cabal/cardano/ouroboros-demo.cabal
Original file line number Diff line number Diff line change
@@ -29,7 +29,6 @@ executable demo-chain-sync
ouroboros-network-framework,
ouroboros-network-mock,
ouroboros-network-protocols,
ouroboros-network

default-language: Haskell2010
ghc-options: -Wall

0 comments on commit 4a14950

Please sign in to comment.