Add basic test for write_commit_patch.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 15 Apr 2010 17:01:08 +0000 (19:01 +0200)
committerDave Borowitz <dborowitz@google.com>
Fri, 16 Apr 2010 18:56:53 +0000 (11:56 -0700)
dulwich/tests/__init__.py
dulwich/tests/test_patch.py [new file with mode: 0644]

index 59ee066b72ed58d035e66ef610ab6d5f760144d7..3a812b9cf56f2e4cf3c6133e98820fd61250bae6 100644 (file)
@@ -36,6 +36,7 @@ def test_suite():
         'objects',
         'object_store',
         'pack',
+        'patch',
         'protocol',
         'repository',
         'server',
diff --git a/dulwich/tests/test_patch.py b/dulwich/tests/test_patch.py
new file mode 100644 (file)
index 0000000..63c6b94
--- /dev/null
@@ -0,0 +1,58 @@
+# test_patch.py -- tests for patch.py
+# Copryight (C) 2010 Jelmer Vernooij <jelmer@samba.org>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License or (at your option) a later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+
+"""Tests for patch.py."""
+
+from cStringIO import StringIO
+from unittest import TestCase
+
+from dulwich.objects import (
+    Commit,
+    Tree,
+    )
+from dulwich.patch import (
+    write_commit_patch,
+    )
+
+
+class WriteCommitPatchTests(TestCase):
+
+    def test_simple(self):
+        f = StringIO()
+        c = Commit()
+        c.committer = c.author = "Jelmer <jelmer@samba.org>"
+        c.commit_time = c.author_time = 1271350201
+        c.commit_timezone = c.author_timezone = 0
+        c.message = "This is the first line\nAnd this is the second line.\n"
+        c.tree = Tree().id
+        write_commit_patch(f, c, "CONTENTS", (1, 1), version="custom")
+        f.seek(0)
+        lines = f.readlines()
+        self.assertTrue(lines[0].startswith("From 0b0d34d1b5b596c928adc9a727a4b9e03d025298"))
+        self.assertEquals(lines[1], "From: Jelmer <jelmer@samba.org>\n")
+        self.assertTrue(lines[2].startswith("Date: "))
+        self.assertEquals([
+            "Subject: [PATCH 1/1] This is the first line\n",
+            "And this is the second line.\n",
+            "\n",
+            "\n",
+            "---\n",
+            " 0 files changed\n",
+            "\n",
+            "CONTENTS-- \n",
+            "custom\n"], lines[3:])