Skip to content

Commit a9e2ffa

Browse files
authored
Merge pull request #1448 from spencerjanssen/test-revisions
Tests for creating/retrieving metadata revisions, remove broken alternative revision path
2 parents 4c4e56b + f48c01b commit a9e2ffa

File tree

3 files changed

+19
-23
lines changed

3 files changed

+19
-23
lines changed

datafiles/templates/Html/revisions.html.st

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ stored separately.
2525
</tr>
2626
$revisions:{revision|
2727
<tr>
28-
<td valign="top"><a href="/package/$pkgid$/revision/$revision.number$.cabal">-r$revision.number$</a> (<a href="/package/$pkgid$/revision/$pkgid$-$revision.number$.cabal">$pkgid$-r$revision.number$</a>)</td>
28+
<td valign="top"><a href="/package/$pkgid$/revision/$revision.number$.cabal">-r$revision.number$</a></td>
2929
<td valign="top">$revision.htmltime$</td>
3030
<td valign="top"><a href="/user/$revision.user$">$revision.user$</td>
3131
<td valign="top">$revision.sha256$</th>

src/Distribution/Server/Features/Core.hs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ data CoreResource = CoreResource {
226226
corePackageTarball :: Resource,
227227
-- | A Cabal file metatada revision.
228228
coreCabalFileRev :: Resource,
229-
coreCabalFileRevName :: Resource,
230229

231230
-- Rendering resources.
232231
-- | URI for `corePackagesPage`, given a format (blank for none).
@@ -405,7 +404,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
405404
, coreCabalFile
406405
, coreCabalFileRevs
407406
, coreCabalFileRev
408-
, coreCabalFileRevName
409407
, coreUserDeauth
410408
, coreAdminDeauth
411409
, corePackUserDeauth
@@ -459,11 +457,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
459457
resourceDesc = [(GET, "Get package .cabal file revision")]
460458
, resourceGet = [("cabal", serveCabalFileRevision)]
461459
}
462-
coreCabalFileRevName = (resourceAt "/package/:package/revision/:tarball-:revision.:format") {
463-
resourceDesc = [(GET, "Get package .cabal file revision with name")]
464-
, resourceGet = [("cabal", serveCabalFileRevisionName)]
465-
}
466-
467460

468461
coreUserDeauth = (resourceAt "/packages/deauth") {
469462
resourceDesc = [(GET, "Deauth Package user")]
@@ -761,21 +754,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
761754
Nothing -> errNotFound "Package revision not found"
762755
[MText "Cannot parse revision, or revision out of range."]
763756

764-
serveCabalFileRevisionName :: DynamicPath -> ServerPartE Response
765-
serveCabalFileRevisionName dpath = do
766-
pkgid1 <- packageTarballInPath dpath
767-
pkgid2 <- packageInPath dpath
768-
guard (pkgVersion pkgid2 == pkgVersion pkgid2)
769-
pkginfo <- packageInPath dpath >>= lookupPackageId
770-
let mrev = lookup "revision" dpath >>= fromReqURI
771-
revisions = pkgMetadataRevisions pkginfo
772-
case mrev >>= \rev -> revisions Vec.!? rev of
773-
Just (fileRev, (utime, _uid)) -> return $ toResponse cabalfile
774-
where
775-
cabalfile = Resource.CabalFile (cabalFileByteString fileRev) utime
776-
Nothing -> errNotFound "Package revision not found"
777-
[MText "Cannot parse revision, or revision out of range."]
778-
779757

780758
deauth :: DynamicPath -> ServerPartE Response
781759
deauth _ = do

tests/HighLevelTest.hs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ doit root
8383
unless (db1 == db2) $ die "Databases don't match"
8484
info "Checking server still works, and data is intact"
8585
withServerRunning root runPackageTests
86+
withServerRunning root runRevisionTests
8687

8788

8889
runUserTests :: IO ()
@@ -191,6 +192,23 @@ runPackageUploadTests = do
191192
uploadTimeISO = "2010-10-18T20:54:28Z"
192193
uploadTimeISO2 = "2020-10-18T20:54:28Z"
193194

195+
runRevisionTests :: IO ()
196+
runRevisionTests = do
197+
do info "Revising testpackage"
198+
post (Auth "HackageTestUser1" "testpass1") "/package/testpackage-1.0.0.0/testpackage.cabal/edit"
199+
[ ("cabalfile", revisedCabalFileContent)
200+
, ("publish", "Publish new revision")
201+
]
202+
do info "Checking revision exists"
203+
xs <- getUrl NoAuth "/package/testpackage-1.0.0.0/revision/1.cabal"
204+
unless (xs == revisedCabalFileContent) $
205+
die "Bad revised cabal file content"
206+
where
207+
(_, _, _, testpackageCabalFileContent, _, _) = testpackage
208+
revisedCabalFileContent =
209+
"x-revision: 1\ndescription: a description added by revision\n"
210+
++ testpackageCabalFileContent
211+
194212
runPackageTests :: IO ()
195213
runPackageTests = do
196214
do info "Getting package list"

0 commit comments

Comments
 (0)