diff babel/messages/tests/catalog.py @ 606:c5dd3752bf2a trunk

ensure .mo file header contains the same information as the source .po file (#199)
author fschwarz
date Mon, 27 Aug 2012 21:15:27 +0000
parents a661a0360248
children
line wrap: on
line diff
--- a/babel/messages/tests/catalog.py
+++ b/babel/messages/tests/catalog.py
@@ -16,7 +16,9 @@
 import doctest
 import unittest
 
+from babel.dates import format_datetime
 from babel.messages import catalog
+from babel.util import FixedOffsetTimezone
 
 
 class MessageTestCase(unittest.TestCase):
@@ -282,6 +284,29 @@
         for key, value in localized.mime_headers:
             if key in ('POT-Creation-Date', 'PO-Revision-Date'):
                 self.assertEqual(value, '2009-03-09 15:47-0700')
+    
+    def test_mime_headers_contain_same_information_as_attributes(self):
+        cat = catalog.Catalog()
+        cat[''] = catalog.Message('', 
+                      "Last-Translator: Foo Bar <foo.bar@example.com>\n" +
+                      "Language-Team: de <de@example.com>\n" +
+                      "POT-Creation-Date: 2009-03-01 11:20+0200\n" +
+                      "PO-Revision-Date: 2009-03-09 15:47-0700\n")
+        self.assertEqual(None, cat.locale)
+        mime_headers = dict(cat.mime_headers)
+        
+        self.assertEqual('Foo Bar <foo.bar@example.com>', cat.last_translator)
+        self.assertEqual('Foo Bar <foo.bar@example.com>', 
+                         mime_headers['Last-Translator'])
+        
+        self.assertEqual('de <de@example.com>', cat.language_team)
+        self.assertEqual('de <de@example.com>', mime_headers['Language-Team'])
+        
+        dt = datetime.datetime(2009, 3, 9, 15, 47, tzinfo=FixedOffsetTimezone(-7 * 60))
+        self.assertEqual(dt, cat.revision_date)
+        formatted_dt = format_datetime(dt, 'yyyy-MM-dd HH:mmZ', locale='en')
+        self.assertEqual(formatted_dt, mime_headers['PO-Revision-Date'])
+
 
 def suite():
     suite = unittest.TestSuite()
Copyright (C) 2012-2017 Edgewall Software