예제 #1
0
    def test_translate(self):
        test_keys = ['foo', 'bar', 'blarf', 'washington']

        engine = POEngine()
        engine.file = 'foo.pt'
        for key in test_keys:
            engine.translate(key, 'domain')

        for key in test_keys:
            self.assertTrue(key in engine.catalog['domain'],
                        "POEngine catalog does not properly store message ids"
                        )
예제 #2
0
    def test_translate(self):
        test_keys = ['foo', 'bar', 'blarf', 'washington']

        engine = POEngine()
        engine.file = 'foo.pt'
        for key in test_keys:
            engine.translate(key, 'domain')

        for key in test_keys:
            self.assertIn(
                key, engine.catalog['domain'],
                "POEngine catalog does not properly store message ids")
예제 #3
0
 def test_translate_existing(self):
     engine = POEngine()
     # This tries to reproduce a big surfacing in a template of
     # PloneSoftwareCenter when using the i18ndude package to
     # extract translatable strings, which uses zope.tal.  The
     # relevant html snippet is this:
     #
     # <a href="#" title="Read more&hellip;"
     #    i18n:attributes="title label_read_more"
     #    tal:attributes="href release/absolute_url">
     #    <span i18n:translate="label_read_more">Read more&hellip;</span>
     # </a>
     #
     # Due to the different ways that i18n:attributes and
     # i18n:translate are handled, the attribute gets passed to the
     # translate method with the html entity interpreted as a
     # unicode, and the i18n:translate gets passed as a simple
     # string with the html entity intact.  That may need a fix
     # elsewhere, but at the moment it gives a warning.  The very
     # least we can do is make sure that this does not give a
     # UnicodeDecodeError, which is what we test here.
     engine.file = 'psc_release_listing.pt'
     # position is position in file.
     engine.translate('foo',
                      'domain',
                      default=u'Read more\u2026',
                      position=7)
     # Adding the same key with the same default is fine.
     engine.translate('foo',
                      'domain',
                      default=u'Read more\u2026',
                      position=13)
     # Adding the same key with a different default is bad and
     # triggers a warning.
     with warnings.catch_warnings(record=True) as log:
         warnings.simplefilter("always")
         engine.translate('foo',
                          'domain',
                          default='Read still more&hellip;',
                          position=42)
         self.assertEqual(len(log), 1)
         message = log[0].message
         with tempfile.TemporaryFile('w+') as printfile:
             print(message, file=printfile)
             printfile.seek(0)
             self.assertTrue("already exists with a different default" in
                             printfile.read())
예제 #4
0
 def test_translate_existing(self):
     engine = POEngine()
     # This tries to reproduce a big surfacing in a template of
     # PloneSoftwareCenter when using the i18ndude package to
     # extract translatable strings, which uses zope.tal.  The
     # relevant html snippet is this:
     #
     # <a href="#" title="Read more&hellip;"
     #    i18n:attributes="title label_read_more"
     #    tal:attributes="href release/absolute_url">
     #    <span i18n:translate="label_read_more">Read more&hellip;</span>
     # </a>
     #
     # Due to the different ways that i18n:attributes and
     # i18n:translate are handled, the attribute gets passed to the
     # translate method with the html entity interpreted as a
     # unicode, and the i18n:translate gets passed as a simple
     # string with the html entity intact.  That may need a fix
     # elsewhere, but at the moment it gives a warning.  The very
     # least we can do is make sure that this does not give a
     # UnicodeDecodeError, which is what we test here.
     engine.file = 'psc_release_listing.pt'
     # position is position in file.
     engine.translate('foo', 'domain',
                      default=u'Read more\u2026', position=7)
     # Adding the same key with the same default is fine.
     engine.translate('foo', 'domain',
                      default=u'Read more\u2026', position=13)
     # Adding the same key with a different default is bad and
     # triggers a warning.
     with warnings.catch_warnings(record=True) as log:
         warnings.simplefilter("always")
         engine.translate('foo', 'domain',
                          default='Read still more&hellip;', position=42)
         self.assertEqual(len(log), 1)
         message = log[0].message
         with tempfile.TemporaryFile('w+') as printfile:
             print(message, file=printfile)
             printfile.seek(0)
             self.assertTrue("already exists with a different default"
                             in printfile.read())