Setup translation for octavia

This patch sets up octavia for translations.
It also includes some additional pep8 tests borrowed from neutron
that will be used in the future (tempest idempotent ids and policy.json)

Change-Id: Ia70506fa8cfdbcea7cc67b940761365093e94f2b
This commit is contained in:
Michael Johnson 2016-12-15 00:46:17 +00:00
parent 547d03ae25
commit ad828709a7
4 changed files with 89 additions and 1 deletions

2
babel.cfg Normal file
View File

@ -0,0 +1,2 @@
[python: **.py]

View File

@ -75,3 +75,17 @@ oslo.config.opts =
octavia = octavia.opts:list_opts
tempest.test_plugins =
octavia = octavia.tests.tempest.plugin:OctaviaTempestPlugin
[compile_catalog]
directory = octavia/locale
domain = octavia
[update_catalog]
domain = octavia
output_dir = octavia/locale
input_file = octavia/locale/octavia.pot
[extract_messages]
keywords = _ gettext ngettext l_ lazy_gettext
mapping_file = babel.cfg
output_file = octavia/locale/octavia.pot

68
tools/misc-sanity-checks.sh Executable file
View File

@ -0,0 +1,68 @@
#! /bin/sh
# Copyright (C) 2014 VA Linux Systems Japan K.K.
# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
# All Rights Reserved.
#
# 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.
TMPDIR=`mktemp -d /tmp/${0##*/}.XXXXXX` || exit 1
export TMPDIR
trap "rm -rf $TMPDIR" EXIT
FAILURES=$TMPDIR/failures
check_pot_files_errors () {
find octavia -type f -regex '.*\.pot?' \
-print0|xargs -0 -n 1 --no-run-if-empty msgfmt \
--check-format -o /dev/null
if [ "$?" -ne 0 ]; then
echo "PO files syntax is not correct!" >>$FAILURES
fi
}
check_identical_policy_files () {
# For unit tests, we maintain their own policy.json file to make test suite
# independent of whether it's executed from the octavia source tree or from
# site-packages installation path. We don't want two copies of the same
# file to diverge, so checking that they are identical
diff etc/policy.json octavia/tests/etc/policy.json 2>&1 > /dev/null
if [ "$?" -ne 0 ]; then
echo "policy.json files must be identical!" >>$FAILURES
fi
}
check_no_duplicate_api_test_idempotent_ids() {
# For API tests, an idempotent ID is assigned to each single API test,
# those IDs should be unique
output=$(check-uuid --package octavia.tests.tempest)
if [ "$?" -ne 0 ]; then
echo "There are duplicate idempotent ids in the API tests" >>$FAILURES
echo "please, assign unique uuids to each API test:" >>$FAILURES
echo "$output" >>$FAILURES
fi
}
# Add your checks here...
check_pot_files_errors
# TODO(johnsom) Uncomment when we have policies to test
# check_identical_policy_files
# TODO(johnsom) Uncomment when we have idempotent ids
# check_no_duplicate_api_test_idempotent_ids
# Fail, if there are emitted failures
if [ -f $FAILURES ]; then
cat $FAILURES
exit 1
fi

View File

@ -59,9 +59,13 @@ commands = flake8
CONSTITUTION.rst HACKING.rst README.rst
# Run security linter
bandit -r octavia -ll -ii -x octavia/tests
# Make sure specs follow our template
# Make sure specs follow our template
find . -type f -name "*.pyc" -delete
python -m unittest specs-tests.test_titles
sh ./tools/misc-sanity-checks.sh
whitelist_externals =
sh
find
[testenv:docs]
commands =