Browse Source

Fix Python3 integer division issue in roll-dep.

Change-Id: I43d1b9cecee3066c206b2cfdb2fa9d37bc5001e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2132232
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Edward Lesmes 5 years ago
parent
commit
994bed5496
2 changed files with 33 additions and 1 deletions
  1. 1 1
      roll_dep.py
  2. 32 0
      tests/roll_dep_test.py

+ 1 - 1
roll_dep.py

@@ -134,7 +134,7 @@ def generate_commit_message(
     if len(cleaned_lines) > log_limit:
     if len(cleaned_lines) > log_limit:
       # Keep the first N/2 log entries and last N/2 entries.
       # Keep the first N/2 log entries and last N/2 entries.
       lines = logs.splitlines(True)
       lines = logs.splitlines(True)
-      lines = lines[:log_limit/2] + ['(...)\n'] + lines[-log_limit/2:]
+      lines = lines[:log_limit//2] + ['(...)\n'] + lines[-log_limit//2:]
       logs = ''.join(lines)
       logs = ''.join(lines)
     log_section += logs
     log_section += logs
   return header + log_section
   return header + log_section

+ 32 - 0
tests/roll_dep_test.py

@@ -146,6 +146,38 @@ class RollDepTest(fake_repos.FakeReposTestBase):
     self.assertIn(expected_message, stdout)
     self.assertIn(expected_message, stdout)
     self.assertIn(expected_message, commit_message)
     self.assertIn(expected_message, commit_message)
 
 
+  def testRollsDepLogLimit(self):
+    if not self.enabled:
+      return
+    stdout, stderr, returncode = self.call(
+        [ROLL_DEP, 'src/foo', '--log-limit', '1'])
+    expected_revision = self.githash('repo_2', 3)
+
+    self.assertEqual(stderr, '')
+    self.assertEqual(returncode, 0)
+
+    with open(os.path.join(self.src_dir, 'DEPS')) as f:
+      contents = f.read()
+
+    self.assertEqual(self.gitrevparse(self.foo_dir), expected_revision)
+    self.assertEqual([
+        'deps = {',
+        ' "src/foo": "file:///' + self.git_base.replace('\\', '\\\\') +
+        'repo_2@' + expected_revision + '",',
+        '}',
+        'hooks = [',
+        '  {"action": ["foo", "--android", "{checkout_android}"]}',
+        ']',
+    ], contents.splitlines())
+
+    commit_message = self.call(['git', 'log', '-n', '1'])[0]
+
+    expected_message = 'Roll src/foo/ %s..%s (2 commits)' % (
+        self.githash('repo_2', 1)[:9], self.githash('repo_2', 3)[:9])
+
+    self.assertIn(expected_message, stdout)
+    self.assertIn(expected_message, commit_message)
+
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
   level = logging.DEBUG if '-v' in sys.argv else logging.FATAL
   level = logging.DEBUG if '-v' in sys.argv else logging.FATAL