Lorem is now fancy, and HTML tags are recognized with single-quote attributes.
This commit is contained in:
@@ -29,6 +29,9 @@ class TestConverter(TestCase):
|
||||
('big <strong>bad</strong> wolf', 'BIG <strong>BAD</strong> WOLF'),
|
||||
# two html tags
|
||||
('big <b>bad</b> <i>wolf</i>', 'BIG <b>BAD</b> <i>WOLF</i>'),
|
||||
# html tags with attributes
|
||||
('<a href="foo">bar</a> baz', '<a href="foo">BAR</a> BAZ'),
|
||||
("<a href='foo'>bar</a> baz", "<a href='foo'>BAR</a> BAZ"),
|
||||
# one python tag
|
||||
('big %(adjective)s wolf', 'BIG %(adjective)s WOLF'),
|
||||
# two python tags
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os, string, random
|
||||
from unittest import TestCase
|
||||
from polib import POEntry
|
||||
@@ -13,39 +14,52 @@ class TestDummy(TestCase):
|
||||
def setUp(self):
|
||||
self.converter = dummy.Dummy()
|
||||
|
||||
def assertUnicodeEquals(self, str1, str2):
|
||||
"""Just like assertEquals, but doesn't put Unicode into the fail message.
|
||||
|
||||
Either nose, or rake, or something, deals very badly with unusual
|
||||
Unicode characters in the assertions, so we use repr here to keep
|
||||
things safe.
|
||||
|
||||
"""
|
||||
self.assertEquals(
|
||||
str1, str2,
|
||||
"Mismatch: %r != %r" % (str1, str2),
|
||||
)
|
||||
|
||||
def test_dummy(self):
|
||||
"""
|
||||
Tests with a dummy converter (adds spurious accents to strings).
|
||||
Assert that embedded HTML and python tags are not converted.
|
||||
"""
|
||||
test_cases = [
|
||||
("hello my name is Bond, James Bond",
|
||||
u'h\xe9ll\xf8 m\xfd n\xe4m\xe9 \xefs B\xf8nd, J\xe4m\xe9s B\xf8nd Lorem i#'),
|
||||
(u"hello my name is Bond, James Bond",
|
||||
u"héllø mý nämé ïs Bønd, Jämés Bønd Ⱡσяєм ι#"),
|
||||
|
||||
('don\'t convert <a href="href">tag ids</a>',
|
||||
u'd\xf8n\'t \xe7\xf8nv\xe9rt <a href="href">t\xe4g \xefds</a> Lorem ipsu#'),
|
||||
(u"don't convert <a href='href'>tag ids</a>",
|
||||
u"døn't çønvért <a href='href'>täg ïds</a> Ⱡσяєм ιρѕυ#"),
|
||||
|
||||
('don\'t convert %(name)s tags on %(date)s',
|
||||
u"d\xf8n't \xe7\xf8nv\xe9rt %(name)s t\xe4gs \xf8n %(date)s Lorem ips#")
|
||||
(u"don't convert %(name)s tags on %(date)s",
|
||||
u"døn't çønvért %(name)s tägs øn %(date)s Ⱡσяєм ιρѕ#"),
|
||||
]
|
||||
for source, expected in test_cases:
|
||||
result = self.converter.convert(source)
|
||||
self.assertEquals(result, expected)
|
||||
self.assertUnicodeEquals(result, expected)
|
||||
|
||||
def test_singular(self):
|
||||
entry = POEntry()
|
||||
entry.msgid = 'A lovely day for a cup of tea.'
|
||||
expected = u'\xc0 l\xf8v\xe9l\xfd d\xe4\xfd f\xf8r \xe4 \xe7\xfcp \xf8f t\xe9\xe4. Lorem i#'
|
||||
expected = u'À løvélý däý før ä çüp øf téä. Ⱡσяєм ι#'
|
||||
self.converter.convert_msg(entry)
|
||||
self.assertEquals(entry.msgstr, expected)
|
||||
self.assertUnicodeEquals(entry.msgstr, expected)
|
||||
|
||||
def test_plural(self):
|
||||
entry = POEntry()
|
||||
entry.msgid = 'A lovely day for a cup of tea.'
|
||||
entry.msgid_plural = 'A lovely day for some cups of tea.'
|
||||
expected_s = u'\xc0 l\xf8v\xe9l\xfd d\xe4\xfd f\xf8r \xe4 \xe7\xfcp \xf8f t\xe9\xe4. Lorem i#'
|
||||
expected_p = u'\xc0 l\xf8v\xe9l\xfd d\xe4\xfd f\xf8r s\xf8m\xe9 \xe7\xfcps \xf8f t\xe9\xe4. Lorem ip#'
|
||||
expected_s = u'À løvélý däý før ä çüp øf téä. Ⱡσяєм ι#'
|
||||
expected_p = u'À løvélý däý før sømé çüps øf téä. Ⱡσяєм ιρ#'
|
||||
self.converter.convert_msg(entry)
|
||||
result = entry.msgstr_plural
|
||||
self.assertEquals(result['0'], expected_s)
|
||||
self.assertEquals(result['1'], expected_p)
|
||||
self.assertUnicodeEquals(result['0'], expected_s)
|
||||
self.assertUnicodeEquals(result['1'], expected_p)
|
||||
|
||||
Reference in New Issue
Block a user