Merge "Babel Integration tests"
This commit is contained in:
commit
c7f8c7c69d
31
babel-test/babel-input.py
Normal file
31
babel-test/babel-input.py
Normal file
@ -0,0 +1,31 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
"""Test input for Babel"""
|
||||
|
||||
|
||||
from oslo.i18n import _
|
||||
from oslo.i18n import _LE
|
||||
from oslo_log import log as logging
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def just_testing():
|
||||
"""Just some random commands for Babel to extract strings from"""
|
||||
|
||||
LOG.exception(_LE("LE translated string1"))
|
||||
LOG.exception(_LE("LE translated string2"))
|
||||
print(_("Normal translated string1"))
|
||||
# Translators: Comment for string2
|
||||
print(_("Normal translated string2"))
|
28
babel-test/expected-log-error.pot
Normal file
28
babel-test/expected-log-error.pot
Normal file
@ -0,0 +1,28 @@
|
||||
# Translations template for requirements.
|
||||
# Copyright (C) 2016 ORGANIZATION
|
||||
# This file is distributed under the same license as the requirements
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: requirements 1\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
|
||||
"POT-Creation-Date: 2016-04-24 09:28+0200\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 1.3\n"
|
||||
|
||||
#: babel-test/babel-input.py:24
|
||||
msgid "LE translated string1"
|
||||
msgstr ""
|
||||
|
||||
#: babel-test/babel-input.py:25
|
||||
msgid "LE translated string2"
|
||||
msgstr ""
|
||||
|
29
babel-test/expected.pot
Normal file
29
babel-test/expected.pot
Normal file
@ -0,0 +1,29 @@
|
||||
# Translations template for requirements.
|
||||
# Copyright (C) 2016 ORGANIZATION
|
||||
# This file is distributed under the same license as the requirements
|
||||
# project.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: requirements 1\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
|
||||
"POT-Creation-Date: 2016-04-24 09:28+0200\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 1.3\n"
|
||||
|
||||
#: babel-test/babel-input.py:26
|
||||
msgid "Normal translated string1"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Comment for string2
|
||||
#: babel-test/babel-input.py:28
|
||||
msgid "Normal translated string2"
|
||||
msgstr ""
|
||||
|
42
tools/babel-test.sh
Executable file
42
tools/babel-test.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash -xe
|
||||
|
||||
pybabel extract \
|
||||
--add-comments Translators: \
|
||||
--msgid-bugs-address="https://bugs.launchpad.net/openstack-i18n/" \
|
||||
--project=requirements --version=1 \
|
||||
-k "_C:1c,2" -k "_P:1,2" \
|
||||
-o babel-test/test.pot babel-test
|
||||
|
||||
pybabel extract --no-default-keywords \
|
||||
--add-comments Translators: \
|
||||
--msgid-bugs-address="https://bugs.launchpad.net/openstack-i18n/" \
|
||||
--project=requirements --version=1 \
|
||||
-k "_LE" \
|
||||
-o babel-test/test-log-error.pot babel-test
|
||||
|
||||
# Entries to ignore
|
||||
REGEX="(POT-Creation-Date|Generated-By|Copyright (C) |FIRST AUTHOR <EMAIL@ADDRESS>)"
|
||||
|
||||
function diff_files {
|
||||
local expected=$1
|
||||
local testfile=$2
|
||||
local extra
|
||||
|
||||
# grep fails if there's no content - which is fine here.
|
||||
set +e
|
||||
extra=$(diff -u0 $expected $testfile | \
|
||||
egrep -v "$REGEX" |egrep -c "^([-+][^-+#])")
|
||||
set -e
|
||||
|
||||
if [ $extra -ne 0 ] ; then
|
||||
echo "Generation of test.pot failed."
|
||||
echo "Extra content is:"
|
||||
diff -u0 $expected $testfile | egrep -v "$REGEX"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
diff_files babel-test/expected.pot babel-test/test.pot
|
||||
diff_files babel-test/expected-log-error.pot babel-test/test-log-error.pot
|
||||
|
||||
echo "Everything fine"
|
6
tox.ini
6
tox.ini
@ -29,6 +29,12 @@ commands = flake8
|
||||
[testenv:docs]
|
||||
commands = python setup.py build_sphinx
|
||||
|
||||
[testenv:babel]
|
||||
# Use the local upper-constraints.txt file
|
||||
deps = Babel
|
||||
install_command = pip install -c upper-constraints.txt {opts} {packages}
|
||||
commands = tools/babel-test.sh
|
||||
|
||||
[flake8]
|
||||
ignore = H803
|
||||
exclude = .venv,.git,.tox,dist,doc,*egg,build
|
||||
|
Loading…
Reference in New Issue
Block a user