def setUp(self): self._expander = MacroExpander() self._expander.add_macro('upper', lambda x: x.upper()) self._expander.add_macro('lower', lambda x: x.lower()) self._expander.add_macro('gjb', lambda: 'Geert Jan Bex') self._expander.add_macro('repeat', lambda x, n: int(n) * x) self._expander.add_macro('cat', lambda x, y: x + '-' + y) self._expander.add_macro('add', lambda x, y: str(int(x) + int(y)))
def setUp(self): self._expander = MacroExpander() self._expander.add_macro('upper', lambda x: x.upper()) self._expander.add_macro('lower', lambda x: x.lower()) self._expander.add_macro('gjb', lambda: 'Geert Jan Bex') self._expander.add_macro('repeat', lambda x, n: int(n)*x) self._expander.add_macro('cat', lambda x, y: x + '-' + y) self._expander.add_macro('add', lambda x, y: str(int(x) + int(y)))
class MacroExapnderTest(unittest.TestCase): def setUp(self): self._expander = MacroExpander() self._expander.add_macro('upper', lambda x: x.upper()) self._expander.add_macro('lower', lambda x: x.lower()) self._expander.add_macro('gjb', lambda: 'Geert Jan Bex') self._expander.add_macro('repeat', lambda x, n: int(n) * x) self._expander.add_macro('cat', lambda x, y: x + '-' + y) self._expander.add_macro('add', lambda x, y: str(int(x) + int(y))) def test_upper(self): orig_text = 'This is a text with \\upper{a function call}.' target_text = 'This is a text with A FUNCTION CALL.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_apostrophe(self): orig_text = "This'll be upper case \\upper{won't it?}." target_text = "This'll be upper case WON'T IT?." text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_arguments(self): orig_text = 'This \cat{abc}{def} a text.' target_text = 'This abc-def a text.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_numerical_arguments(self): orig_text = 'This is a sum: \\add{3}{7}.' target_text = 'This is a sum: 10.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_literal_string(self): orig_text = r'This \repeat{is}{3} a text.' target_text = 'This isisis a text.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_macros(self): orig_text = ('This \\repeat{is}{3} a text with \\upper{a ' + 'function call}.') target_text = 'This isisis a text with A FUNCTION CALL.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_lines(self): orig_text = ('This is a text with \\upper{a function call},\n' + 'and \lower{ANOTHER ONE} on multiple lines\n\n' + 'authored by... \gjb.\n') target_text = ('This is a text with A FUNCTION CALL,\n' + 'and another one on multiple lines\n\n' + 'authored by... Geert Jan Bex.\n') text = self._expander.expand(orig_text) self.assertEqual(text, target_text)
class MacroExapnderTest(unittest.TestCase): def setUp(self): self._expander = MacroExpander() self._expander.add_macro('upper', lambda x: x.upper()) self._expander.add_macro('lower', lambda x: x.lower()) self._expander.add_macro('gjb', lambda: 'Geert Jan Bex') self._expander.add_macro('repeat', lambda x, n: int(n)*x) self._expander.add_macro('cat', lambda x, y: x + '-' + y) self._expander.add_macro('add', lambda x, y: str(int(x) + int(y))) def test_upper(self): orig_text = 'This is a text with \\upper{a function call}.' target_text = 'This is a text with A FUNCTION CALL.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_apostrophe(self): orig_text = "This'll be upper case \\upper{won't it?}." target_text = "This'll be upper case WON'T IT?." text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_arguments(self): orig_text = 'This \cat{abc}{def} a text.' target_text = 'This abc-def a text.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_numerical_arguments(self): orig_text = 'This is a sum: \\add{3}{7}.' target_text = 'This is a sum: 10.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_literal_string(self): orig_text = r'This \repeat{is}{3} a text.' target_text = 'This isisis a text.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_macros(self): orig_text = ('This \\repeat{is}{3} a text with \\upper{a ' + 'function call}.') target_text = 'This isisis a text with A FUNCTION CALL.' text = self._expander.expand(orig_text) self.assertEqual(text, target_text) def test_multiple_lines(self): orig_text = ('This is a text with \\upper{a function call},\n' + 'and \lower{ANOTHER ONE} on multiple lines\n\n' + 'authored by... \gjb.\n') target_text = ('This is a text with A FUNCTION CALL,\n' + 'and another one on multiple lines\n\n' + 'authored by... Geert Jan Bex.\n') text = self._expander.expand(orig_text) self.assertEqual(text, target_text)