summaryrefslogtreecommitdiffstats
path: root/tools/grit
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 20:24:41 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-02 20:24:41 +0000
commit7745ba59712ae3f2b0078d79aceac9ddb65f9fd4 (patch)
tree8c94954d373433c31da693c838443ad269826f09 /tools/grit
parentb02721f082619c7ee307c347eac75dc746906cf6 (diff)
downloadchromium_src-7745ba59712ae3f2b0078d79aceac9ddb65f9fd4.zip
chromium_src-7745ba59712ae3f2b0078d79aceac9ddb65f9fd4.tar.gz
chromium_src-7745ba59712ae3f2b0078d79aceac9ddb65f9fd4.tar.bz2
Add presubmit checks for grit. This runs the unittests.
Fix the grd_reader tests to pass if run from any directory (previously, it had to be run from tools/grit). Fix rc_unittest to pass on Linux (it was sensitive to line endings). If the user doesn't have access to the internal repository, there will be lots of failures :( Maybe there's a way to detect this case and skip the tests? Review URL: http://codereview.chromium.org/6349026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73498 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/grit')
-rw-r--r--tools/grit/PRESUBMIT.py21
-rw-r--r--tools/grit/grit/format/rc_unittest.py9
-rw-r--r--tools/grit/grit/grd_reader_unittest.py12
-rw-r--r--tools/grit/grit/node/misc.py8
4 files changed, 40 insertions, 10 deletions
diff --git a/tools/grit/PRESUBMIT.py b/tools/grit/PRESUBMIT.py
new file mode 100644
index 0000000..f1d58aa
--- /dev/null
+++ b/tools/grit/PRESUBMIT.py
@@ -0,0 +1,21 @@
+# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""grit unittests presubmit script.
+
+See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts for
+details on the presubmit API built into gcl.
+"""
+
+
+def RunUnittests(input_api, output_api):
+ return input_api.canned_checks.RunPythonUnitTests(input_api, output_api,
+ ['grit.test_suite_all'])
+
+
+def CheckChangeOnUpload(input_api, output_api):
+ return RunUnittests(input_api, output_api)
+
+def CheckChangeOnCommit(input_api, output_api):
+ return RunUnittests(input_api, output_api)
diff --git a/tools/grit/grit/format/rc_unittest.py b/tools/grit/grit/format/rc_unittest.py
index 36aac5b..9bf98fc 100644
--- a/tools/grit/grit/format/rc_unittest.py
+++ b/tools/grit/grit/format/rc_unittest.py
@@ -77,8 +77,8 @@ END'''.strip())
buf = StringIO.StringIO()
build.RcBuilder.ProcessNode(root, DummyOutput('rc_all', 'en'), buf)
- output = buf.getvalue()
- self.failUnless(output.strip() == u'''
+ output = buf.getvalue().strip()
+ expected = u'''
IDC_KLONKMENU MENU
BEGIN
POPUP "&File"
@@ -140,8 +140,9 @@ BEGIN
BEGIN
VALUE "Translation", 0x409, 1200
END
-END'''.strip())
-
+END'''.strip()
+ for expected_line, output_line in zip(expected.split(), output.split()):
+ self.assertEqual(expected_line, output_line)
def testRcIncludeStructure(self):
root = grd_reader.Parse(StringIO.StringIO('''
diff --git a/tools/grit/grit/grd_reader_unittest.py b/tools/grit/grit/grd_reader_unittest.py
index f009bb4..9217454 100644
--- a/tools/grit/grit/grd_reader_unittest.py
+++ b/tools/grit/grit/grd_reader_unittest.py
@@ -111,7 +111,11 @@ class GrdReaderUnittest(unittest.TestCase):
</grit>'''
pseudo_file = StringIO.StringIO(input)
root = grd_reader.Parse(pseudo_file, '.')
- root.AssignFirstIds("../../chrome/app/generated_resources.grd", None)
+ grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)),
+ '..')
+ root.AssignFirstIds(
+ os.path.join(grit_root_dir, "../../chrome/app/generated_resources.grd"),
+ None)
messages_node = root.children[0].children[0]
self.failUnless(isinstance(messages_node, empty.MessagesNode))
self.failUnless(messages_node.attrs["first_id"] !=
@@ -137,7 +141,11 @@ class GrdReaderUnittest(unittest.TestCase):
</grit>'''
pseudo_file = StringIO.StringIO(input)
root = grd_reader.Parse(pseudo_file, '.')
- root.AssignFirstIds("../../test.grd", "grit/test/data/resource_ids")
+ grit_root_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)),
+ '..')
+ root.AssignFirstIds(
+ os.path.join(grit_root_dir, "../../test.grd"),
+ os.path.join(grit_root_dir, "grit/test/data/resource_ids"))
messages_node = root.children[0].children[0]
self.assertTrue(isinstance(messages_node, empty.MessagesNode))
self.assertEqual('100', messages_node.attrs["first_id"])
diff --git a/tools/grit/grit/node/misc.py b/tools/grit/grit/node/misc.py
index 96afcc1..ec1e489 100644
--- a/tools/grit/grit/node/misc.py
+++ b/tools/grit/grit/node/misc.py
@@ -277,17 +277,17 @@ class GritNode(base.Node):
# By default, we use the the file resources_ids next to grit.py
# to determine what ids to assign to resources.
+ grit_root_dir = os.path.abspath(os.path.join(os.path.dirname(
+ os.path.abspath(__file__)), '..', '..'))
if not first_id_filename:
- first_id_filename = os.path.join(os.path.dirname(
- os.path.abspath(sys.argv[0])), 'resource_ids')
+ first_id_filename = os.path.join(grit_root_dir, 'resource_ids')
first_ids = None
from grit.node import empty
for node in self.inorder():
if isinstance(node, empty.GroupingNode):
# The checkout base directory is 2 directories up from grit.py.
- src_root_dir = os.path.dirname(os.path.dirname(
- os.path.dirname(os.path.abspath(sys.argv[0]))))
+ src_root_dir = os.path.dirname(os.path.dirname(grit_root_dir))
filename = os.path.abspath(filename_or_stream)[
len(src_root_dir) + 1:]