def test_gitrepo(self):
        """Test using GitRepository."""
        # only run this test if git Python module is available
        try:
            from git import GitCommandError
        except ImportError:
            print "(skipping GitRepository test)"
            return

        test_repo_url = 'https://github.com/hpcugent/testrepository'

        # URL
        repo = GitRepository(test_repo_url)
        repo.init()
        self.assertEqual(os.path.basename(repo.wc), 'testrepository')
        self.assertTrue(os.path.exists(os.path.join(repo.wc, 'README.md')))
        shutil.rmtree(repo.wc)

        # filepath
        tmpdir = tempfile.mkdtemp()
        cmd = "cd %s && git clone --bare %s" % (tmpdir, test_repo_url)
        _, ec = run_cmd(cmd, simple=False, log_all=False, log_ok=False)

        # skip remainder of test if creating bare git repo didn't work
        if ec == 0:
            repo = GitRepository(os.path.join(tmpdir, 'testrepository.git'))
            repo.init()
            toy_ec_file = os.path.join(os.path.dirname(__file__), 'easyconfigs', 'toy-0.0.eb')
            repo.add_easyconfig(toy_ec_file, 'test', '1.0', {}, False)

            shutil.rmtree(repo.wc)
            shutil.rmtree(tmpdir)
class RepositoryTest(EnhancedTestCase):
    """ very basis FileRepository test, we don't want git / svn dependency """
    def setUp(self):
        """Set up test."""
        super(RepositoryTest, self).setUp()

        self.path = tempfile.mkdtemp(prefix='easybuild-repo-')
        shutil.rmtree(self.path, True)

    def test_filerepo(self):
        """Test using FileRepository."""
        repo = FileRepository(self.path)
        repo.init()
        self.assertEqual(repo.wc, self.path)

        subdir = 'sub/dir'
        repo = FileRepository(self.path, subdir)
        repo.init()
        self.assertEqual(repo.wc, self.path)
        self.assertEqual(repo.subdir, subdir)

    def test_gitrepo(self):
        """Test using GitRepository."""
        # only run this test if git Python module is available
        try:
            from git import GitCommandError
        except ImportError:
            print "(skipping GitRepository test)"
            return

        test_repo_url = 'https://github.com/hpcugent/testrepository'

        # URL
        repo = GitRepository(test_repo_url)
        try:
            repo.init()
            self.assertEqual(os.path.basename(repo.wc), 'testrepository')
            self.assertTrue(os.path.exists(os.path.join(repo.wc, 'README.md')))
            shutil.rmtree(repo.wc)
        except EasyBuildError, err:
            print "ignoring failed subtest in test_gitrepo, testing offline?"
            self.assertTrue(
                re.search("pull in working copy .* went wrong", str(err)))

        # filepath
        tmpdir = tempfile.mkdtemp()
        cmd = "cd %s && git clone --bare %s" % (tmpdir, test_repo_url)
        _, ec = run_cmd(cmd, simple=False, log_all=False, log_ok=False)

        # skip remainder of test if creating bare git repo didn't work
        if ec == 0:
            repo = GitRepository(os.path.join(tmpdir, 'testrepository.git'))
            repo.init()
            toy_ec_file = os.path.join(os.path.dirname(__file__),
                                       'easyconfigs', 'toy-0.0.eb')
            repo.add_easyconfig(toy_ec_file, 'test', '1.0', {}, False)

            shutil.rmtree(repo.wc)
            shutil.rmtree(tmpdir)
Beispiel #3
0
    def test_gitrepo(self):
        """Test using GitRepository."""
        # only run this test if git Python module is available
        try:
            from git import GitCommandError
        except ImportError:
            print "(skipping GitRepository test)"
            return

        test_repo_url = 'https://github.com/hpcugent/testrepository'

        # URL
        repo = GitRepository(test_repo_url)
        try:
            repo.init()
            self.assertEqual(os.path.basename(repo.wc), 'testrepository')
            self.assertTrue(os.path.exists(os.path.join(repo.wc, 'README.md')))
            shutil.rmtree(repo.wc)
        except EasyBuildError, err:
            print "ignoring failed subtest in test_gitrepo, testing offline?"
            self.assertTrue(re.search("pull in working copy .* went wrong", str(err)))
Beispiel #4
0
    def test_gitrepo(self):
        """Test using GitRepository."""
        # only run this test if git Python module is available
        try:
            from git import GitCommandError  # noqa
        except ImportError:
            print("(skipping GitRepository test)")
            return

        test_repo_url = 'https://github.com/easybuilders/testrepository'

        # URL
        repo = GitRepository(test_repo_url)
        try:
            repo.init()
            self.assertEqual(os.path.basename(repo.wc), 'testrepository')
            self.assertTrue(os.path.exists(os.path.join(repo.wc, 'README.md')))
            shutil.rmtree(repo.wc)
        except EasyBuildError as err:
            print("ignoring failed subtest in test_gitrepo, testing offline?")
            self.assertTrue(
                re.search("pull in working copy .* went wrong", str(err)))

        # filepath
        tmpdir = tempfile.mkdtemp()
        cmd = "cd %s && git clone --bare %s" % (tmpdir, test_repo_url)
        _, ec = run_cmd(cmd, simple=False, log_all=False, log_ok=False)

        # skip remainder of test if creating bare git repo didn't work
        if ec == 0:
            repo = GitRepository(os.path.join(tmpdir, 'testrepository.git'))
            repo.init()
            toy_ec_file = os.path.join(os.path.dirname(__file__),
                                       'easyconfigs', 'test_ecs', 't', 'toy',
                                       'toy-0.0.eb')
            repo.add_easyconfig(toy_ec_file, 'test', '1.0', {}, None)
            repo.commit("toy/0.0")

            log_regex = re.compile(
                r"toy/0.0 with EasyBuild v%s @ .* \(time: .*, user: .*\)" %
                VERSION, re.M)
            logmsg = repo.client.log('HEAD^!')
            self.assertTrue(
                log_regex.search(logmsg),
                "Pattern '%s' found in %s" % (log_regex.pattern, logmsg))

            shutil.rmtree(repo.wc)
            shutil.rmtree(tmpdir)