From ad828709a70a51c3807855ed7b7745e52f1bbb55 Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Thu, 15 Dec 2016 00:46:17 +0000 Subject: [PATCH] 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 --- babel.cfg | 2 ++ setup.cfg | 14 ++++++++ tools/misc-sanity-checks.sh | 68 +++++++++++++++++++++++++++++++++++++ tox.ini | 6 +++- 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 babel.cfg create mode 100755 tools/misc-sanity-checks.sh diff --git a/babel.cfg b/babel.cfg new file mode 100644 index 0000000000..15cd6cb76b --- /dev/null +++ b/babel.cfg @@ -0,0 +1,2 @@ +[python: **.py] + diff --git a/setup.cfg b/setup.cfg index 6c00cffd65..cbaaae91c6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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 diff --git a/tools/misc-sanity-checks.sh b/tools/misc-sanity-checks.sh new file mode 100755 index 0000000000..0b7dcac5a3 --- /dev/null +++ b/tools/misc-sanity-checks.sh @@ -0,0 +1,68 @@ +#! /bin/sh + +# Copyright (C) 2014 VA Linux Systems Japan K.K. +# Copyright (C) 2014 YAMAMOTO Takashi +# 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 diff --git a/tox.ini b/tox.ini index 281adaa025..389b8688cc 100644 --- a/tox.ini +++ b/tox.ini @@ -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 =