def run(self, *args, **kwargs): try: setattr(SVN, '_version', Version("1.5")) self.assertTrue(SVN().version < SVN.API_CHANGE_VERSION) super(SVNToolTestsBasicOldVersion, self).run(*args, **kwargs) finally: delattr(SVN, '_version') assert SVN().version == SVN.get_version(), \ "{} != {}".format(SVN().version, SVN.get_version())
def create_local_svn_checkout(files, repo_url, rel_project_path=None, commit_msg='default commit message', delete_checkout=True, folder=None): tmp_dir = folder or temp_folder() try: rel_project_path = rel_project_path or str(uuid.uuid4()) # Do not use SVN class as it is what we will be testing subprocess.check_output('svn co "{url}" "{path}"'.format(url=repo_url, path=tmp_dir), shell=True) tmp_project_dir = os.path.join(tmp_dir, rel_project_path) mkdir(tmp_project_dir) save_files(tmp_project_dir, files) with chdir(tmp_project_dir): subprocess.check_output("svn add .", shell=True) subprocess.check_output('svn commit -m "{}"'.format(commit_msg), shell=True) if SVN.get_version() >= SVN.API_CHANGE_VERSION: rev = check_output_runner("svn info --show-item revision").strip() else: import xml.etree.ElementTree as ET output = check_output_runner("svn info --xml").strip() root = ET.fromstring(output) rev = root.findall("./entry")[0].get("revision") project_url = repo_url + "/" + quote(rel_project_path.replace("\\", "/")) return project_url, rev finally: if delete_checkout: shutil.rmtree(tmp_dir, ignore_errors=False, onerror=try_remove_readonly)
def test_version(self, mocked_open): svn_version_string = """svn, version 1.10.3 (r1842928) compiled Apr 5 2019, 18:59:58 on x86_64-apple-darwin17.0.0""" mocked_open.return_value.communicate.return_value = ( svn_version_string.encode(), None) version = SVN.get_version() self.assertEqual(version, "1.10.3")
def test_version_invalid(self, mocked_open): mocked_open.return_value.communicate.return_value = ('failed'.encode(), None) with self.assertRaises(ConanException): SVN.get_version()
def setUp(self): unittest.skipUnless(SVN.get_version() >= SVN.API_CHANGE_VERSION, "SVN::is_pristine not implemented")