view babel/messages/tests/frontend.py @ 116:c6214115e4da

Added some minor distutils frontend tests, corrected and moved mapping.cfg to the appropriate place.
author palgarvio
date Thu, 14 Jun 2007 21:55:18 +0000
parents 27d55a07c897
children 0b4796ed9426
line wrap: on
line source
# -*- coding: utf-8 -*-
#
# Copyright (C) 2007 Edgewall Software
# All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://babel.edgewall.org/wiki/License.
#
# This software consists of voluntary contributions made by many
# individuals. For the exact contribution history, see the revision
# history and logs, available at http://babel.edgewall.org/log/.

import doctest
import unittest
import os
import subprocess

from babel.messages import frontend
from babel import __version__ as VERSION
import time

class TestDistutilsSetuptoolsFrontend(unittest.TestCase):
    
    def setUp(self):
        self.olddir = os.getcwd()
        self.datadir = os.path.join(os.path.dirname(__file__), 'data')
        os.chdir(self.datadir)
        # Do we need to run egg_info?
        if not os.path.exists(os.path.join(self.datadir,
                                           'TestProject.egg-info')):
            subprocess.call(['./setup.py', 'egg_info'])
    
    def test_extracted_pot_no_mapping(self):
        subprocess.call([os.path.join(self.datadir, 'setup.py'),
                         'extract_messages'])
        self.assertEqual(open(os.path.join(self.datadir, 'project', 'i18n',
                                           'project.pot'), 'r').read(), \
r"""# Translations template for TestProject.
# Copyright (C) %(year)s FooBar, TM
# This file is distributed under the same license as the TestProject
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: TestProject 0.1\n"
"Report-Msgid-Bugs-To: bugs.address@email.tld\n"
"POT-Creation-Date: %(date)s\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel %(version)s\n"

#. This will be a translator coment,
#. that will include several lines
#: project/file1.py:8
msgid "bar"
msgstr ""

#: project/file2.py:9
msgid "foobar"
msgid_plural "foobars"
msgstr[0] ""
msgstr[1] ""

#: project/CVS/this_wont_normally_be_here.py:11
msgid "FooBar"
msgid_plural "FooBars"
msgstr[0] ""
msgstr[1] ""

""" % {'version': VERSION,
       'year': time.strftime('%Y'),
       'date': time.strftime('%Y-%m-%d %H:%M%z')})
        
    def test_extracted_pot_with_mapping(self):
        subprocess.call([os.path.join(self.datadir, 'setup.py'),
                         'extract_messages', '-F',
                         os.path.join(self.datadir, 'mapping.cfg')])
        self.assertEqual(open(os.path.join(self.datadir, 'project', 'i18n',
                                           'project.pot'), 'r').read(),
r"""# Translations template for TestProject.
# Copyright (C) %(year)s FooBar, TM
# This file is distributed under the same license as the TestProject
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, %(year)s.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: TestProject 0.1\n"
"Report-Msgid-Bugs-To: bugs.address@email.tld\n"
"POT-Creation-Date: %(date)s\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel %(version)s\n"

#. This will be a translator coment,
#. that will include several lines
#: project/file1.py:8
msgid "bar"
msgstr ""

#: project/file2.py:9
msgid "foobar"
msgid_plural "foobars"
msgstr[0] ""
msgstr[1] ""

""" % {'version': VERSION,
       'year': time.strftime('%Y'),
       'date': time.strftime('%Y-%m-%d %H:%M%z')})                                           
        
    def tearDown(self):
        os.chdir(self.olddir)

def suite():
    suite = unittest.TestSuite()
    suite.addTest(doctest.DocTestSuite(frontend))
    suite.addTest(unittest.makeSuite(TestDistutilsSetuptoolsFrontend))
    return suite

if __name__ == '__main__':
    unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software