mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 22:21:10 +02:00
loman: Only add a project to local_manifest.xml if not in manifest.xml
Otherwise, repo gets upset BUG=none TEST=Unit tests pass. Change-Id: If1af601f96f27e37259898041e1ac715f6df6d30 Reviewed-on: http://gerrit.chromium.org/gerrit/734 Reviewed-by: Mandeep Singh Baines <msb@chromium.org> Tested-by: Mandeep Singh Baines <msb@chromium.org>
This commit is contained in:
parent
a29fb20065
commit
e4096d75fd
18
bin/loman.py
18
bin/loman.py
@ -97,6 +97,9 @@ def main(argv):
|
||||
parser.add_option('-f', '--file', dest='local_manifest',
|
||||
default='%s/local_manifest.xml' % repo_dir,
|
||||
help='Non-default manifest file to read.')
|
||||
parser.add_option('-m', '--main', dest='main_manifest',
|
||||
default='%s/manifest.xml' % repo_dir,
|
||||
help='Main manifest file to read.')
|
||||
parser.add_option('-d', '--default', dest='full_manifest',
|
||||
default='%s/manifests/full.xml' % repo_dir,
|
||||
help='Default manifest file to read.')
|
||||
@ -110,14 +113,17 @@ def main(argv):
|
||||
name = args[0]
|
||||
|
||||
local_tree = _ReadManifest(options.local_manifest)
|
||||
main_tree = _ReadManifest(options.main_manifest)
|
||||
full_tree = _ReadManifest(options.full_manifest)
|
||||
|
||||
project_element = full_tree.GetProject(name)
|
||||
if project_element == None:
|
||||
Die('No project named, %s, in the default manifest.' % name)
|
||||
success = local_tree.AddWorkonProjectElement(project_element)
|
||||
if not success:
|
||||
Die('name "%s" already exits with a different path.' % name)
|
||||
# Only add this project to local_manifest.xml if not in manifest.xml
|
||||
if main_tree.GetProject(name) == None:
|
||||
project_element = full_tree.GetProject(name)
|
||||
if project_element == None:
|
||||
Die('No project named, %s, in the default manifest.' % name)
|
||||
success = local_tree.AddWorkonProjectElement(project_element)
|
||||
if not success:
|
||||
Die('name "%s" already exits with a different path.' % name)
|
||||
|
||||
try:
|
||||
print >> open(options.local_manifest, 'w'), local_tree.ToString()
|
||||
|
@ -80,9 +80,13 @@ class MainTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.utf8 = "<?xml version='1.0' encoding='UTF-8'?>\n"
|
||||
self.tiny_manifest = '<manifest>\n</manifest>'
|
||||
self.tiny_manifest = self.utf8 + '<manifest>\n</manifest>\n'
|
||||
self.stderr = sys.stderr
|
||||
sys.stderr = StringIO.StringIO()
|
||||
self.main = tempfile.NamedTemporaryFile('w')
|
||||
print >> self.main, '%s' % self.tiny_manifest
|
||||
self.main.flush()
|
||||
os.fsync(self.main.fileno())
|
||||
|
||||
def tearDown(self):
|
||||
sys.stderr = self.stderr
|
||||
@ -110,10 +114,11 @@ class MainTest(unittest.TestCase):
|
||||
default.flush()
|
||||
os.fsync(default.fileno())
|
||||
temp = tempfile.NamedTemporaryFile('w')
|
||||
print >> temp, '<manifest>\n</manifest>'
|
||||
print >> temp, '%s' % self.tiny_manifest
|
||||
temp.flush()
|
||||
os.fsync(temp.fileno())
|
||||
loman.main(['loman', 'add', '--workon', '-f', temp.name,
|
||||
'-m', self.main.name,
|
||||
'-d', default.name, 'foo'])
|
||||
self.assertEqual(
|
||||
open(temp.name, 'r').read(),
|
||||
@ -133,6 +138,7 @@ class MainTest(unittest.TestCase):
|
||||
temp.flush()
|
||||
os.fsync(temp.fileno())
|
||||
loman.main(['loman', 'add', '--workon', '-f', temp.name,
|
||||
'-m', self.main.name,
|
||||
'-d', default.name, 'foo'])
|
||||
|
||||
def testAddDup(self):
|
||||
@ -150,8 +156,27 @@ class MainTest(unittest.TestCase):
|
||||
os.fsync(temp.fileno())
|
||||
self.assertRaises(SystemExit, loman.main,
|
||||
['loman', 'add', '--workon', '-f', temp.name,
|
||||
'-m', self.main.name,
|
||||
'-d', default.name, 'foo'])
|
||||
|
||||
def testAddDupInMain(self):
|
||||
default = tempfile.NamedTemporaryFile('w')
|
||||
print >> default, '<manifest>\n' \
|
||||
'<project name="foo" path="path/to/foo" />\n' \
|
||||
'</manifest>\n'
|
||||
default.flush()
|
||||
os.fsync(default.fileno())
|
||||
temp = tempfile.NamedTemporaryFile('w')
|
||||
print >> temp, '%s' % self.tiny_manifest
|
||||
temp.flush()
|
||||
os.fsync(temp.fileno())
|
||||
loman.main(['loman', 'add', '--workon', '-f', temp.name,
|
||||
'-m', default.name,
|
||||
'-d', default.name, 'foo'])
|
||||
self.assertEqual(
|
||||
open(temp.name, 'r').read(),
|
||||
self.tiny_manifest)
|
||||
|
||||
def testAddNonexistant(self):
|
||||
default = tempfile.NamedTemporaryFile('w')
|
||||
print >> default, '<manifest>\n' \
|
||||
@ -165,6 +190,7 @@ class MainTest(unittest.TestCase):
|
||||
os.fsync(temp.fileno())
|
||||
self.assertRaises(SystemExit, loman.main,
|
||||
['loman', 'add', '--workon', '-f', temp.name,
|
||||
'-m', self.main.name,
|
||||
'-d', default.name, 'bar'])
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user