>>> execute(['--root', dir.path], manipulate_encodings=False)
No revision control detected.
Directory initialized.
- >>> del(dir)
+ >>> dir.cleanup()
>>> dir = utility.Dir()
>>> os.chdir(dir.path)
>>> execute(['--root', dir.path], manipulate_encodings=False)
No revision control detected.
Directory initialized.
- >>> del(dir)
+ >>> dir.cleanup()
>>> dir = utility.Dir()
>>> os.chdir(dir.path)
_project_name = None
_tmp_project = False
_arch_paramdir = os.path.expanduser("~/.arch-params")
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Arch"""
"""
Create a temporary Arch archive in the directory PATH. This
archive will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_archive
+ cleanup->_vcs_cleanup->_remove_archive
"""
# http://regexps.srparish.net/tutorial-tla/new-archive.html#Creating_a_New_Archive
assert self._archive_name == None
"""
Create a temporary Arch project in the directory PATH. This
project will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_project
+ cleanup->_vcs_cleanup->_remove_project
"""
# http://mwolson.org/projects/GettingStartedWithArch.html
# http://regexps.srparish.net/tutorial-tla/new-project.html#Starting_a_New_Project
self.root = self._find_root(root)
else:
if not os.path.exists(root):
+ self.root = None
raise NoRootEntry(root)
self.root = root
# get a temporary vcs until we've loaded settings
self.vcs = vcs
self._setup_user_id(self.user_id)
- def __del__(self):
- self.cleanup()
-
def cleanup(self):
self.vcs.cleanup()
then only if sink_to_existing_root == True.
"""
if not os.path.exists(path):
+ self.root = None
raise NoRootEntry(path)
versionfile=utility.search_parent_directories(path,
os.path.join(".be", "version"))
else:
beroot = utility.search_parent_directories(path, ".be")
if beroot == None:
+ self.root = None
raise NoBugDir(path)
return beroot
assert_new_BugDir=assert_new_BugDir,
allow_vcs_init=vcs_init,
manipulate_encodings=False)
- if sync_with_disk == True: # postpone cleanup since dir.__del__() removes dir.
+ if sync_with_disk == True: # postpone cleanup since dir.cleanup() removes dir.
self._dir_ref = dir
bug_a = self.new_bug("a", summary="Bug A")
bug_a.creator = "John Doe <jdoe@example.com>"
name = "bzr"
client = "bzr"
versioned = True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".bzr") != None :
name="darcs"
client="darcs"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
+ num_part = output.split(" ")[0]
+ self.parsed_version = [int(i) for i in num_part.split(".")]
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, "_darcs") != None :
def _vcs_get_file_contents(self, path, revision=None, binary=False):
if revision == None:
return vcs.VCS._vcs_get_file_contents(self, path, revision,
- binary=binary)
+ binary=binary)
else:
- try:
- return self._u_invoke_client("show", "contents", "--patch", revision, path)
- except vcs.CommandError:
+ if self.parsed_version[0] >= 2:
+ status,output,error = self._u_invoke_client( \
+ "show", "contents", "--patch", revision, path)
+ return output
+ else:
# Darcs versions < 2.0.0pre2 lack the "show contents" command
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--from-patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--from-patch", revision, path)
major_patch = output
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--patch", revision, path)
target_patch = output
# "--output -" to be supported in GNU patch > 2.5.9
name="git"
client="git"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".git") != None :
name="hg"
client="hg"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Mercurial"""
"A temporary directory for testing use"
def __init__(self):
self.path = tempfile.mkdtemp(prefix="BEtest")
- self.rmtree = shutil.rmtree # save local reference for __del__
self.removed = False
- def __del__(self):
- self.cleanup()
def cleanup(self):
if self.removed == False:
- self.rmtree(self.path)
+ shutil.rmtree(self.path)
self.removed = True
def __call__(self):
return self.path
vcs = module.new()
if matchfn(vcs) == True:
return vcs
- del(vcs)
+ vcs.cleanup()
return VCS()
def vcs_by_name(vcs_name):
self._duplicateBasedir = None
self._duplicateDirname = None
self.encoding = encoding
- def __del__(self):
- self.cleanup()
-
- def _vcs_help(self):
+ self.version = self._get_version()
+ def _vcs_version(self):
"""
- Return the command help string.
- (Allows a simple test to see if the client is installed.)
+ Return the VCS version string.
"""
- pass
+ return "0.0"
def _vcs_detect(self, path=None):
"""
Detect whether a directory is revision controlled with this VCS.
specified revision does not exist.
"""
return None
- def installed(self):
+ def _get_version(self):
try:
- self._vcs_help()
- return True
+ ret = self._vcs_version()
+ return ret
except OSError, e:
if e.errno == errno.ENOENT:
- return False
+ return None
+ else:
+ raise OSError, e
except CommandError:
- return False
+ return None
+ def installed(self):
+ if self.version != None:
+ return True
+ return False
def detect(self, path="."):
"""
Detect whether a directory is revision controlled with this VCS.
setup_vcs_test_fixtures(self)
def tearDown(self):
- del(self.vcs)
+ self.vcs.cleanup()
super(VCSTestCase, self).tearDown()
def full_path(self, rel_path):
def test_revision_file_contents_as_committed(self):
"""Should get file contents as committed to specified revision."""
+ import sys
if not self.vcs.versioned:
return
for path in self.test_files:
_project_name = None
_tmp_project = False
_arch_paramdir = os.path.expanduser("~/.arch-params")
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Arch"""
"""
Create a temporary Arch archive in the directory PATH. This
archive will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_archive
+ cleanup->_vcs_cleanup->_remove_archive
"""
# http://regexps.srparish.net/tutorial-tla/new-archive.html#Creating_a_New_Archive
assert self._archive_name == None
"""
Create a temporary Arch project in the directory PATH. This
project will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_project
+ cleanup->_vcs_cleanup->_remove_project
"""
# http://mwolson.org/projects/GettingStartedWithArch.html
# http://regexps.srparish.net/tutorial-tla/new-project.html#Starting_a_New_Project
self.root = self._find_root(root)
else:
if not os.path.exists(root):
+ self.root = None
raise NoRootEntry(root)
self.root = root
# get a temporary vcs until we've loaded settings
self.vcs = vcs
self._setup_user_id(self.user_id)
- def __del__(self):
- self.cleanup()
-
def cleanup(self):
self.vcs.cleanup()
then only if sink_to_existing_root == True.
"""
if not os.path.exists(path):
+ self.root = None
raise NoRootEntry(path)
versionfile=utility.search_parent_directories(path,
os.path.join(".be", "version"))
else:
beroot = utility.search_parent_directories(path, ".be")
if beroot == None:
+ self.root = None
raise NoBugDir(path)
return beroot
assert_new_BugDir=assert_new_BugDir,
allow_vcs_init=vcs_init,
manipulate_encodings=False)
- if sync_with_disk == True: # postpone cleanup since dir.__del__() removes dir.
+ if sync_with_disk == True: # postpone cleanup since dir.cleanup() removes dir.
self._dir_ref = dir
bug_a = self.new_bug("a", summary="Bug A")
bug_a.creator = "John Doe <jdoe@example.com>"
name = "bzr"
client = "bzr"
versioned = True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".bzr") != None :
name="darcs"
client="darcs"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
+ num_part = output.split(" ")[0]
+ self.parsed_version = [int(i) for i in num_part.split(".")]
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, "_darcs") != None :
def _vcs_get_file_contents(self, path, revision=None, binary=False):
if revision == None:
return vcs.VCS._vcs_get_file_contents(self, path, revision,
- binary=binary)
+ binary=binary)
else:
- try:
- return self._u_invoke_client("show", "contents", "--patch", revision, path)
- except vcs.CommandError:
+ if self.parsed_version[0] >= 2:
+ status,output,error = self._u_invoke_client( \
+ "show", "contents", "--patch", revision, path)
+ return output
+ else:
# Darcs versions < 2.0.0pre2 lack the "show contents" command
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--from-patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--from-patch", revision, path)
major_patch = output
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--patch", revision, path)
target_patch = output
# "--output -" to be supported in GNU patch > 2.5.9
name="git"
client="git"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".git") != None :
name="hg"
client="hg"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Mercurial"""
"A temporary directory for testing use"
def __init__(self):
self.path = tempfile.mkdtemp(prefix="BEtest")
- self.rmtree = shutil.rmtree # save local reference for __del__
self.removed = False
- def __del__(self):
- self.cleanup()
def cleanup(self):
if self.removed == False:
- self.rmtree(self.path)
+ shutil.rmtree(self.path)
self.removed = True
def __call__(self):
return self.path
vcs = module.new()
if matchfn(vcs) == True:
return vcs
- del(vcs)
+ vcs.cleanup()
return VCS()
def vcs_by_name(vcs_name):
self._duplicateBasedir = None
self._duplicateDirname = None
self.encoding = encoding
- def __del__(self):
- self.cleanup()
-
- def _vcs_help(self):
+ self.version = self._get_version()
+ def _vcs_version(self):
"""
- Return the command help string.
- (Allows a simple test to see if the client is installed.)
+ Return the VCS version string.
"""
- pass
+ return "0.0"
def _vcs_detect(self, path=None):
"""
Detect whether a directory is revision controlled with this VCS.
specified revision does not exist.
"""
return None
- def installed(self):
+ def _get_version(self):
try:
- self._vcs_help()
- return True
+ ret = self._vcs_version()
+ return ret
except OSError, e:
if e.errno == errno.ENOENT:
- return False
+ return None
+ else:
+ raise OSError, e
except CommandError:
- return False
+ return None
+ def installed(self):
+ if self.version != None:
+ return True
+ return False
def detect(self, path="."):
"""
Detect whether a directory is revision controlled with this VCS.
setup_vcs_test_fixtures(self)
def tearDown(self):
- del(self.vcs)
+ self.vcs.cleanup()
super(VCSTestCase, self).tearDown()
def full_path(self, rel_path):
def test_revision_file_contents_as_committed(self):
"""Should get file contents as committed to specified revision."""
+ import sys
if not self.vcs.versioned:
return
for path in self.test_files:
_project_name = None
_tmp_project = False
_arch_paramdir = os.path.expanduser("~/.arch-params")
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Arch"""
"""
Create a temporary Arch archive in the directory PATH. This
archive will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_archive
+ cleanup->_vcs_cleanup->_remove_archive
"""
# http://regexps.srparish.net/tutorial-tla/new-archive.html#Creating_a_New_Archive
assert self._archive_name == None
"""
Create a temporary Arch project in the directory PATH. This
project will be removed by
- __del__->cleanup->_vcs_cleanup->_remove_project
+ cleanup->_vcs_cleanup->_remove_project
"""
# http://mwolson.org/projects/GettingStartedWithArch.html
# http://regexps.srparish.net/tutorial-tla/new-project.html#Starting_a_New_Project
self.root = self._find_root(root)
else:
if not os.path.exists(root):
+ self.root = None
raise NoRootEntry(root)
self.root = root
# get a temporary vcs until we've loaded settings
self.vcs = vcs
self._setup_user_id(self.user_id)
- def __del__(self):
- self.cleanup()
-
def cleanup(self):
self.vcs.cleanup()
then only if sink_to_existing_root == True.
"""
if not os.path.exists(path):
+ self.root = None
raise NoRootEntry(path)
versionfile=utility.search_parent_directories(path,
os.path.join(".be", "version"))
else:
beroot = utility.search_parent_directories(path, ".be")
if beroot == None:
+ self.root = None
raise NoBugDir(path)
return beroot
assert_new_BugDir=assert_new_BugDir,
allow_vcs_init=vcs_init,
manipulate_encodings=False)
- if sync_with_disk == True: # postpone cleanup since dir.__del__() removes dir.
+ if sync_with_disk == True: # postpone cleanup since dir.cleanup() removes dir.
self._dir_ref = dir
bug_a = self.new_bug("a", summary="Bug A")
bug_a.creator = "John Doe <jdoe@example.com>"
name = "bzr"
client = "bzr"
versioned = True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".bzr") != None :
name="darcs"
client="darcs"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
+ num_part = output.split(" ")[0]
+ self.parsed_version = [int(i) for i in num_part.split(".")]
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, "_darcs") != None :
def _vcs_get_file_contents(self, path, revision=None, binary=False):
if revision == None:
return vcs.VCS._vcs_get_file_contents(self, path, revision,
- binary=binary)
+ binary=binary)
else:
- try:
- return self._u_invoke_client("show", "contents", "--patch", revision, path)
- except vcs.CommandError:
+ if self.parsed_version[0] >= 2:
+ status,output,error = self._u_invoke_client( \
+ "show", "contents", "--patch", revision, path)
+ return output
+ else:
# Darcs versions < 2.0.0pre2 lack the "show contents" command
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--from-patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--from-patch", revision, path)
major_patch = output
- status,output,error = self._u_invoke_client("diff", "--unified",
- "--patch",
- revision, path)
+ status,output,error = self._u_invoke_client( \
+ "diff", "--unified", "--patch", revision, path)
target_patch = output
# "--output -" to be supported in GNU patch > 2.5.9
name="git"
client="git"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
if self._u_search_parent_directories(path, ".git") != None :
name="hg"
client="hg"
versioned=True
- def _vcs_help(self):
- status,output,error = self._u_invoke_client("--help")
+ def _vcs_version(self):
+ status,output,error = self._u_invoke_client("--version")
return output
def _vcs_detect(self, path):
"""Detect whether a directory is revision-controlled using Mercurial"""
"A temporary directory for testing use"
def __init__(self):
self.path = tempfile.mkdtemp(prefix="BEtest")
- self.rmtree = shutil.rmtree # save local reference for __del__
self.removed = False
- def __del__(self):
- self.cleanup()
def cleanup(self):
if self.removed == False:
- self.rmtree(self.path)
+ shutil.rmtree(self.path)
self.removed = True
def __call__(self):
return self.path
vcs = module.new()
if matchfn(vcs) == True:
return vcs
- del(vcs)
+ vcs.cleanup()
return VCS()
def vcs_by_name(vcs_name):
self._duplicateBasedir = None
self._duplicateDirname = None
self.encoding = encoding
- def __del__(self):
- self.cleanup()
-
- def _vcs_help(self):
+ self.version = self._get_version()
+ def _vcs_version(self):
"""
- Return the command help string.
- (Allows a simple test to see if the client is installed.)
+ Return the VCS version string.
"""
- pass
+ return "0.0"
def _vcs_detect(self, path=None):
"""
Detect whether a directory is revision controlled with this VCS.
specified revision does not exist.
"""
return None
- def installed(self):
+ def _get_version(self):
try:
- self._vcs_help()
- return True
+ ret = self._vcs_version()
+ return ret
except OSError, e:
if e.errno == errno.ENOENT:
- return False
+ return None
+ else:
+ raise OSError, e
except CommandError:
- return False
+ return None
+ def installed(self):
+ if self.version != None:
+ return True
+ return False
def detect(self, path="."):
"""
Detect whether a directory is revision controlled with this VCS.
setup_vcs_test_fixtures(self)
def tearDown(self):
- del(self.vcs)
+ self.vcs.cleanup()
super(VCSTestCase, self).tearDown()
def full_path(self, rel_path):
def test_revision_file_contents_as_committed(self):
"""Should get file contents as committed to specified revision."""
+ import sys
if not self.vcs.versioned:
return
for path in self.test_files: