[Zope3-checkins] CVS: Products3/z3checkins/tests - test_message.py:1.2
Marius Gedminas
mgedmin@codeworks.lt
Thu, 3 Apr 2003 04:17:47 -0500
Update of /cvs-repository/Products3/z3checkins/tests
In directory cvs.zope.org:/tmp/cvs-serv27939/tests
Modified Files:
test_message.py
Log Message:
Handle CVS import messages, messages without signatures, and messages with
DOS line endings.
=== Products3/z3checkins/tests/test_message.py 1.1.1.1 => 1.2 ===
--- Products3/z3checkins/tests/test_message.py:1.1.1.1 Thu Apr 3 03:20:00 2003
+++ Products3/z3checkins/tests/test_message.py Thu Apr 3 04:17:47 2003
@@ -118,6 +118,30 @@
http://mail.zope.org/mailman/listinfo/zope3-checkins
"""
+ sample_import_msg = """\
+From: Foo Bar <foo.bar@bar.com>
+Subject: [Zope3-checkins] CVS: Zope3/src/foo/bar - Imported sources
+Date: Fri, 28 Mar 2003 11:58:05 +03:00
+Message-Id: <42@bar.com>
+
+Update of /cvs-repository/Zope3/src/foo/bar
+In directory cvs.zope.org:/tmp/cvs-serv12345
+
+Log message:
+Ipsum suum dolores quantum est er nonsensicum textum writum esmum inum tuum
+lineum furum testum logum messageum.
+
+Status:
+
+Vendor Tag:\tbarfulator
+Release Tags:\tyo-yo
+
+N Zope3/src/foo/bar/baz.py
+N Zope3/src/foo/bar/bar.pt
+
+No conflicts created by this import
+"""
+
def test_interface(self):
from zopeproducts.z3checkins.message import CheckinMessageParser
verifyObject(ICheckinMessageParser, CheckinMessageParser())
@@ -139,6 +163,24 @@
lineum furum testum logum messageum.""")
self.assertEquals(msg.body, self.sample_msg.split("\n\n", 1)[1].strip())
+ def test_parser_importmsg(self):
+ from zopeproducts.z3checkins.message import CheckinMessageParser
+ from zopeproducts.z3checkins.message import FixedTimezone
+ parser = CheckinMessageParser()
+ msg = parser.parse(StringIO(self.sample_import_msg))
+ self.assertEquals(msg.message_id, "<42@bar.com>")
+ self.assertEquals(msg.author, "Foo Bar <foo.bar@bar.com>")
+ self.assertEquals(msg.author_name, "Foo Bar")
+ self.assertEquals(msg.author_email, "foo.bar@bar.com")
+ self.assertEquals(msg.date, datetime(2003, 03, 28, 11, 58, 05,
+ tzinfo=FixedTimezone(3*60)))
+ self.assertEquals(msg.directory, "Zope3/src/foo/bar")
+ self.assertEquals(msg.log_message, """\
+Ipsum suum dolores quantum est er nonsensicum textum writum esmum inum tuum
+lineum furum testum logum messageum.""")
+ self.assertEquals(msg.body,
+ self.sample_import_msg.split("\n\n", 1)[1].strip())
+
class MessageStub:
@@ -261,8 +303,8 @@
def test_body_strange(self):
from zopeproducts.z3checkins.message import CheckinMessageView
view = CheckinMessageView()
- view.context = MessageStub(body="Something strange")
- self.assertEquals(view.body(), "Something strange")
+ view.context = MessageStub(body="Something & strange")
+ self.assertEquals(view.body(), "<pre>Something & strange</pre>")
def test_body(self):
from zopeproducts.z3checkins.message import CheckinMessageView
@@ -300,11 +342,133 @@
' fwoosh <>&"\n'
'<div class="old">-fouoww\n</div>'
'<div class="new">+fruuuh\n</div>'
- ' fargle\n'
- '<div class="signature">'
+ ' fargle'
+ '<div class="signature">\n'
+ '_______________________________________________\n'
+ 'signature\n'
+ '</div>'
+ '</pre>')
+ self.assertEquals(result, expected, diff(expected, result))
+
+ def test_body_crlf(self):
+ from zopeproducts.z3checkins.message import CheckinMessageView
+ view = CheckinMessageView()
+ view.context = MessageStub(body="Blah blah\r\n"
+ "blah\r\n"
+ "Log message:\r\n"
+ "Blurb blurb\r\n"
+ "blurb.\r\n"
+ "\r\n"
+ "=== foo.py: 1.2 -> 1.3 ===\r\n"
+ "--- foo.py:1.2\tdatetime\r\n"
+ "+++ foo.py\tdatetime\r\n"
+ "@@@ -123,4 +567,8 @@@\r\n"
+ " fwoosh <>&\"\r\n"
+ "-fouoww\r\n"
+ "+fruuuh\r\n"
+ " fargle\r\n"
+ "_______________________________________________\r\n"
+ "signature\r\n")
+ result = view.body()
+ expected = ('<pre>Blah blah\n'
+ 'blah\n'
+ 'Log message:\n'
+ '</pre>'
+ '<div class="log">'
+ '<p>Blurb blurb</p>'
+ '<p>blurb.</p>'
+ '</div>'
+ '<pre>'
+ '<div class="file">=== foo.py: 1.2 -> 1.3 ===\n</div>'
+ '<div class="oldfile">--- foo.py:1.2\tdatetime\n</div>'
+ '<div class="newfile">+++ foo.py\tdatetime\n</div>'
+ '<div class="chunk">@@@ -123,4 +567,8 @@@\n</div>'
+ ' fwoosh <>&"\n'
+ '<div class="old">-fouoww\n</div>'
+ '<div class="new">+fruuuh\n</div>'
+ ' fargle'
+ '<div class="signature">\n'
'_______________________________________________\n'
'signature\n'
'</div>'
+ '</pre>')
+ self.assertEquals(result, expected, diff(expected, result))
+
+ def test_body_nosig(self):
+ from zopeproducts.z3checkins.message import CheckinMessageView
+ view = CheckinMessageView()
+ view.context = MessageStub(body="Blah blah\n"
+ "blah\n"
+ "Log message:\n"
+ "Blurb blurb\n"
+ "blurb.\n"
+ "\n"
+ "=== foo.py: 1.2 -> 1.3 ===\n"
+ "--- foo.py:1.2\tdatetime\n"
+ "+++ foo.py\tdatetime\n"
+ "@@@ -123,4 +567,8 @@@\n"
+ " fwoosh <>&\"\n"
+ "-fouoww\n"
+ "+fruuuh\n"
+ " fargle")
+ result = view.body()
+ expected = ('<pre>Blah blah\n'
+ 'blah\n'
+ 'Log message:\n'
+ '</pre>'
+ '<div class="log">'
+ '<p>Blurb blurb</p>'
+ '<p>blurb.</p>'
+ '</div>'
+ '<pre>'
+ '<div class="file">=== foo.py: 1.2 -> 1.3 ===\n</div>'
+ '<div class="oldfile">--- foo.py:1.2\tdatetime\n</div>'
+ '<div class="newfile">+++ foo.py\tdatetime\n</div>'
+ '<div class="chunk">@@@ -123,4 +567,8 @@@\n</div>'
+ ' fwoosh <>&"\n'
+ '<div class="old">-fouoww\n</div>'
+ '<div class="new">+fruuuh\n</div>'
+ ' fargle'
+ '</pre>')
+ self.assertEquals(result, expected, diff(expected, result))
+
+ def test_body_importmsg(self):
+ from zopeproducts.z3checkins.message import CheckinMessageView
+ view = CheckinMessageView()
+ view.context = MessageStub(body="Blah blah\n"
+ "blah\n"
+ "Log message:\n"
+ "Blurb blurb\n"
+ "blurb.\n"
+ "\n"
+ "Status:\n"
+ "\n"
+ "Vendor Tag:\tnovendor\n"
+ "Release Tags:\tstart\n"
+ "\n"
+ "N foo/bar.py\n"
+ "N foo/baz.pt\n"
+ "\n"
+ "No conflicts created by this import\n")
+ result = view.body()
+ expected = ('<pre>Blah blah\n'
+ 'blah\n'
+ 'Log message:\n'
+ '</pre>'
+ '<div class="log">'
+ '<p>Blurb blurb</p>'
+ '<p>blurb.</p>'
+ '</div>'
+ '<pre>'
+ 'Status:\n'
+ '\n'
+ 'Vendor Tag:\tnovendor\n'
+ 'Release Tags:\tstart\n'
+ '\n'
+ 'N foo/bar.py\n'
+ 'N foo/baz.pt\n'
+ '\n'
+ 'No conflicts created by this import\n'
'</pre>')
self.assertEquals(result, expected, diff(expected, result))