Beispiel #1
0
 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()
Beispiel #2
0
 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"])
Beispiel #3
0
 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"])
Beispiel #4
0
 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()
Beispiel #6
0
 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"])
Beispiel #7
0
def ensure_unmodified(env, path):
    # raise if working tree differs from HEAD
    release.CwdEnv(env, path).cmd(["git", "diff", "--exit-code", "HEAD"])