| Index: tests/fake_repos.py
|
| diff --git a/tests/fake_repos.py b/tests/fake_repos.py
|
| index 143104554275fdb515d6666c09f0ed62ebcff9d8..63fc15173f7889db9c4cfa517549b9ecb0ba53d1 100755
|
| --- a/tests/fake_repos.py
|
| +++ b/tests/fake_repos.py
|
| @@ -214,9 +214,6 @@ class FakeRepos(object):
|
| # Quick hack.
|
| if '-v' in sys.argv:
|
| logging.basicConfig(level=logging.DEBUG)
|
| - if '-l' in sys.argv:
|
| - self.SHOULD_LEAK = True
|
| - sys.argv.remove('-l')
|
| elif leak is not None:
|
| self.SHOULD_LEAK = leak
|
| if host:
|
| @@ -341,27 +338,30 @@ class FakeRepos(object):
|
| # - var
|
| # - hooks
|
| # TODO(maruel):
|
| + # - From
|
| # - File
|
| # - $matching_files
|
| # - use_relative_paths
|
| - self._commit_svn(file_system(1, """
|
| + fs = file_system(1, """
|
| vars = {
|
| 'DummyVariable': 'third_party',
|
| }
|
| deps = {
|
| - 'src/other': 'svn://%(host)s/svn/trunk/other',
|
| + 'src/other': 'svn://%(host)s/svn/trunk/other@1',
|
| 'src/third_party/fpp': '/trunk/' + Var('DummyVariable') + '/foo',
|
| }
|
| deps_os = {
|
| 'mac': {
|
| 'src/third_party/prout': '/trunk/third_party/prout',
|
| },
|
| -}""" % { 'host': self.HOST }))
|
| +}""" % { 'host': self.HOST })
|
| + self._commit_svn(fs)
|
|
|
| - self._commit_svn(file_system(2, """
|
| + fs = file_system(2, """
|
| deps = {
|
| 'src/other': 'svn://%(host)s/svn/trunk/other',
|
| 'src/third_party/foo': '/trunk/third_party/foo@1',
|
| + #'src/third_party/foo': From('src/other', 'foo/bar'),
|
| }
|
| # I think this is wrong to have the hooks run from the base of the gclient
|
| # checkout. It's maybe a bit too late to change that behavior.
|
| @@ -378,7 +378,13 @@ hooks = [
|
| 'open(\\'src/svn_hooked2\\', \\'w\\').write(\\'svn_hooked2\\')'],
|
| },
|
| ]
|
| -""" % { 'host': self.HOST }))
|
| +""" % { 'host': self.HOST })
|
| + fs['trunk/other/DEPS'] = """
|
| +deps = {
|
| + 'foo/bar': '/trunk/third_party/foo@1',
|
| +}
|
| +"""
|
| + self._commit_svn(fs)
|
|
|
| def setUpGIT(self):
|
| """Creates git repositories and start the servers."""
|
| @@ -400,9 +406,18 @@ hooks = [
|
| # - var
|
| # - hooks
|
| # TODO(maruel):
|
| + # - From
|
| # - File
|
| # - $matching_files
|
| # - use_relative_paths
|
| + self._commit_git('repo_3', {
|
| + 'origin': 'git/repo_3@1\n',
|
| + })
|
| +
|
| + self._commit_git('repo_3', {
|
| + 'origin': 'git/repo_3@2\n',
|
| + })
|
| +
|
| self._commit_git('repo_1', {
|
| 'DEPS': """
|
| vars = {
|
| @@ -410,38 +425,42 @@ vars = {
|
| }
|
| deps = {
|
| 'src/repo2': 'git://%(host)s/git/repo_2',
|
| - 'src/repo2/repo3': '/' + Var('DummyVariable') + '_3',
|
| + 'src/repo2/repo3': '/' + Var('DummyVariable') + '_3@%(hash3)s',
|
| }
|
| deps_os = {
|
| 'mac': {
|
| 'src/repo4': '/repo_4',
|
| },
|
| -}""" % { 'host': self.HOST },
|
| - 'origin': 'git/repo_1@1\n',
|
| +}""" % {
|
| + 'host': self.HOST,
|
| + # See self.__init__() for the format. Grab's the hash of the first
|
| + # commit in repo_2. Only keep the first 7 character because of:
|
| + # TODO(maruel): http://crosbug.com/3591 We need to strip the hash..
|
| + # duh.
|
| + 'hash3': self.git_hashes['repo_3'][1][0][:7]
|
| + },
|
| + 'origin': 'git/repo_1@1\n',
|
| })
|
|
|
| self._commit_git('repo_2', {
|
| - 'origin': "git/repo_2@1\n"
|
| + 'origin': 'git/repo_2@1\n',
|
| + 'DEPS': """
|
| +deps = {
|
| + 'foo/bar': '/repo_3',
|
| +}
|
| +""",
|
| })
|
|
|
| self._commit_git('repo_2', {
|
| - 'origin': "git/repo_2@2\n"
|
| - })
|
| -
|
| - self._commit_git('repo_3', {
|
| - 'origin': "git/repo_3@1\n"
|
| - })
|
| -
|
| - self._commit_git('repo_3', {
|
| - 'origin': "git/repo_3@2\n"
|
| + 'origin': 'git/repo_2@2\n',
|
| })
|
|
|
| self._commit_git('repo_4', {
|
| - 'origin': "git/repo_4@1\n"
|
| + 'origin': 'git/repo_4@1\n',
|
| })
|
|
|
| self._commit_git('repo_4', {
|
| - 'origin': "git/repo_4@2\n"
|
| + 'origin': 'git/repo_4@2\n',
|
| })
|
|
|
| self._commit_git('repo_1', {
|
| @@ -449,6 +468,7 @@ deps_os = {
|
| deps = {
|
| 'src/repo2': 'git://%(host)s/git/repo_2@%(hash)s',
|
| 'src/repo2/repo_renamed': '/repo_3',
|
| + #'src/repo2/repo_renamed': From('src/repo2', 'foo/bar'),
|
| }
|
| # I think this is wrong to have the hooks run from the base of the gclient
|
| # checkout. It's maybe a bit too late to change that behavior.
|
| @@ -472,7 +492,7 @@ hooks = [
|
| # TODO(maruel): http://crosbug.com/3591 We need to strip the hash.. duh.
|
| 'hash': self.git_hashes['repo_2'][1][0][:7]
|
| },
|
| - 'origin': "git/repo_1@2\n"
|
| + 'origin': 'git/repo_1@2\n',
|
| })
|
|
|
| # Start the daemon.
|
| @@ -511,8 +531,13 @@ class FakeReposTestBase(unittest.TestCase):
|
| # Replace this in your subclass.
|
| CLASS_ROOT_DIR = None
|
|
|
| - # static FakeRepos instance.
|
| - FAKE_REPOS = FakeRepos()
|
| + # static FakeRepos instance. Lazy loaded.
|
| + FAKE_REPOS = None
|
| +
|
| + def __init__(self, *args, **kwargs):
|
| + unittest.TestCase.__init__(self, *args, **kwargs)
|
| + if not FakeReposTestBase.FAKE_REPOS:
|
| + FakeReposTestBase.FAKE_REPOS = FakeRepos()
|
|
|
| def setUp(self):
|
| unittest.TestCase.setUp(self)
|
| @@ -606,5 +631,11 @@ def main(argv):
|
| return 0
|
|
|
|
|
| +# Kind of hack.
|
| +if '-l' in sys.argv:
|
| + FakeRepos.SHOULD_LEAK = True
|
| + sys.argv.remove('-l')
|
| +
|
| +
|
| if __name__ == '__main__':
|
| sys.exit(main(sys.argv))
|
|
|