Package translate :: Package convert :: Module test_ts2po

[hide private]
[frames] | no frames]

# Source Code for Module translate.convert.test_ts2po

      1  #!/usr/bin/env python
      2  # -*- coding: utf-8 -*-
      3
      4  from translate.convert import ts2po
      5  from translate.convert import test_convert
      6  from translate.misc import wStringIO
      7
      8 -class TestTS2PO:
      9 -    def ts2po(self, tssource):
     10          converter = ts2po.ts2po()
     11          tsfile = wStringIO.StringIO(tssource)
     12          outputpo = converter.convertfile(tsfile)
     13          print "The generated po:"
     14          print str(outputpo)
     15          return outputpo
     16
     17 -    def test_blank(self):
     18          """tests blank conversion"""
     19          tssource = '''<!DOCTYPE TS><TS>
     20  <context>
     21      <name>MainWindowBase</name>
     22      <message>
     23          <source>Project:</source>
     24          <translation type="unfinished"></translation>
     25      </message>
     26  </context>
     27  </TS>
     28  '''
     29          pofile = self.ts2po(tssource)
     30          assert len(pofile.units) == 2
     31          assert pofile.units[1].source == "Project:"
     32          assert pofile.units[1].target == ""
     33          assert pofile.units[1].getlocations()[0].startswith("MainWindowBase")
     34          assert not pofile.units[1].isfuzzy()
     35
     36 -    def test_basic(self):
     37          """tests basic conversion"""
     38          tssource = '''<!DOCTYPE TS><TS>
     39  <context>
     40      <name>AboutDialog</name>
     41      <message>
     42          <source>&amp;About</source>
     43          <translation>&amp;Giới thiệu</translation>
     44      </message>
     45  </context>
     46  </TS>
     47  '''
     48          pofile = self.ts2po(tssource)
     49          assert len(pofile.units) == 2
     50          assert pofile.units[1].source == "&About"
     51          assert pofile.units[1].target == u"&Giới thiệu"
     52          assert pofile.units[1].getlocations()[0].startswith("AboutDialog")
     53
     54 -    def test_unfinished(self):
     55          """tests unfinished conversion"""
     56          tssource = '''<!DOCTYPE TS><TS>
     57  <context>
     58      <name>MainWindowBase</name>
     59      <message>
     60          <source>Project:</source>
     61          <translation type="unfinished">Projek vergardering</translation>
     62      </message>
     63  </context>
     64  </TS>
     65  '''
     66          pofile = self.ts2po(tssource)
     67          assert len(pofile.units) == 2
     68          assert pofile.units[1].source == "Project:"
     69          assert pofile.units[1].target == "Projek vergardering"
     70          assert pofile.units[1].getlocations()[0].startswith("MainWindowBase")
     71          assert pofile.units[1].isfuzzy()
     72
     73 -    def test_multiline(self):
     74          """tests multiline message conversion"""
     75          tssource = '''<!DOCTYPE TS><TS>
     76  <context>
     77      <name>@default</name>
     78      <message>
     79          <source>Source with
     80  new line</source>
     81          <translation>Test with
     82  new line</translation>
     83      </message>
     84  </context>
     85  </TS>
     86  '''
     87          pofile = self.ts2po(tssource)
     88          assert len(pofile.units) == 2
     89          assert pofile.units[1].source == "Source with\nnew line"
     90          assert pofile.units[1].target == "Test with\nnew line"
     91          assert pofile.units[1].getlocations()[0].startswith("@default")
     92
     93 -    def test_obsolete(self):
     94          """test the handling of obsolete TS entries"""
     95          tssource = '''<!DOCTYPE TS><TS>
     96  <context>
     97      <name>Obsoleted</name>
     98      <message>
     99          <source>Failed</source>
    100          <translation type="obsolete">Mislukt</translation>
    101      </message>
    102  </context>
    103  </TS>
    104  '''
    105          pofile = self.ts2po(tssource)
    106          assert pofile.units[1].getnotes("developer") == "(obsolete)"
    107          # Test that we aren't following the old style
    108          assert "_ OBSOLETE" not in pofile.units[1].getnotes()
    109
    110 -class TestTS2POCommand(test_convert.TestConvertCommand, TestTS2PO):
    111      """Tests running actual ts2po commands on files"""
    112      convertmodule = ts2po
    113
    114 -    def test_help(self):
    115          """tests getting help"""
    116          options = test_convert.TestConvertCommand.test_help(self)
    117          options = self.help_check(options, "--duplicates=DUPLICATESTYLE")
    118          options = self.help_check(options, "-P, --pot", last=True)
    119