Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Unified Diff: tests/git_number_test.py

Issue 26109002: Add git-number script to calculate generation numbers for commits. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Add version checking for coverage module Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/git_common_test.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/git_number_test.py
diff --git a/tests/git_number_test.py b/tests/git_number_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..7a1b73a72a61bc3cde2caf54623bc6cb012edf1a
--- /dev/null
+++ b/tests/git_number_test.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+# Copyright (c) 2013 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.
+
+"""Unit tests for git_number.py"""
+
+import binascii
+import os
+import sys
+
+DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.insert(0, DEPOT_TOOLS_ROOT)
+
+from testing_support import git_test_utils
+from testing_support import coverage_utils
+
+
+class Basic(git_test_utils.GitRepoReadWriteTestBase):
+ REPO = """
+ A B C D E
+ B F E
+ X Y E
+ """
+
+ @classmethod
+ def setUpClass(cls):
+ super(Basic, cls).setUpClass()
+ import git_number
+ cls.gn = git_number
+ cls.old_POOL_KIND = cls.gn.POOL_KIND
+ cls.gn.POOL_KIND = 'threads'
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.gn.POOL_KIND = cls.old_POOL_KIND
+ super(Basic, cls).tearDownClass()
+
+ def tearDown(self):
+ self.gn.clear_caches()
+ super(Basic, self).tearDown()
+
+ def _git_number(self, refs, cache=False):
+ refs = map(binascii.unhexlify, refs)
+ self.repo.run(self.gn.load_generation_numbers, refs)
+ if cache:
+ self.repo.run(self.gn.finalize, refs)
+ return map(self.gn.get_num, refs)
+
+ def testBasic(self):
+ self.assertEqual([0], self._git_number([self.repo['A']]))
+ self.assertEqual([2], self._git_number([self.repo['F']]))
+ self.assertEqual([0], self._git_number([self.repo['X']]))
+ self.assertEqual([4], self._git_number([self.repo['E']]))
+
+ def testInProcessCache(self):
+ self.assertEqual(
+ None,
+ self.repo.run(self.gn.get_num, binascii.unhexlify(self.repo['A'])))
+ self.assertEqual([4], self._git_number([self.repo['E']]))
+ self.assertEqual(
+ 0,
+ self.repo.run(self.gn.get_num, binascii.unhexlify(self.repo['A'])))
+
+ def testOnDiskCache(self):
+ self.assertEqual(
+ None,
+ self.repo.run(self.gn.get_num, binascii.unhexlify(self.repo['A'])))
+ self.assertEqual([4], self._git_number([self.repo['E']], cache=True))
+ self.assertEqual([4], self._git_number([self.repo['E']], cache=True))
+ self.gn.clear_caches()
+ self.assertEqual(
+ 0,
+ self.repo.run(self.gn.get_num, binascii.unhexlify(self.repo['A'])))
+ self.gn.clear_caches()
+ self.repo.run(self.gn.clear_caches, True)
+ self.assertEqual(
+ None,
+ self.repo.run(self.gn.get_num, binascii.unhexlify(self.repo['A'])))
+
+
+if __name__ == '__main__':
+ sys.exit(coverage_utils.covered_main(
+ os.path.join(DEPOT_TOOLS_ROOT, 'git_number.py'),
+ '3.7'
+ ))
« no previous file with comments | « tests/git_common_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698