def test_extract_translate(self): src = '''<xml><div>Hi</div><p> Hello World</p></xml>''' expected = { False: '''<xml><div>TRANSLATED(Hi)</div><p>TRANSLATED( Hello World)</p></xml>''', True: '''<xml><div>TRANSLATED(Hi)</div><p>TRANSLATED(Hello World)</p></xml>''' } for strip_text in (False, True): # Build translation table messages = {} for _, _, msgid, _ in i18n.extract(BytesIO(src.encode('utf-8')), None, None, { 'strip_text': strip_text }): messages[msgid] = 'TRANSLATED(%s)' % msgid # Provide a fake translation function default_gettext = i18n.gettext i18n.gettext = lambda s: messages[s] try: perform(src, expected[strip_text], strip_text=strip_text) finally: i18n.gettext = default_gettext
def test_extract_translate(self): src = """<xml><div>Hi</div><p> Hello World</p></xml>""" expected = { False: """<xml><div>TRANSLATED(Hi)</div><p>\n\n TRANSLATED(Hello World)</p></xml>""", True: """<xml><div>TRANSLATED(Hi)</div><p>TRANSLATED(Hello World)</p></xml>""", } for strip_text in (False, True): # Build translation table messages = {} for _, _, msgid, _ in i18n.extract(BytesIO(src.encode("utf-8")), None, None, {"strip_text": strip_text}): messages[msgid] = "TRANSLATED(%s)" % msgid # Provide a fake translation function default_gettext = i18n.gettext i18n.gettext = lambda s: messages[s] try: perform(src, expected[strip_text], strip_text=strip_text) finally: i18n.gettext = default_gettext
def test_extract_python_inside_invalid(self): src = '''<xml><div>${_('hi' +)}</div></xml>''' try: x = list(i18n.extract(BytesIO(src.encode('utf-8')), [], None, { 'extract_python': True })) except XMLTemplateCompileError as e: assert "_('hi' +)" in str(e) else: assert False, 'Should have raised'
def test_extract_python_inside_invalid(self): src = """<xml><div>${_('hi' +)}</div></xml>""" try: list( i18n.extract(BytesIO(src.encode("utf-8")), [], None, {"extract_python": True})) except XMLTemplateCompileError as e: assert "_('hi' +)" in str(e) else: assert False, "Should have raised"
def test_extract_python_inside_invalid(self): src = '''<xml><div>${_('hi' +)}</div></xml>''' try: x = list( i18n.extract(BytesIO(src.encode('utf-8')), [], None, {'extract_python': True})) except XMLTemplateCompileError as e: assert "_('hi' +)" in str(e) else: assert False, 'Should have raised'
def test_extract_python_inside(self): src = """<xml><div>${_('hi')}</div><p> Hello World</p></xml>""" expected = """<xml><div>xi</div><p>\n\n TRANSLATED(Hello World)</p></xml>""" # Build translation table messages = {"hi": "xi"} for _, _, msgid, _ in i18n.extract(BytesIO(src.encode("utf-8")), [], None, {"extract_python": True}): messages[msgid] = "TRANSLATED(%s)" % msgid # Provide a fake translation function default_gettext = i18n.gettext i18n.gettext = lambda s: messages[s] try: perform(src, expected) finally: i18n.gettext = default_gettext
def test_extract_python_inside(self): src = '''<xml><div>${_('hi')}</div><p> Hello World</p></xml>''' expected = '''<xml><div>xi</div><p>\n\n TRANSLATED(Hello World)</p></xml>''' # Build translation table messages = {'hi': 'xi'} for _, _, msgid, _ in i18n.extract(BytesIO(src.encode('utf-8')), [], None, {'extract_python': True}): messages[msgid] = 'TRANSLATED(%s)' % msgid # Provide a fake translation function default_gettext = i18n.gettext i18n.gettext = lambda s: messages[s] try: perform(src, expected) finally: i18n.gettext = default_gettext
def test_extract_python_inside(self): src = '''<xml><div>${_('hi')}</div><p> Hello World</p></xml>''' expected = '''<xml><div>xi</div><p>\n\n TRANSLATED(Hello World)</p></xml>''' # Build translation table messages = {'hi': 'xi'} for _, _, msgid, _ in i18n.extract(BytesIO(src.encode('utf-8')), [], None, { 'extract_python': True }): messages[msgid] = 'TRANSLATED(%s)' % msgid # Provide a fake translation function default_gettext = i18n.gettext i18n.gettext = lambda s: messages[s] try: perform(src, expected) finally: i18n.gettext = default_gettext