Use ddt to separate test cases into tests.
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
"""Tests of i18n/converter.py"""
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
import ddt
|
||||
|
||||
import converter
|
||||
|
||||
@@ -11,39 +14,48 @@ class UpcaseConverter(converter.Converter):
|
||||
return string.upper()
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class TestConverter(TestCase):
|
||||
"""
|
||||
Tests functionality of i18n/converter.py
|
||||
"""
|
||||
|
||||
def test_converter(self):
|
||||
@ddt.data(
|
||||
# no tags
|
||||
('big bad wolf',
|
||||
'BIG BAD WOLF'),
|
||||
# one html tag
|
||||
('big <strong>bad</strong> wolf',
|
||||
'BIG <strong>BAD</strong> WOLF'),
|
||||
# two html tags
|
||||
('big <b>bad</b> gray <i>wolf</i>',
|
||||
'BIG <b>BAD</b> GRAY <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
|
||||
('big %(adjective)s gray %(noun)s',
|
||||
'BIG %(adjective)s GRAY %(noun)s'),
|
||||
# both kinds of tags
|
||||
('<strong>big</strong> %(adjective)s %(noun)s',
|
||||
'<strong>BIG</strong> %(adjective)s %(noun)s'),
|
||||
# .format-style tags
|
||||
('The {0} barn is {1!r}.',
|
||||
'THE {0} BARN IS {1!r}.'),
|
||||
# HTML entities
|
||||
('<b>© 2013 edX,  </b>',
|
||||
'<b>© 2013 EDX,  </b>'),
|
||||
)
|
||||
def test_converter(self, data):
|
||||
"""
|
||||
Tests with a simple converter (converts strings to uppercase).
|
||||
Assert that embedded HTML and python tags are not converted.
|
||||
"""
|
||||
c = UpcaseConverter()
|
||||
test_cases = [
|
||||
# no tags
|
||||
('big bad wolf', 'BIG BAD WOLF'),
|
||||
# one html tag
|
||||
('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
|
||||
('big %(adjective)s %(noun)s', 'BIG %(adjective)s %(noun)s'),
|
||||
# both kinds of tags
|
||||
('<strong>big</strong> %(adjective)s %(noun)s',
|
||||
'<strong>BIG</strong> %(adjective)s %(noun)s'),
|
||||
# .format-style tags
|
||||
('The {0} barn is {1!r}.', 'THE {0} BARN IS {1!r}.'),
|
||||
# HTML entities
|
||||
('<b>© 2013 edX,  </b>', '<b>© 2013 EDX,  </b>'),
|
||||
]
|
||||
for source, expected in test_cases:
|
||||
result = c.convert(source)
|
||||
self.assertEquals(result, expected)
|
||||
source, expected = data
|
||||
result = UpcaseConverter().convert(source)
|
||||
self.assertEquals(result, expected)
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Tests of i18n/dummy.py"""
|
||||
|
||||
import os, string, random
|
||||
from unittest import TestCase
|
||||
|
||||
import ddt
|
||||
from polib import POEntry
|
||||
|
||||
import dummy
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class TestDummy(TestCase):
|
||||
"""
|
||||
Tests functionality of i18n/dummy.py
|
||||
@@ -27,24 +32,24 @@ class TestDummy(TestCase):
|
||||
"Mismatch: %r != %r" % (str1, str2),
|
||||
)
|
||||
|
||||
def test_dummy(self):
|
||||
@ddt.data(
|
||||
(u"hello my name is Bond, James Bond",
|
||||
u"héllø mý nämé ïs Bønd, Jämés Bønd Ⱡσяєм ι#"),
|
||||
|
||||
(u"don't convert <a href='href'>tag ids</a>",
|
||||
u"døn't çønvért <a href='href'>täg ïds</a> Ⱡσяєм ιρѕυ#"),
|
||||
|
||||
(u"don't convert %(name)s tags on %(date)s",
|
||||
u"døn't çønvért %(name)s tägs øn %(date)s Ⱡσяєм ιρѕ#"),
|
||||
)
|
||||
def test_dummy(self, data):
|
||||
"""
|
||||
Tests with a dummy converter (adds spurious accents to strings).
|
||||
Assert that embedded HTML and python tags are not converted.
|
||||
"""
|
||||
test_cases = [
|
||||
(u"hello my name is Bond, James Bond",
|
||||
u"héllø mý nämé ïs Bønd, Jämés Bønd Ⱡσяєм ι#"),
|
||||
|
||||
(u"don't convert <a href='href'>tag ids</a>",
|
||||
u"døn't çønvért <a href='href'>täg ïds</a> Ⱡσяєм ιρѕυ#"),
|
||||
|
||||
(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.assertUnicodeEquals(result, expected)
|
||||
source, expected = data
|
||||
result = self.converter.convert(source)
|
||||
self.assertUnicodeEquals(result, expected)
|
||||
|
||||
def test_singular(self):
|
||||
entry = POEntry()
|
||||
|
||||
Reference in New Issue
Block a user