aptly/system/t05_snapshot/merge.py

187 lines
5.5 KiB
Python

from lib import BaseTest
import re
class MergeSnapshot1Test(BaseTest):
"""
merge snapshots: two snapshots
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
]
runCmd = "aptly snapshot merge snap3 snap1 snap2"
def check(self):
def remove_created_at(s):
return re.sub(r"Created At: [0-9:A-Za-z -]+\n", "", s)
self.check_output()
self.check_cmd_output("aptly snapshot show -with-packages snap3", "snapshot_show", match_prepare=remove_created_at)
class MergeSnapshot2Test(BaseTest):
"""
merge snapshots: one snapshot
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
]
runCmd = "aptly snapshot merge snap2 snap1"
def check(self):
self.check_output()
self.check_cmd_output("aptly snapshot diff snap1 snap2", "snapshot_diff")
class MergeSnapshot3Test(BaseTest):
"""
merge snapshots: three snapshots
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
]
runCmd = "aptly snapshot merge snap4 snap1 snap2 snap3"
def check(self):
def remove_created_at(s):
return re.sub(r"Created At: [0-9:A-Za-z -]+\n", "", s)
self.check_output()
self.check_cmd_output("aptly snapshot show -with-packages snap4", "snapshot_show", match_prepare=remove_created_at)
class MergeSnapshot4Test(BaseTest):
"""
merge snapshots: no such snapshot
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
]
runCmd = "aptly snapshot merge snap3 snap1 snap2"
expectedCode = 1
class MergeSnapshot5Test(BaseTest):
"""
merge snapshots: duplicate snapshot
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
]
runCmd = "aptly snapshot merge snap1 snap1"
expectedCode = 1
class MergeSnapshot6Test(BaseTest):
"""
merge snapshots: use latest versions only
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
]
runCmd = "aptly snapshot merge -latest snap4 snap1 snap2 snap3"
expectedCode = 0
def check(self):
def remove_created_at(s):
return re.sub(r"Created At: [0-9:A-Za-z -]+\n", "", s)
self.check_output()
self.check_cmd_output("aptly snapshot show -with-packages snap4", "snapshot_show", match_prepare=remove_created_at)
class MergeSnapshot7Test(BaseTest):
"""
merge snapshots: in reverse order
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
]
runCmd = "aptly snapshot merge snap4 snap3 snap2 snap1"
expectedCode = 0
def check(self):
def remove_created_at(s):
return re.sub(r"Created At: [0-9:A-Za-z -]+\n", "", s)
self.check_output()
self.check_cmd_output("aptly snapshot show -with-packages snap4", "snapshot_show", match_prepare=remove_created_at)
class MergeSnapshot8Test(BaseTest):
"""
merge snapshots: compare -latest and regular
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
"aptly snapshot merge snap4 snap3 snap2 snap1",
"aptly snapshot merge -latest snap5 snap3 snap2 snap1",
]
runCmd = "aptly snapshot diff snap4 snap5"
expectedCode = 0
class MergeSnapshot9Test(BaseTest):
"""
merge snapshots: -no-remove
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
]
runCmd = "aptly snapshot merge -no-remove snap4 snap1 snap2 snap3"
expectedCode = 0
def check(self):
def remove_created_at(s):
return re.sub(r"Created At: [0-9:A-Za-z -]+\n", "", s)
self.check_output()
self.check_cmd_output("aptly snapshot show -with-packages snap4", "snapshot_show", match_prepare=remove_created_at)
class MergeSnapshot10Test(BaseTest):
"""
merge snapshots: compare -no-remove and regular
"""
fixtureDB = True
fixtureCmds = [
"aptly snapshot create snap1 from mirror wheezy-main",
"aptly snapshot create snap2 from mirror wheezy-non-free",
"aptly snapshot create snap3 from mirror wheezy-backports",
"aptly snapshot merge snap4 snap3 snap2 snap1",
"aptly snapshot merge -no-remove snap5 snap3 snap2 snap1",
]
runCmd = "aptly snapshot diff snap4 snap5"
expectedCode = 0
class MergeSnapshot11Test(BaseTest):
"""
merge snapshots: -no-remove & -latest conflict
"""
fixtureCmds = [
"aptly snapshot create snap1 empty"
]
runCmd = "aptly snapshot merge -no-remove -latest snap2 snap1"
expectedCode = 1