Exemple #1
0
def test_attributes_no_domain_without_domain_filter():
    global source
    source = b'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n">
                   <dummy i18n:attributes="title" title="test title"/>
                  </html>'''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
Exemple #2
0
def test_attributes_no_domain_without_domain_filter():
    global source
    source = b'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n">
                   <dummy i18n:attributes="title" title="test title"/>
                  </html>'''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
Exemple #3
0
def test_curly_brace_in_python_attribute_expression():
    global source
    source = b'''\
            <html>
              <a href="${request.route_url('set_locale', _query={'locale': 'de'})}"></a>
            </html>
            '''
    list(extract_xml('filename', _options()))
Exemple #4
0
def test_translate_entities_in_python_expression():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <div class="${' disabled' if 1 &lt; 2 else None}"/>
                </html>
                '''
    list(extract_xml('filename', _options()))
Exemple #5
0
def test_curly_brace_related_syntax_error():
    global source
    source = b'''\
            <html>
              <a href="${request.route_url('set_locale', _}"></a>
            </html>
            '''
    with pytest.raises(SystemExit):
        list(extract_xml('filename', _options()))
Exemple #6
0
def test_translate_entities_in_python_expression():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <div class="${' disabled' if 1 &lt; 2 else None}"/>
                </html>
                '''
    list(extract_xml('filename', _options()))
Exemple #7
0
def test_translate_call_in_python_expression_in_attribute():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy title="${_(u'foo')}"></dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'foo'
Exemple #8
0
def test_ignore_dynamic_message():
    global source
    source = b'''\
                <html xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <p i18n:translate="">${'dummy'}</p>
                </html>
                '''
    assert list(extract_xml('filename', _options())) == []
Exemple #9
0
def test_html_entities():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <button i18n:translate="">Lock &amp; load&nbsp;</button>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Lock &amp; load&nbsp;'
Exemple #10
0
def test_attributes_multiple_attributes():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                       i18n:domain="lingua">
                   <dummy i18n:attributes="title ; alt" title="tést title"
                          alt="test ålt"/>
                 </html>'''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 2
    assert [m.msgid for m in messages] == [u'tést title', u'test ålt']
Exemple #11
0
def test_translate_structure_as_keyword():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                    <div tal:content="structure 123"></div>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 0
Exemple #12
0
def test_translate_minimal():
    global source
    source = u'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="">Dummy téxt</dummy>
                </html>'''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'Dummy téxt'
Exemple #13
0
def test_translate_repeat_expression():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <div tal:repeat="(key, value) dict(a=1).iteritems()"></div>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 0
Exemple #14
0
def test_translate_minimal():
    global source
    source = u'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="">Dummy téxt</dummy>
                </html>'''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'Dummy téxt'
Exemple #15
0
def test_attributes_plain():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:attributes="title" title="tést title"/>
                </html>
                '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'tést title'
Exemple #16
0
def test_attributes_plain():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:attributes="title" title="tést title"/>
                </html>
                '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'tést title'
Exemple #17
0
def test_ignore_dynamic_message():
    global source
    source = b'''\
                <html xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <p i18n:translate="">${'dummy'}</p>
                </html>
                '''
    assert list(extract_xml('filename', _options())) == []
Exemple #18
0
def test_translate_call_in_python_expression_in_attribute():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy title="${_(u'foo')}"></dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'foo'
Exemple #19
0
def test_ignore_structure_in_replace():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy tal:replace="structure _('foo')">Dummy</dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'foo'
Exemple #20
0
def test_html_entities():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <button i18n:translate="">Lock &amp; load&nbsp;</button>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Lock &amp; load&nbsp;'
Exemple #21
0
def test_attributes_multiple_attributes():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                       i18n:domain="lingua">
                   <dummy i18n:attributes="title ; alt" title="tést title"
                          alt="test ålt"/>
                 </html>'''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 2
    assert [m.msgid for m in messages] == [u'tést title', u'test ålt']
Exemple #22
0
def test_multiple_expressions_with_translate_calls():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy title="${_(u'foo')} ${_(u'bar')}"></dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'foo'
    assert messages[1].msgid == u'bar'
Exemple #23
0
def test_attributes_explicit_MessageId():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                       i18n:domain="lingua">
                   <dummy i18n:attributes="title msg_title" title="test tïtle"/>
                 </html>
                  '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == 'msg_title'
    assert messages[0].comment == u'Default: test tïtle'
Exemple #24
0
def test_multiple_expressions_with_translate_calls():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy title="${_(u'foo')} ${_(u'bar')}"></dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'foo'
    assert messages[1].msgid == u'bar'
Exemple #25
0
def test_attributes_explicit_MessageId():
    global source
    source = u'''<html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                       i18n:domain="lingua">
                   <dummy i18n:attributes="title msg_title" title="test tïtle"/>
                 </html>
                  '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == 'msg_title'
    assert messages[0].comment == u'Default: test tïtle'
Exemple #26
0
def test_translate_multiple_defines():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:analytics define="isAnon _('one'); account _('two')">
                  </tal:analytics>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'one'
    assert messages[1].msgid == u'two'
Exemple #27
0
def test_strip_trailing_and_leading_whitespace():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="">
                    Dummy text
                  </dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Dummy text'
Exemple #28
0
def test_translate_python_expressions():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                    <div tal:content="_(u'Foo')|_(u'Bar')"></div>
                    <div tal:replace="python:_(u'Fuz')|python:_(u'Baz')"></div>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 4
    assert {m.msgid for m in messages} == {u'Foo', u'Bar', u'Fuz', u'Baz'}
Exemple #29
0
def test_ignore_undeclared_namespace():
    global source
    source = b'''\
                <html xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:block/>
                  <p i18n:translate="">Test</p>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Test'
Exemple #30
0
def test_ignore_undeclared_namespace():
    global source
    source = b'''\
                <html xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:block/>
                  <p i18n:translate="">Test</p>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Test'
Exemple #31
0
def test_strip_trailing_and_leading_whitespace():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="">
                    Dummy text
                  </dummy>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'Dummy text'
Exemple #32
0
def test_translate_multiple_defines():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:analytics define="isAnon _('one'); account _('two')">
                  </tal:analytics>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert messages[0].msgid == u'one'
    assert messages[1].msgid == u'two'
Exemple #33
0
def test_translate_ignore_other_expression_engine():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:analytics define="layout load:layout.pt; account _('two')">
                  </tal:analytics>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'two'
Exemple #34
0
def test_translate_named_subelement():
    global source
    source = u'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="msgid_dummy">Dummy
                    <strong i18n:name="text">téxt</strong> demø</dummy>
                </html>
                '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'msgid_dummy'
    assert messages[0].comment == u'Default: Dummy ${text} demø'
Exemple #35
0
def test_translate_named_subelement():
    global source
    source = u'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <dummy i18n:translate="msgid_dummy">Dummy
                    <strong i18n:name="text">téxt</strong> demø</dummy>
                </html>
                '''.encode('utf-8')
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 1
    assert messages[0].msgid == u'msgid_dummy'
    assert messages[0].comment == u'Default: Dummy ${text} demø'
Exemple #36
0
def test_translate_explicit_python_expression_engine():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                  <tal:analytics define="layout python:_('one'); account _('two')">
                  </tal:analytics>
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 2
    assert messages[0].msgid == u'one'
    assert messages[1].msgid == u'two'
Exemple #37
0
def test_translate_prefixed_expressions():
    global source
    source = b'''\
                <html xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                      i18n:domain="lingua">
                    <div tal:content="string:Foobar"></div>
                    <div tal:content="structure:123"></div>
                    <div tal:content="python:2 + 2"></div>
                    ${string:Foobar}
                    ${structure:123}
                </html>
                '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 0
Exemple #38
0
def test_custom_i18n_namespace():
    global source
    source = b'''<html i18n:domain="other">
                   <dummy i18n:translate="">Foo</dummy>
                   <other xmlns:i="http://xml.zope.org/namespaces/i18n"
                          i:domain="lingua">
                     <dummy i:translate="">Foo</dummy>
                   </other>
                   <dummy i18n:translate="">Foo</dummy>
                   <dummy i18n:translate="">Foo</dummy>
                 </html>
                 '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 4
    assert [m.msgid for m in messages] == [u'Foo'] * 4
Exemple #39
0
def test_custom_i18n_namespace():
    global source
    source = b'''<html i18n:domain="other">
                   <dummy i18n:translate="">Foo</dummy>
                   <other xmlns:i="http://xml.zope.org/namespaces/i18n"
                          i:domain="lingua">
                     <dummy i:translate="">Foo</dummy>
                   </other>
                   <dummy i18n:translate="">Foo</dummy>
                   <dummy i18n:translate="">Foo</dummy>
                 </html>
                 '''
    messages = list(extract_xml('filename', _options()))
    assert len(messages) == 4
    assert [m.msgid for m in messages] == [u'Foo'] * 4
Exemple #40
0
 def extract(self, snippet):
     from lingua.extractors.xml import extract_xml
     from StringIO import StringIO
     snippet = StringIO(snippet)
     return list(extract_xml(snippet, None, None, None))
Exemple #41
0
 def extract(self, snippet):
     from lingua.extractors.xml import extract_xml
     from StringIO import StringIO
     snippet = StringIO(snippet)
     return list(extract_xml(snippet, None, None, None))
Exemple #42
0
def test_abort_on_syntax_error():
    global source
    source = b'''\xff\xff\xff'''
    with pytest.raises(SystemExit):
        list(extract_xml('filename', _options()))
Exemple #43
0
def test_empty_xml():
    global source
    source = b'''<html/>'''
    assert list(extract_xml('filename', _options())) == []
Exemple #44
0
def test_abort_on_syntax_error():
    global source
    source = b'''\xff\xff\xff'''
    with pytest.raises(SystemExit):
        list(extract_xml('filename', _options()))
Exemple #45
0
def test_empty_xml():
    global source
    source = b'''<html/>'''
    assert list(extract_xml('filename', _options())) == []