| Index: tests/gclient_test.py
|
| ===================================================================
|
| --- tests/gclient_test.py (revision 44042)
|
| +++ tests/gclient_test.py (working copy)
|
| @@ -1017,10 +1017,199 @@
|
| self.assertRaisesError(exception, self._gclient_gclient.RunOnDeps, client,
|
| 'update', self.args)
|
|
|
| - def testFromImpl(self):
|
| - # TODO(maruel): Test me!
|
| - pass
|
| + def testFromImplOne(self):
|
| + base_url = 'svn://base@123'
|
| + deps_content = (
|
| + "deps = {\n"
|
| + " 'base': '%s',\n"
|
| + " 'main': From('base'),\n"
|
| + "}\n" % base_url
|
| + )
|
| + main_url = 'svn://main@456'
|
| + base_deps_content = (
|
| + "deps = {\n"
|
| + " 'main': '%s',\n"
|
| + "}\n" % main_url
|
| + )
|
| + # Fake .gclient file.
|
| + name = 'testFromImplOne_solution_name'
|
| + gclient_config = (
|
| + "solutions = [ {\n"
|
| + "'name': '%s',\n"
|
| + "'url': '%s',\n"
|
| + "'custom_deps': {},\n"
|
| + "}, ]" % (name, self.url))
|
|
|
| + options = self.Options()
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'main', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'base', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git')
|
| + ).AndReturn(False)
|
| + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, name, options.deps_file)
|
| + ).AndReturn(deps_content)
|
| +
|
| + # base gets updated.
|
| + gclient.gclient_scm.CreateSCM(base_url, self.root_dir, 'base').AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, 'base', options.deps_file)
|
| + ).AndReturn(base_deps_content)
|
| +
|
| + # main gets updated.
|
| + gclient.gclient_scm.CreateSCM(main_url, self.root_dir, 'main').AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| +
|
| + # Process is done and will write an .gclient_entries.
|
| + gclient.os.path.exists(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename)
|
| + ).AndReturn(False)
|
| + gclient.gclient_utils.FileWrite(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename),
|
| + mox.IgnoreArg())
|
| +
|
| + self.mox.ReplayAll()
|
| + client = self._gclient_gclient(self.root_dir, options)
|
| + client.SetConfig(gclient_config)
|
| + client.RunOnDeps('update', self.args)
|
| +
|
| + def testFromImplTwo(self):
|
| + base_url = 'svn://base@123'
|
| + deps_content = (
|
| + "deps = {\n"
|
| + " 'base': '%s',\n"
|
| + " 'main': From('base', 'src/main'),\n"
|
| + "}\n" % base_url
|
| + )
|
| + main_url = 'svn://main@456'
|
| + base_deps_content = (
|
| + "deps = {\n"
|
| + " 'src/main': '%s',\n"
|
| + "}\n" % main_url
|
| + )
|
| + # Fake .gclient file.
|
| + name = 'testFromImplTwo_solution_name'
|
| + gclient_config = (
|
| + "solutions = [ {\n"
|
| + "'name': '%s',\n"
|
| + "'url': '%s',\n"
|
| + "'custom_deps': {},\n"
|
| + "}, ]" % (name, self.url))
|
| +
|
| + options = self.Options()
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'main', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'base', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git')
|
| + ).AndReturn(False)
|
| + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, name, options.deps_file)
|
| + ).AndReturn(deps_content)
|
| +
|
| + # base gets updated.
|
| + gclient.gclient_scm.CreateSCM(base_url, self.root_dir, 'base').AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, 'base', options.deps_file)
|
| + ).AndReturn(base_deps_content)
|
| +
|
| + # main gets updated.
|
| + gclient.gclient_scm.CreateSCM(main_url, self.root_dir, 'main').AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| +
|
| + # Process is done and will write an .gclient_entries.
|
| + gclient.os.path.exists(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename)
|
| + ).AndReturn(False)
|
| + gclient.gclient_utils.FileWrite(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename),
|
| + mox.IgnoreArg())
|
| +
|
| + self.mox.ReplayAll()
|
| + client = self._gclient_gclient(self.root_dir, options)
|
| + client.SetConfig(gclient_config)
|
| + client.RunOnDeps('update', self.args)
|
| +
|
| + def testFromImplTwoRelatvie(self):
|
| + base_url = 'svn://base@123'
|
| + deps_content = (
|
| + "deps = {\n"
|
| + " 'base': '%s',\n"
|
| + " 'main': From('base', 'src/main'),\n"
|
| + "}\n" % base_url
|
| + )
|
| + main_url = '/relative@456'
|
| + base_deps_content = (
|
| + "deps = {\n"
|
| + " 'src/main': '%s',\n"
|
| + "}\n" % main_url
|
| + )
|
| + # Fake .gclient file.
|
| + name = 'testFromImplTwo_solution_name'
|
| + gclient_config = (
|
| + "solutions = [ {\n"
|
| + "'name': '%s',\n"
|
| + "'url': '%s',\n"
|
| + "'custom_deps': {},\n"
|
| + "}, ]" % (name, self.url))
|
| +
|
| + options = self.Options()
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'main', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, 'base', '.git')
|
| + ).AndReturn(False)
|
| + gclient.os.path.exists(gclient.os.path.join(self.root_dir, name, '.git')
|
| + ).AndReturn(False)
|
| + gclient.gclient_scm.CreateSCM(self.url, self.root_dir, name).AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, name, options.deps_file)
|
| + ).AndReturn(deps_content)
|
| +
|
| + # base gets updated.
|
| + gclient.gclient_scm.CreateSCM(base_url, self.root_dir, 'base').AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| + gclient.gclient_utils.FileRead(
|
| + gclient.os.path.join(self.root_dir, 'base', options.deps_file)
|
| + ).AndReturn(base_deps_content)
|
| +
|
| + # main gets updated after resolving the relative url.
|
| + gclient.gclient_scm.CreateSCM(base_url, self.root_dir, None).AndReturn(
|
| + gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.FullUrlForRelativeUrl(main_url
|
| + ).AndReturn('svn://base' + main_url)
|
| + gclient.gclient_scm.CreateSCM('svn://base' + main_url, self.root_dir,
|
| + 'main').AndReturn(gclient.gclient_scm.CreateSCM)
|
| + gclient.gclient_scm.CreateSCM.RunCommand('update', options, self.args, [])
|
| +
|
| + # Process is done and will write an .gclient_entries.
|
| + gclient.os.path.exists(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename)
|
| + ).AndReturn(False)
|
| + gclient.gclient_utils.FileWrite(
|
| + gclient.os.path.join(self.root_dir, options.entries_filename),
|
| + mox.IgnoreArg())
|
| +
|
| + self.mox.ReplayAll()
|
| + client = self._gclient_gclient(self.root_dir, options)
|
| + client.SetConfig(gclient_config)
|
| + client.RunOnDeps('update', self.args)
|
| +
|
| def testFileImpl(self):
|
| # Fake .gclient file.
|
| name = "testFileImpl"
|
|
|