def test_step(log): target_dir, tear_down = self._mkdtemp() try: env.cmd(["tar", "-C", target_dir, "-xf", tarball_path]) [source_dir] = glob.glob( os.path.join(target_dir, "mechanize-*")) test_env = clean_environ_env(release.CwdEnv(env, source_dir)) test_env.cmd(test_cmd) finally: tear_down()
def install_css_validator_in_release_area(self, log): jar_dir = os.path.join(self._release_area, self._css_validator_path) clean_dir(self._env, jar_dir) in_jar_dir = release.CwdEnv(self._env, jar_dir) in_jar_dir.cmd([ "wget", "http://www.w3.org/QA/Tools/css-validator/css-validator.jar"]) in_jar_dir.cmd(["wget", "http://jigsaw.w3.org/Distrib/jigsaw_2.2.6.tar.bz2"]) in_jar_dir.cmd(["sh", "-c", "tar xf jigsaw_*.tar.bz2"]) in_jar_dir.cmd(["ln", "-s", "Jigsaw/classes/jigsaw.jar"])
def fetch_zope_testbrowser(self, log): clean_dir(self._env, self._zope_testbrowser_dir) in_testbrowser = release.CwdEnv(self._env, self._zope_testbrowser_dir) in_testbrowser.cmd(["easy_install", "--editable", "--build-directory", ".", "zope.testbrowser[test]"]) in_testbrowser.cmd( ["virtualenv", "--no-site-packages", "zope.testbrowser"]) project_dir = os.path.join(self._zope_testbrowser_dir, "zope.testbrowser") in_project_dir = clean_environ_env( release.CwdEnv(self._env, project_dir)) check_not_installed(in_project_dir, "bin/python") in_project_dir.cmd( ["sed", "-i", "-e", "s/mechanize[^\"']*/mechanize/", "setup.py"]) in_project_dir.cmd(["bin/easy_install", "zc.buildout"]) in_project_dir.cmd(["bin/buildout", "init"]) [mechanize_tarball] = list(d for d in self._source_distributions if d.endswith(".tar.gz")) tarball_path = os.path.join(self._repo_path, "dist", mechanize_tarball) in_project_dir.cmd(["bin/easy_install", tarball_path]) in_project_dir.cmd(["bin/buildout", "install"])
def __init__(self, env, git_repository_path, release_area, mirror_path, build_tools_repo_path=None, run_in_repository=False, tag_name=None, test_uri=None): self._release_area = release_area self._release_dir = release_dir = os.path.join(release_area, "release") self._opt_dir = os.path.join(release_dir, "opt") self._bin_dir = os.path.join(self._opt_dir, "bin") AddToPathEnv = release.make_env_maker(release.add_to_path_cmd) self._env = AddToPathEnv(release.GitPagerWrapper(env), self._bin_dir) self._source_repo_path = git_repository_path self._in_source_repo = release.CwdEnv(self._env, self._source_repo_path) self._tag_name = tag_name self._set_next_release_version() self._clone_path = os.path.join(release_dir, "clone") self._in_clone = release.CwdEnv(self._env, self._clone_path) if run_in_repository: self._in_repo = self._in_source_repo self._repo_path = self._source_repo_path else: self._in_repo = self._in_clone self._repo_path = self._clone_path self._docs_dir = os.path.join(self._repo_path, "docs") self._in_docs_dir = release.CwdEnv(self._env, self._docs_dir) self._in_release_dir = release.CwdEnv(self._env, self._release_dir) self._build_tools_path = build_tools_repo_path if self._build_tools_path is not None: self._website_source_path = os.path.join(self._build_tools_path, "website") self._mirror_path = mirror_path self._in_mirror = release.CwdEnv(self._env, self._mirror_path) self._css_validator_path = "css_validator" self._test_uri = test_uri self._test_deps_dir = os.path.join(release_dir, "test_deps") self._easy_install_test_dir = os.path.join(release_dir, "easy_install_test") self._in_easy_install_dir = release.CwdEnv(self._env, self._easy_install_test_dir) # prevent anything other than functional test dependencies being on # sys.path due to cwd or PYTHONPATH self._easy_install_env = clean_environ_env( release.CwdEnv(env, self._test_deps_dir)) self._zope_testbrowser_dir = os.path.join(release_dir, "zope_testbrowser_test")
def __init__(self, env, release_dir, upstream_repo, work_repo=None, tag_name=None, github_access_token=None): self._release_dir = release_dir self._repo = upstream_repo self._work_repo = work_repo self._github_access_token = github_access_token self._requested_tag_name = tag_name if work_repo is None: self._clone_path = os.path.join(release_dir, "clone") else: self._clone_path = work_repo self._base_env = env self._env = release.CwdEnv(env, self._clone_path) self._set_tag_name()
def test_zope_testbrowser(self, log): project_dir = os.path.join(self._zope_testbrowser_dir, "zope.testbrowser") env = clean_environ_env(release.CwdEnv(self._env, project_dir)) check_version_equals(env, self._release_version, "bin/python") env.cmd(["bin/test"])
def ensure_unmodified(env, path): # raise if working tree differs from HEAD release.CwdEnv(env, path).cmd(["git", "diff", "--exit-code", "HEAD"])