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

Unified Diff: tests/patch_test.py

Issue 6055005: Add a function to detect patches that can't be safely applied. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/commit-queue
Patch Set: Rebase against trunk Created 10 years 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 | « pending_manager.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/patch_test.py
diff --git a/tests/patch_test.py b/tests/patch_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..36fb6879432415667caf4c77c5b5947589f4e07f
--- /dev/null
+++ b/tests/patch_test.py
@@ -0,0 +1,146 @@
+#!/usr/bin/env python
+# Copyright (c) 2010 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 patch.py."""
+
+import os
+import sys
+import unittest
+
+ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
+sys.path.append(os.path.join(ROOT_DIR, '..'))
+
+import patch
+
+
+class PatchTest(unittest.TestCase):
+ def testUnsupportedMerge(self):
+ data = (
+ '\n'
+ 'Property changes on: .\n'
+ '\n'
+ '___________________________________________________________________\n'
+ 'Modified: svn:mergeinfo\n'
+ ' Merged /trunk:r635-639\n'
+ '\n')
+ self.assertEquals(
+ 'Can\'t apply svn property svn:mergeinfo', patch.verify_patch(data))
+
+ def testUnsupportedEmptyfileSvn1(self):
+ data = (
+ 'Index: foo.py\n'
+ '===================================================================\n'
+ '\n'
+ 'Property changes on: foo.py\n'
+ '___________________________________________________________________\n'
+ 'Added: svn:eol-style\n'
+ ' + LF\n'
+ '\n')
+ self.assertEquals(
+ 'Can\'t patch empty file (svn)', patch.verify_patch(data))
+
+ def testUnsupportedEmptyfileSvn2(self):
+ data = (
+ 'Index: foo.py\n'
+ '===================================================================\n')
+ self.assertEquals(
+ 'Can\'t patch empty file (svn)', patch.verify_patch(data))
+
+ def testUnsupportedEmptyfileGit(self):
+ data = (
+ 'diff --git a/git_cl/git-cl b/git_cl/git-cl\n')
+ self.assertEquals(
+ 'Can\'t patch empty file (git)', patch.verify_patch(data))
+
+ def testUnsupportedGitMode1(self):
+ data = (
+ 'diff --git a/git_cl/git-cl b/git_cl/git-cl\n'
+ 'old mode 100644\n'
+ 'new mode 100755\n')
+ self.assertEquals(
+ 'Unsupported git file mode change', patch.verify_patch(data))
+
+ def testUnsupportedGitMode2(self):
+ data = (
+ 'diff --git a/git_cl/git-cl b/git_cl/git-cl\n'
+ 'old mode 100644\n'
+ 'new mode 100755\n'
+ 'index 449c6e0..b035565\n'
+ '--- a/git_cl/git-cl\n'
+ '+++ b/git_cl/git-cl\n'
+ '@@ -3,7 +3,7 @@\n'
+ ' # Copyright (C) 2008 Evan Martin <martine@danga.com>\n'
+ '\n'
+ ' import sys\n'
+ '-\n'
+ '+foo\n'
+ ' import git_cl\n'
+ '\n'
+ ' if __name__ == \'__main__\':\n')
+ self.assertEquals(
+ 'Unsupported git file mode change', patch.verify_patch(data))
+
+ def testSupported1(self):
+ data = (
+ 'Index: foo\n'
+ '===================================================================\n'
+ '--- foo (revision 639)\n'
+ '+++ foo (working copy)\n'
+ '@@ -1,6 +1,6 @@\n'
+ ' Welcome to Rietveld\n'
+ ' -------------------\n'
+ '-\n'
+ '+2\n'
+ ' This project shows how to create a somewhat substantial web '
+ 'application\n'
+ ' using Django on Google App Engine. It requires Django version 1.1.\n'
+ '\n'
+ '\n'
+ 'Property changes on: foo\n'
+ '___________________________________________________________________\n'
+ 'Modified: svn:eol-style\n'
+ ' - native\n'
+ ' + LF\n'
+ '\n')
+ self.assertEquals(None, patch.verify_patch(data))
+
+ def testSupported2(self):
+ data = (
+ 'Index: patch.py\n'
+ 'diff --git a/patch.py b/patch.py\n'
+ 'index af18ee43e212583815d27d138d1fc426883eb663..8433a962e8586c7a84413'
+ '6dc1e43d10e0a542d13 100644\n'
+ '--- a/patch.py\n'
+ '+++ b/patch.py\n'
+ '@@ -1,8 +1,10 @@\n'
+ '+# coding=utf8\n'
+ ' # Copyright (c) 2010 The Chromium Authors. All rights reserved.\n'
+ ' # Use of this source code is governed by a BSD-style license that can'
+ ' be\n'
+ ' # found in the LICENSE file.\n'
+ ' """Utility functions to handle patches."""\n'
+ ' \n'
+ '+import logging\n'
+ ' import re\n'
+ ' import subprocess2\n'
+ ' \n')
+ self.assertEquals(None, patch.verify_patch(data))
+
+ def testSupported3(self):
+ data = (
+ 'Index: tests/patch_test.py\n'
+ 'diff --git a/tests/patch_test.py b/tests/patch_test.py\n'
+ 'new file mode 100755\n'
+ 'index 0000000000000000000000000000000000000000..a9dc5827926d57bc5dc8'
+ 'f5106a0a63c891cce38c\n'
+ '--- /dev/null\n'
+ '+++ b/tests/patch_test.py\n'
+ '@@ -0,0 +1,1 @@\n'
+ '+#!/usr/bin/env python\n')
+ self.assertEquals(None, patch.verify_patch(data))
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « pending_manager.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698