testing: expand Hypothesis tests with branch commands
This builds on the previous work to add Hypothesis based stateful
testing to add branching commands to the model.
--- a/tests/test-verify-repo-operations.py Wed Feb 24 13:05:45 2016 +0000
+++ b/tests/test-verify-repo-operations.py Wed Feb 24 13:06:43 2016 +0000
@@ -133,6 +133,7 @@
# be provided as arguments to future operations.
paths = Bundle('paths')
contents = Bundle('contents')
+ branches = Bundle('branches')
committimes = Bundle('committimes')
def __init__(self):
@@ -250,6 +251,13 @@
def gencontent(self, content):
return content
+ @rule(
+ target=branches,
+ name=safetext,
+ )
+ def genbranch(self, name):
+ return name
+
@rule(target=paths, source=paths)
def lowerpath(self, source):
return source.lower()
@@ -369,6 +377,32 @@
def export(self):
self.hg("export")
+ # Section: Branch management
+ @rule()
+ def checkbranch(self):
+ self.hg("branch")
+
+ @rule(branch=branches)
+ def switchbranch(self, branch):
+ with acceptableerrors(
+ 'cannot use an integer as a name',
+ 'cannot be used in a name',
+ 'a branch of the same name already exists',
+ 'is reserved',
+ ):
+ self.hg("branch", "--", branch)
+
+ @rule(branch=branches, clean=st.booleans())
+ def update(self, branch, clean):
+ with acceptableerrors(
+ 'unknown revision',
+ 'parse error',
+ ):
+ if clean:
+ self.hg("update", "-C", "--", branch)
+ else:
+ self.hg("update", "--", branch)
+
settings.register_profile(
'default', settings(
timeout=300,