Add test for publishing with non-empty Origin & Label

See also #848
This commit is contained in:
Andrey Smirnov
2019-07-19 22:44:34 +03:00
committed by Andrey Smirnov
parent b63c0c7dfc
commit 2e7f624b34
+131 -70
View File
@@ -17,7 +17,8 @@ class PublishAPITestRepo(APITest):
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
self.check_equal(self.post(
"/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
@@ -25,7 +26,8 @@ class PublishAPITestRepo(APITest):
"pyspi_0.6.1-1.3.diff.gz", "pyspi_0.6.1.orig.tar.gz",
"pyspi-0.6.1-1.3.stripped.dsc").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
# publishing under prefix, default distribution
prefix = self.random_name()
@@ -57,10 +59,14 @@ class PublishAPITestRepo(APITest):
self.check_in(repo_expected, all_repos.json())
self.check_exists("public/" + prefix + "/dists/wheezy/Release")
self.check_exists("public/" + prefix + "/dists/wheezy/main/binary-i386/Packages")
self.check_exists("public/" + prefix + "/dists/wheezy/main/Contents-i386.gz")
self.check_exists("public/" + prefix + "/dists/wheezy/main/source/Sources")
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/dists/wheezy/main/binary-i386/Packages")
self.check_exists("public/" + prefix +
"/dists/wheezy/main/Contents-i386.gz")
self.check_exists("public/" + prefix +
"/dists/wheezy/main/source/Sources")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
# publishing under root, custom distribution, architectures
distribution = self.random_name()
@@ -89,11 +95,16 @@ class PublishAPITestRepo(APITest):
self.check_equal(resp.json(), repo2_expected)
self.check_exists("public/dists/" + distribution + "/Release")
self.check_exists("public/dists/" + distribution + "/main/binary-i386/Packages")
self.check_exists("public/dists/" + distribution + "/main/Contents-i386.gz")
self.check_exists("public/dists/" + distribution + "/main/binary-amd64/Packages")
self.check_not_exists("public/dists/" + distribution + "/main/Contents-amd64.gz")
self.check_exists("public/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/dists/" + distribution +
"/main/binary-i386/Packages")
self.check_exists("public/dists/" + distribution +
"/main/Contents-i386.gz")
self.check_exists("public/dists/" + distribution +
"/main/binary-amd64/Packages")
self.check_not_exists(
"public/dists/" + distribution + "/main/Contents-amd64.gz")
self.check_exists(
"public/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
all_repos = self.get("/api/publish")
self.check_equal(all_repos.status_code, 200)
@@ -109,15 +120,18 @@ class PublishSnapshotAPITest(APITest):
def check(self):
repo_name = self.random_name()
snapshot_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name}).status_code, 201)
self.check_equal(
self.post("/api/repos", json={"Name": repo_name}).status_code, 201)
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + '/snapshots', json={'Name': snapshot_name}).status_code, 201)
self.check_equal(self.post("/api/repos/" + repo_name +
'/snapshots', json={'Name': snapshot_name}).status_code, 201)
prefix = self.random_name()
resp = self.post("/api/publish/" + prefix,
@@ -129,14 +143,16 @@ class PublishSnapshotAPITest(APITest):
"Distribution": "squeeze",
"NotAutomatic": "yes",
"ButAutomaticUpgrades": "yes",
"Origin": "earth",
"Label": "fun",
})
self.check_equal(resp.status_code, 201)
self.check_equal(resp.json(), {
'AcquireByHash': True,
'Architectures': ['i386'],
'Distribution': 'squeeze',
'Label': '',
'Origin': '',
'Label': 'fun',
'Origin': 'earth',
'NotAutomatic': 'yes',
'ButAutomaticUpgrades': 'yes',
'Prefix': prefix,
@@ -146,10 +162,14 @@ class PublishSnapshotAPITest(APITest):
'Storage': ''})
self.check_exists("public/" + prefix + "/dists/squeeze/Release")
self.check_exists("public/" + prefix + "/dists/squeeze/main/binary-i386/by-hash")
self.check_exists("public/" + prefix + "/dists/squeeze/main/binary-i386/Packages")
self.check_exists("public/" + prefix + "/dists/squeeze/main/Contents-i386.gz")
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/dists/squeeze/main/binary-i386/by-hash")
self.check_exists("public/" + prefix +
"/dists/squeeze/main/binary-i386/Packages")
self.check_exists("public/" + prefix +
"/dists/squeeze/main/Contents-i386.gz")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
class PublishUpdateAPITestRepo(APITest):
@@ -160,7 +180,8 @@ class PublishUpdateAPITestRepo(APITest):
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
self.check_equal(self.post(
"/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
d = self.random_name()
self.check_equal(
@@ -168,7 +189,8 @@ class PublishUpdateAPITestRepo(APITest):
"pyspi_0.6.1-1.3.dsc",
"pyspi_0.6.1-1.3.diff.gz", "pyspi_0.6.1.orig.tar.gz",
"pyspi-0.6.1-1.3.stripped.dsc").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
prefix = self.random_name()
resp = self.post("/api/publish/" + prefix,
@@ -181,16 +203,19 @@ class PublishUpdateAPITestRepo(APITest):
self.check_equal(resp.status_code, 201)
self.check_not_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_not_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(self.delete("/api/repos/" + repo_name + "/packages/",
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
# Update and switch AcquireByHash on.
resp = self.put("/api/publish/" + prefix + "/wheezy",
@@ -215,12 +240,16 @@ class PublishUpdateAPITestRepo(APITest):
self.check_equal(resp.status_code, 200)
self.check_equal(resp.json(), repo_expected)
self.check_exists("public/" + prefix + "/dists/wheezy/main/binary-i386/by-hash")
self.check_exists("public/" + prefix +
"/dists/wheezy/main/binary-i386/by-hash")
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_not_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_not_exists(
"public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix + "/wheezy").status_code, 200)
self.check_equal(self.delete("/api/publish/" +
prefix + "/wheezy").status_code, 200)
self.check_not_exists("public/" + prefix + "dists/")
@@ -232,7 +261,8 @@ class PublishUpdateSkipCleanupAPITestRepo(APITest):
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
self.check_equal(self.post(
"/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
d = self.random_name()
self.check_equal(
@@ -240,7 +270,8 @@ class PublishUpdateSkipCleanupAPITestRepo(APITest):
"pyspi_0.6.1-1.3.dsc",
"pyspi_0.6.1-1.3.diff.gz", "pyspi_0.6.1.orig.tar.gz",
"pyspi-0.6.1-1.3.stripped.dsc").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
prefix = self.random_name()
resp = self.post("/api/publish/" + prefix,
@@ -253,8 +284,10 @@ class PublishUpdateSkipCleanupAPITestRepo(APITest):
self.check_equal(resp.status_code, 201)
self.check_not_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_not_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
# Publish two repos, so that deleting one while skipping cleanup will
# not delete the whole prefix.
@@ -271,11 +304,12 @@ class PublishUpdateSkipCleanupAPITestRepo(APITest):
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(self.delete("/api/repos/" + repo_name + "/packages/",
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
resp = self.put("/api/publish/" + prefix + "/wheezy",
json={
@@ -299,12 +333,17 @@ class PublishUpdateSkipCleanupAPITestRepo(APITest):
self.check_equal(resp.status_code, 200)
self.check_equal(resp.json(), repo_expected)
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix + "/wheezy", params={"SkipCleanup": "1"}).status_code, 200)
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix +
"/wheezy", params={"SkipCleanup": "1"}).status_code, 200)
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
class PublishSwitchAPITestRepo(APITest):
@@ -315,7 +354,8 @@ class PublishSwitchAPITestRepo(APITest):
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
self.check_equal(self.post(
"/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
d = self.random_name()
self.check_equal(
@@ -323,10 +363,12 @@ class PublishSwitchAPITestRepo(APITest):
"pyspi_0.6.1-1.3.dsc",
"pyspi_0.6.1-1.3.diff.gz", "pyspi_0.6.1.orig.tar.gz",
"pyspi-0.6.1-1.3.stripped.dsc").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
snapshot1_name = self.random_name()
self.check_equal(self.post("/api/repos/" + repo_name + '/snapshots', json={'Name': snapshot1_name}).status_code, 201)
self.check_equal(self.post("/api/repos/" + repo_name +
'/snapshots', json={'Name': snapshot1_name}).status_code, 201)
prefix = self.random_name()
resp = self.post("/api/publish/" + prefix,
@@ -353,19 +395,23 @@ class PublishSwitchAPITestRepo(APITest):
'Storage': ''}
self.check_equal(resp.json(), repo_expected)
self.check_not_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_not_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(self.delete("/api/repos/" + repo_name + "/packages/",
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
snapshot2_name = self.random_name()
self.check_equal(self.post("/api/repos/" + repo_name + '/snapshots', json={'Name': snapshot2_name}).status_code, 201)
self.check_equal(self.post("/api/repos/" + repo_name +
'/snapshots', json={'Name': snapshot2_name}).status_code, 201)
resp = self.put("/api/publish/" + prefix + "/wheezy",
json={
@@ -390,10 +436,13 @@ class PublishSwitchAPITestRepo(APITest):
self.check_equal(resp.status_code, 200)
self.check_equal(resp.json(), repo_expected)
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_not_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_not_exists(
"public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix + "/wheezy").status_code, 200)
self.check_equal(self.delete("/api/publish/" +
prefix + "/wheezy").status_code, 200)
self.check_not_exists("public/" + prefix + "dists/")
@@ -405,7 +454,8 @@ class PublishSwitchAPISkipCleanupTestRepo(APITest):
def check(self):
repo_name = self.random_name()
self.check_equal(self.post("/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
self.check_equal(self.post(
"/api/repos", json={"Name": repo_name, "DefaultDistribution": "wheezy"}).status_code, 201)
d = self.random_name()
self.check_equal(
@@ -413,10 +463,12 @@ class PublishSwitchAPISkipCleanupTestRepo(APITest):
"pyspi_0.6.1-1.3.dsc",
"pyspi_0.6.1-1.3.diff.gz", "pyspi_0.6.1.orig.tar.gz",
"pyspi-0.6.1-1.3.stripped.dsc").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
snapshot1_name = self.random_name()
self.check_equal(self.post("/api/repos/" + repo_name + '/snapshots', json={'Name': snapshot1_name}).status_code, 201)
self.check_equal(self.post("/api/repos/" + repo_name +
'/snapshots', json={'Name': snapshot1_name}).status_code, 201)
prefix = self.random_name()
resp = self.post("/api/publish/" + prefix,
@@ -443,8 +495,10 @@ class PublishSwitchAPISkipCleanupTestRepo(APITest):
'Storage': ''}
self.check_equal(resp.json(), repo_expected)
self.check_not_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_not_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
# Publish two snapshots, so that deleting one while skipping cleanup will
# not delete the whole prefix.
@@ -475,14 +529,16 @@ class PublishSwitchAPISkipCleanupTestRepo(APITest):
d = self.random_name()
self.check_equal(self.upload("/api/files/" + d,
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
"libboost-program-options-dev_1.49.0.1_i386.deb").status_code, 200)
self.check_equal(
self.post("/api/repos/" + repo_name + "/file/" + d).status_code, 200)
self.check_equal(self.delete("/api/repos/" + repo_name + "/packages/",
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
json={"PackageRefs": ['Psource pyspi 0.6.1-1.4 f8f1daa806004e89']}).status_code, 200)
snapshot2_name = self.random_name()
self.check_equal(self.post("/api/repos/" + repo_name + '/snapshots', json={'Name': snapshot2_name}).status_code, 201)
self.check_equal(self.post("/api/repos/" + repo_name +
'/snapshots', json={'Name': snapshot2_name}).status_code, 201)
resp = self.put("/api/publish/" + prefix + "/wheezy",
json={
@@ -508,9 +564,14 @@ class PublishSwitchAPISkipCleanupTestRepo(APITest):
self.check_equal(resp.status_code, 200)
self.check_equal(resp.json(), repo_expected)
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix + "/wheezy", params={"SkipCleanup": "1"}).status_code, 200)
self.check_exists("public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix + "/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")
self.check_equal(self.delete("/api/publish/" + prefix +
"/wheezy", params={"SkipCleanup": "1"}).status_code, 200)
self.check_exists(
"public/" + prefix + "/pool/main/b/boost-defaults/libboost-program-options-dev_1.49.0.1_i386.deb")
self.check_exists("public/" + prefix +
"/pool/main/p/pyspi/pyspi-0.6.1-1.3.stripped.dsc")