diff --git a/.coveragerc b/.coveragerc index e0e9fdf..cde89a0 100644 --- a/.coveragerc +++ b/.coveragerc @@ -6,3 +6,5 @@ source = [run] omit = tap/tests/* + # This is tested with tox -e module in CI. + tap/__main__.py diff --git a/.gitignore b/.gitignore index 3068fe7..24c1e6f 100644 --- a/.gitignore +++ b/.gitignore @@ -31,10 +31,6 @@ htmlcov .cache .pytest_cache -# Translations -.transifex.ini -*.mo - # Mr Developer .mr.developer.cfg .project diff --git a/docs/releases.rst b/docs/releases.rst index 29acc9b..fba4b6c 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -7,6 +7,7 @@ Version 3.1, To Be Released * Add support for Python 3.8. * Drop support for Python 3.5 (it is end-of-life). * Fix parsing of multi-line strings in YAML blocks (#111) +* Remove unmaintained i18n support. Version 3.0, Released January 10, 2020 -------------------------------------- diff --git a/requirements-dev.txt b/requirements-dev.txt index 7d020b6..97ddc21 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,3 @@ -Babel black coverage flake8 diff --git a/setup.py b/setup.py index 172e31e..a6e1357 100644 --- a/setup.py +++ b/setup.py @@ -9,35 +9,10 @@ `Read the Docs `_. """ -from setuptools import find_packages, setup, Command +from setuptools import find_packages, setup import tap - -class ReleaseCommand(Command): - description = "generate distribution release artifacts" - user_options = [] - - def initialize_options(self): - """Initialize options. - This method overrides a required abstract method. - """ - - def finalize_options(self): - """Finalize options. - This method overrides a required abstract method. - """ - - def run(self): - """Generate the distribution release artifacts. - The custom command is used to ensure that compiling - po to mo is not skipped. - """ - self.run_command("compile_catalog") - self.run_command("sdist") - self.run_command("bdist_wheel") - - # The docs import setup.py for the version so only call setup when not behaving # as a module. if __name__ == "__main__": @@ -78,5 +53,4 @@ def run(self): "Topic :: Software Development :: Testing", ], keywords=["TAP", "unittest"], - cmdclass={"release": ReleaseCommand}, ) diff --git a/tap/i18n.py b/tap/i18n.py deleted file mode 100644 index ad106ca..0000000 --- a/tap/i18n.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2019, Matt Layman and contributors - -import gettext -import os - -localedir = os.path.join(os.path.abspath(os.path.dirname(__file__)), "locale") -translate = gettext.translation("tappy", localedir, fallback=True) -_ = translate.gettext diff --git a/tap/locale/ar/LC_MESSAGES/tappy.po b/tap/locale/ar/LC_MESSAGES/tappy.po deleted file mode 100644 index 9a97f19..0000000 --- a/tap/locale/ar/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Arabic (http://www.transifex.com/python-tap/tappy/language/ar/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr " المستهلك TAP ل Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "عندما يتم إعطاء أية ملفات أو شرطة (-) يستخدم لاسم الملف، tappy سيقرأ تيار TAP من STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "ملف يحتوي على TAP الانتاج. سيتم فحص أي الدلائل المذكورة للملفات التي تتضمن كملفات TAP." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "استخدام الرسائل مطول" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "ومن خطأ لتحديد صراحة أقل أي إصدار من 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "ظهرت خطوط النسخة متعددة." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "يجب أن يكون الإصدار في السطر الأول." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "في عداد المفقودين الخطة." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "يسمح خط خطة واحدة فقط لكل ملف." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "يجب أن تظهر خطة في بداية أو نهاية الملف." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "يتوقع {expected_count} الاختبارات ولكن فقط {seen_count} ركض." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "إنقاذها: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} غير موجود." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(فشل متوقع)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(نجاح غير متوقع)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "سيئة سلسلة تنسيق: {format}\nخيارات استبدال هي: {{short_description}} و {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# النتائج TAP ل {test_case}" diff --git a/tap/locale/de/LC_MESSAGES/tappy.po b/tap/locale/de/LC_MESSAGES/tappy.po deleted file mode 100644 index 2ee6730..0000000 --- a/tap/locale/de/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: German (http://www.transifex.com/python-tap/tappy/language/de/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Ein TAP Verbraucher für Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Wenn keine Dateien angegeben oder ein Bindestrich (-) wird für den Dateinamen verwendet wird, wird tappy eine TAP Strom von STDIN gelesen." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Eine Datei mit TAP-Ausgang. Alle aufgeführten Verzeichnisse werden gescannt für Dateien als TAP-Dateien enthalten." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "benutzen ausführliche Meldungen" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "Es ist ein Fehler explizit jede Version niedriger als 13 angeben." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Mehrere Version Linien erschienen." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "Die Version muss auf der ersten Zeile stehen." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Vermissen Sie einen Plan." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Nur ein Planeinzel wird pro Datei zulässig." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Ein Plan muss am Anfang oder Ende der Datei angezeigt." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Erwartete {expected_count} Tests jedoch nur {seen_count} ran." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Gerettet: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} ist nicht vorhanden." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(erwartete Ausfall)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(unerwarteten Erfolg)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Bad Format-String: {format}\nAustausch-Optionen sind: {{short_description}} und {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# TAP Ergebnisse für {test_case}" diff --git a/tap/locale/es/LC_MESSAGES/tappy.po b/tap/locale/es/LC_MESSAGES/tappy.po deleted file mode 100644 index a87ff1b..0000000 --- a/tap/locale/es/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Spanish (http://www.transifex.com/python-tap/tappy/language/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Un consumidor TAP para Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Cuando se les da ningún archivo o un guión (-) se utiliza para el nombre de archivo, tappy leerá una corriente TAP de STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Una salida de TAP archivo que contiene. Cualquier directorios listados serán analizados en busca de archivos que incluyen como archivos TAP." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "utilizar mensajes detallados" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "Es un error especificar explícitamente cualquier versión inferior a 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Múltiples líneas de versión aparecieron." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "La versión debe estar en la primera línea." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Falta un plan." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Sólo una línea de plan está permitido por archivo." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Un plan debe aparecer al principio o al final del archivo." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Esperados {expected_count} pruebas, pero sólo {seen_count} corrían." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Rescatados: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} no existe." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(fallo esperado)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(éxito inesperado)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Cadena de formato Malo: {format}\nLas opciones de reemplazo son: {{short_description}} y {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# Resultados TAP para {test_case}" diff --git a/tap/locale/fr/LC_MESSAGES/tappy.po b/tap/locale/fr/LC_MESSAGES/tappy.po deleted file mode 100644 index 83c7150..0000000 --- a/tap/locale/fr/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: French (http://www.transifex.com/python-tap/tappy/language/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Un consommateur de TAP pour Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Si aucun fichier ne sont donnés ou un tiret (-) est utilisé pour le nom du fichier, tappy va lire un flux de TAP à partir de STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Une sortie TAP de fichier contenant. Tous les répertoires listés seront analysés pour les fichiers à inclure en tant que fichiers TAP." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "utiliser des messages verbeux" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "Il ya une erreur de spécifier explicitement une version inférieure à 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Plusieurs lignes de version sont apparus." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "La version doit être sur la première ligne." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Manquer un plan." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Seule une ligne de plan est autorisé par fichier." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Un plan doit apparaître au début ou à la fin du fichier." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "{expected_count} Attendus essais mais seulement {seen_count} ran." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Renflouées: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} ne pas exister." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(échec attendu)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(succès inattendu)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Bad chaîne de format: {format}\nLes options de remplacement sont: {{short_description}} et {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# Résultats TAP pour {test_case}" diff --git a/tap/locale/it/LC_MESSAGES/tappy.po b/tap/locale/it/LC_MESSAGES/tappy.po deleted file mode 100644 index afc13ba..0000000 --- a/tap/locale/it/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Italian (http://www.transifex.com/python-tap/tappy/language/it/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: it\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Un consumatore TAP per Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Quando nessun file sono dati o un trattino (-) viene utilizzato per il nome del file, tappy leggerà un flusso TAP da STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Un file contenente uscita TAP. Ogni directory elencate verranno esaminati per i file da includere come file TAP." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "utilizzare messaggi dettagliati" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "E 'un errore specificare esplicitamente qualsiasi versione inferiore a 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Diverse linee di versione è apparso." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "La versione deve essere sulla prima riga." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Manca un piano." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Solo una riga piano è consentito per file." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Un piano deve apparire all'inizio o alla fine del file." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Attesi test {expected_count} ma solo {seen_count} ran." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Bailed: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} non esiste." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(fallimento atteso)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(successo inaspettato)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Stringa di formato Bad: {format}\nLe opzioni di sostituzione sono: {{short_description}} e {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# Risultati TAP per {test_case}" diff --git a/tap/locale/ja/LC_MESSAGES/tappy.po b/tap/locale/ja/LC_MESSAGES/tappy.po deleted file mode 100644 index c0668f9..0000000 --- a/tap/locale/ja/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Japanese (http://www.transifex.com/python-tap/tappy/language/ja/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: ja\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Python用のTAP消費者" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "ファイルを指定しないか、ダッシュをすると( - )のファイル名に使用され、tappyはSTDINからのTAPストリームを読み込みます。" - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "含むファイルのTAP出力。ファイルは、TAPファイルとして含まれるようにするために記載されている任意のディレクトリがスキャンされます。" - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "詳細メッセージを使用します" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "これは、明示的に13以外の任意のバージョンが低い指定するとエラーになります。" - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "複数のバージョンのラインが登場しました。" - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "バージョンは、最初の行になければなりません。" - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "計画がありません。" - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "唯一の計画線は、ファイルごとに許可されています。" - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "計画では、ファイルの先頭や末尾に表示される必要があります。" - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "期待 {expected_count} テストだけ {seen_count} 走りました。" - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "保釈:{reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} は存在しません。" - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(予想失敗)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(予期せぬ成功)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "バートフォーマット文字列: {format}\n交換オプションには、次のとおりです。{{short_description}} と {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "以下のための#1のTAP結果 {test_case}" diff --git a/tap/locale/nl/LC_MESSAGES/tappy.po b/tap/locale/nl/LC_MESSAGES/tappy.po deleted file mode 100644 index dc81740..0000000 --- a/tap/locale/nl/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Dutch (http://www.transifex.com/python-tap/tappy/language/nl/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: nl\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Een TAP consument voor Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Als er geen bestanden worden gegeven of een streepje (-) wordt gebruikt voor de bestandsnaam, zal tappy een TAP stream van STDIN lezen." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Een bestand met TAP output. Elke beursgenoteerde directories zal worden gescand op bestanden op te nemen als TAP bestanden." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "Gebruik uitgebreide berichten" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "Het is een fout om expliciet een versie lager dan 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Meerdere versie lijnen verscheen." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "De versie moet op de eerste lijn." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Het missen van een plan." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Slechts één plan lijn is toegestaan per bestand." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Een plan moet aan het begin of einde van het bestand." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Verwachte {expected_count} testen, maar slechts {seen_count} liep." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Gered: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} bestaat niet." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(verwachte falen)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(onverwacht succes)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Bad format string: {format}\nVervanging opties zijn: {{short_description}} en {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# TAP resultaten voor {test_case}" diff --git a/tap/locale/pt/LC_MESSAGES/tappy.po b/tap/locale/pt/LC_MESSAGES/tappy.po deleted file mode 100644 index d1bea91..0000000 --- a/tap/locale/pt/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Portuguese (http://www.transifex.com/python-tap/tappy/language/pt/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: pt\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "Um consumidor TAP para Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Quando não há arquivos são dados ou um traço (-) é usado para o nome do arquivo, tappy vai ler um fluxo TAP a partir do STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "A saída TAP arquivo que contém. Quaisquer diretórios listados serão verificados para arquivos a serem incluídos como arquivos TAP." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "usar mensagens detalhadas" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "É um erro especificar explicitamente qualquer versão menor do que 13." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Várias linhas de versão apareceu." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "A versão deve estar na primeira linha." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Faltando um plano." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Só é permitido uma linha por arquivo plano." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "Um plano deve aparecer no início ou no final do arquivo." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Esperados {expected_count} testes, mas apenas {seen_count} correu." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Afiançado: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} não existe." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(falha esperado)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(sucesso inesperado)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Bad seqüência de formato: {format}\nAs opções de substituição são: {{short_description}} e {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# Resultados da TAP para {test_case}" diff --git a/tap/locale/ru/LC_MESSAGES/tappy.po b/tap/locale/ru/LC_MESSAGES/tappy.po deleted file mode 100644 index c6e735d..0000000 --- a/tap/locale/ru/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Russian (http://www.transifex.com/python-tap/tappy/language/ru/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "TAP потребителя для Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "Если файлы не указаны или тире (-) используется в качестве имени файла, tappy будет читать TAP поток со STDIN." - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "Файл, содержащий выход ТАР. Все каталоги, перечисленные будут проверяться на файлы, чтобы включить в TAP-файлов." - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "использовать подробные сообщения" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "Это ошибка явно указать любой версии ниже, чем 13 лет." - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "Несколько строк версия появилась." - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "Версия должна быть на первой линии." - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "Отсутствует план." - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "Только один план линии допускается за файл." - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "План должен появиться в начале или в конце файла." - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "Ожидаемые {expected_count} испытания, но только {seen_count} РАН." - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "Выручил: {reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename} не существует." - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(ожидается недостаточность)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(неожиданный успех)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "Плохой строка формата: {format}\nПараметры замены: {{short_description}} и {{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "# Результаты TAP для {test_case}" diff --git a/tap/locale/tappy.pot b/tap/locale/tappy.pot deleted file mode 100644 index 42b998e..0000000 --- a/tap/locale/tappy.pot +++ /dev/null @@ -1,93 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# FIRST AUTHOR , 2016. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: tap.py 1.9\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy " -"will read a TAP stream from STDIN." -msgstr "" - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "" - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "" - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "" - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "" - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "" - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "" - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "" - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "" - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "" - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "" - diff --git a/tap/locale/zh/LC_MESSAGES/tappy.po b/tap/locale/zh/LC_MESSAGES/tappy.po deleted file mode 100644 index 998a3e3..0000000 --- a/tap/locale/zh/LC_MESSAGES/tappy.po +++ /dev/null @@ -1,94 +0,0 @@ -# Translations template for tap.py. -# Copyright (C) 2016 Matt Layman -# This file is distributed under the same license as the tap.py project. -# -# Translators: -# Matt Layman , 2015 -msgid "" -msgstr "" -"Project-Id-Version: tappy\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-06-19 10:03-0400\n" -"PO-Revision-Date: 2016-06-20 09:32+0000\n" -"Last-Translator: Matt Layman \n" -"Language-Team: Chinese (http://www.transifex.com/python-tap/tappy/language/zh/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: zh\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -#: tap/main.py:32 -msgid "A TAP consumer for Python" -msgstr "TAP消费者对于Python" - -#: tap/main.py:33 -msgid "" -"When no files are given or a dash (-) is used for the file name, tappy will " -"read a TAP stream from STDIN." -msgstr "如果没有给定文件或破折号( - )用于文件名,tappy将读取STDIN一个TAP流。" - -#: tap/main.py:38 -msgid "" -"A file containing TAP output. Any directories listed will be scanned for " -"files to include as TAP files." -msgstr "包含文件TAP。列出的所有目录将被扫描的文件,包括为TAP文件。" - -#: tap/main.py:43 -msgid "use verbose messages" -msgstr "使用详细信息" - -#: tap/parser.py:106 -msgid "It is an error to explicitly specify any version lower than 13." -msgstr "它是明确指定比13低的任何版本错误。" - -#: tap/rules.py:25 tap/tests/test_loader.py:82 -msgid "Multiple version lines appeared." -msgstr "多个版本的线条出现。" - -#: tap/rules.py:27 tap/tests/test_loader.py:100 -msgid "The version must be on the first line." -msgstr "版本必须在第一行。" - -#: tap/rules.py:32 tap/tests/test_rules.py:53 -msgid "Missing a plan." -msgstr "缺少计划。" - -#: tap/rules.py:36 tap/tests/test_rules.py:64 -msgid "Only one plan line is permitted per file." -msgstr "只有一个计划行每个文件允许的。" - -#: tap/rules.py:42 tap/tests/test_rules.py:44 -msgid "A plan must appear at the beginning or end of the file." -msgstr "一个计划必须出现在文件的开头或结尾。" - -#: tap/rules.py:46 tap/tests/test_rules.py:85 -msgid "Expected {expected_count} tests but only {seen_count} ran." -msgstr "预计{expected_count}测试,但只有{seen_count}跑。" - -#: tap/rules.py:70 tap/tests/test_rules.py:97 -msgid "Bailed: {reason}" -msgstr "跳伞:{reason}" - -#: tap/rules.py:74 tap/tests/test_loader.py:50 -msgid "{filename} does not exist." -msgstr "{filename}不存在。" - -#: tap/runner.py:63 -msgid "(expected failure)" -msgstr "(预期失败)" - -#: tap/runner.py:68 -msgid "(unexpected success)" -msgstr "(意想不到的成功)" - -#: tap/runner.py:80 -msgid "" -"Bad format string: {format}\n" -"Replacement options are: {{short_description}} and {{method_name}}" -msgstr "错误格式字符串:{format}\n替换选项为:{{short_description}}和{{method_name}}" - -#: tap/tests/test_tracker.py:19 tap/tracker.py:142 -msgid "# TAP results for {test_case}" -msgstr "#TAP结果{test_case}" diff --git a/tap/main.py b/tap/main.py index af7650b..e6761a9 100644 --- a/tap/main.py +++ b/tap/main.py @@ -4,7 +4,6 @@ import sys import unittest -from tap.i18n import _ from tap.loader import Loader from tap.runner import TAPTestRunner @@ -30,8 +29,8 @@ def build_suite(args): def parse_args(argv): - description = _("A TAP consumer for Python") - epilog = _( + description = "A TAP consumer for Python" + epilog = ( "When no files are given or a dash (-) is used for the file name, " "tappy will read a TAP stream from STDIN." ) @@ -40,7 +39,7 @@ def parse_args(argv): "files", metavar="FILE", nargs="*", - help=_( + help=( "A file containing TAP output. Any directories listed will be " "scanned for files to include as TAP files." ), @@ -51,7 +50,7 @@ def parse_args(argv): action="store_const", default=1, const=2, - help=_("use verbose messages"), + help="use verbose messages", ) # argparse expects the executable to be removed from argv. diff --git a/tap/parser.py b/tap/parser.py index 2f28bd8..6241464 100644 --- a/tap/parser.py +++ b/tap/parser.py @@ -6,7 +6,6 @@ import sys from tap.directive import Directive -from tap.i18n import _ from tap.line import Bail, Diagnostic, Plan, Result, Unknown, Version try: @@ -195,6 +194,6 @@ def _parse_version(self, match): version = int(match.group("version")) if version < self.TAP_MINIMUM_DECLARED_VERSION: raise ValueError( - _("It is an error to explicitly specify any version lower than 13.") + "It is an error to explicitly specify any version lower than 13." ) return Version(version) diff --git a/tap/rules.py b/tap/rules.py index bd4df23..5c1ee4f 100644 --- a/tap/rules.py +++ b/tap/rules.py @@ -2,7 +2,6 @@ from tap.adapter import Adapter from tap.directive import Directive -from tap.i18n import _ from tap.line import Result @@ -21,30 +20,28 @@ def check(self, final_line_count): def _process_version_lines(self): """Process version line rules.""" if len(self._lines_seen["version"]) > 1: - self._add_error(_("Multiple version lines appeared.")) + self._add_error("Multiple version lines appeared.") elif self._lines_seen["version"][0] != 1: - self._add_error(_("The version must be on the first line.")) + self._add_error("The version must be on the first line.") def _process_plan_lines(self, final_line_count): """Process plan line rules.""" if not self._lines_seen["plan"]: - self._add_error(_("Missing a plan.")) + self._add_error("Missing a plan.") return if len(self._lines_seen["plan"]) > 1: - self._add_error(_("Only one plan line is permitted per file.")) + self._add_error("Only one plan line is permitted per file.") return plan, at_line = self._lines_seen["plan"][0] if not self._plan_on_valid_line(at_line, final_line_count): - self._add_error( - _("A plan must appear at the beginning or end of the file.") - ) + self._add_error("A plan must appear at the beginning or end of the file.") return if plan.expected_tests != self._lines_seen["test"]: self._add_error( - _("Expected {expected_count} tests but only {seen_count} ran.").format( + "Expected {expected_count} tests but only {seen_count} ran.".format( expected_count=plan.expected_tests, seen_count=self._lines_seen["test"], ) @@ -69,11 +66,11 @@ def _plan_on_valid_line(self, at_line, final_line_count): def handle_bail(self, bail): """Handle a bail line.""" - self._add_error(_("Bailed: {reason}").format(reason=bail.reason)) + self._add_error("Bailed: {reason}".format(reason=bail.reason)) def handle_file_does_not_exist(self): """Handle a test file that does not exist.""" - self._add_error(_("{filename} does not exist.").format(filename=self._filename)) + self._add_error("{filename} does not exist.".format(filename=self._filename)) def handle_skipping_plan(self, skip_plan): """Handle a plan that contains a SKIP directive.""" diff --git a/tap/runner.py b/tap/runner.py index 10e8510..8fe7a00 100644 --- a/tap/runner.py +++ b/tap/runner.py @@ -6,7 +6,6 @@ import sys from tap import formatter -from tap.i18n import _ from tap.tracker import Tracker @@ -62,7 +61,7 @@ def addExpectedFailure(self, test, err): self.tracker.add_not_ok( self._cls_name(test), self._description(test), - "TODO {}".format(_("(expected failure)")), + "TODO {}".format("(expected failure)"), diagnostics=diagnostics, ) @@ -71,7 +70,7 @@ def addUnexpectedSuccess(self, test): self.tracker.add_ok( self._cls_name(test), self._description(test), - "TODO {}".format(_("(unexpected success)")), + "TODO {}".format("(unexpected success)"), ) def _cls_name(self, test): @@ -86,11 +85,9 @@ def _description(self, test): ) except KeyError: sys.exit( - _( - "Bad format string: {format}\n" - "Replacement options are: {{short_description}} and " - "{{method_name}}" - ).format(format=self.FORMAT) + "Bad format string: {format}\n" + "Replacement options are: {{short_description}} and " + "{{method_name}}".format(format=self.FORMAT) ) return test.shortDescription() or str(test) diff --git a/tap/tests/test_loader.py b/tap/tests/test_loader.py index 13e536c..d02f5a5 100644 --- a/tap/tests/test_loader.py +++ b/tap/tests/test_loader.py @@ -7,7 +7,6 @@ import unittest from unittest import mock -from tap.i18n import _ from tap.loader import Loader from tap.tests import TestCase @@ -45,7 +44,7 @@ def test_file_does_not_exist(self): self.assertEqual(1, len(suite._tests)) self.assertEqual( - _("{filename} does not exist.").format(filename="phony.tap"), + "{filename} does not exist.".format(filename="phony.tap"), suite._tests[0]._line.description, ) @@ -79,7 +78,7 @@ def test_errors_with_multiple_version_lines(self): self.assertEqual(1, len(suite._tests)) self.assertEqual( - _("Multiple version lines appeared."), suite._tests[0]._line.description + "Multiple version lines appeared.", suite._tests[0]._line.description ) def test_errors_with_version_not_on_first_line(self): @@ -98,7 +97,7 @@ def test_errors_with_version_not_on_first_line(self): self.assertEqual(1, len(suite._tests)) self.assertEqual( - _("The version must be on the first line."), + "The version must be on the first line.", suite._tests[0]._line.description, ) diff --git a/tap/tests/test_result.py b/tap/tests/test_result.py index b5c1c9a..6974556 100644 --- a/tap/tests/test_result.py +++ b/tap/tests/test_result.py @@ -5,7 +5,6 @@ import unittest import unittest.case -from tap.i18n import _ from tap.runner import TAPTestResult from tap.tests import TestCase from tap.tracker import Tracker @@ -70,16 +69,14 @@ def test_adds_expected_failure(self): result.addExpectedFailure(FakeTestCase(), exc) line = result.tracker._test_cases["FakeTestCase"][0] self.assertFalse(line.ok) - self.assertEqual(line.directive.text, "TODO {}".format(_("(expected failure)"))) + self.assertEqual(line.directive.text, "TODO {}".format("(expected failure)")) def test_adds_unexpected_success(self): result = self._make_one() result.addUnexpectedSuccess(FakeTestCase()) line = result.tracker._test_cases["FakeTestCase"][0] self.assertTrue(line.ok) - self.assertEqual( - line.directive.text, "TODO {}".format(_("(unexpected success)")) - ) + self.assertEqual(line.directive.text, "TODO {}".format("(unexpected success)")) def test_adds_subtest_success(self): """Test that the runner handles subtest success results.""" diff --git a/tap/tests/test_rules.py b/tap/tests/test_rules.py index 9234689..0405890 100644 --- a/tap/tests/test_rules.py +++ b/tap/tests/test_rules.py @@ -2,7 +2,6 @@ import unittest -from tap.i18n import _ from tap.rules import Rules from tap.tests import TestCase @@ -40,7 +39,7 @@ def test_errors_plan_not_at_end(self): rules.check(42) self.assertEqual( - _("A plan must appear at the beginning or end of the file."), + "A plan must appear at the beginning or end of the file.", self.suite._tests[0]._line.description, ) @@ -49,7 +48,7 @@ def test_requires_plan(self): rules.check(42) - self.assertEqual(_("Missing a plan."), self.suite._tests[0]._line.description) + self.assertEqual("Missing a plan.", self.suite._tests[0]._line.description) def test_only_one_plan(self): plan = self.factory.make_plan() @@ -60,7 +59,7 @@ def test_only_one_plan(self): rules.check(42) self.assertEqual( - _("Only one plan line is permitted per file."), + "Only one plan line is permitted per file.", self.suite._tests[0]._line.description, ) @@ -82,7 +81,7 @@ def test_errors_when_expected_tests_differs_from_actual(self): rules.check(2) self.assertEqual( - _("Expected {expected_count} tests but only {seen_count} ran.").format( + "Expected {expected_count} tests but only {seen_count} ran.".format( expected_count=42, seen_count=1 ), self.suite._tests[0]._line.description, @@ -96,6 +95,6 @@ def test_errors_on_bail(self): self.assertEqual(1, len(self.suite._tests)) self.assertEqual( - _("Bailed: {reason}").format(reason="Missing something important."), + "Bailed: {reason}".format(reason="Missing something important."), self.suite._tests[0]._line.description, ) diff --git a/tap/tests/test_tracker.py b/tap/tests/test_tracker.py index 684568b..89a4cfb 100644 --- a/tap/tests/test_tracker.py +++ b/tap/tests/test_tracker.py @@ -6,14 +6,13 @@ import tempfile from unittest import mock -from tap.i18n import _ from tap.tests import TestCase from tap.tracker import Tracker class TestTracker(TestCase): def _make_header(self, test_case): - return _("# TAP results for {test_case}").format(test_case=test_case) + return "# TAP results for {test_case}".format(test_case=test_case) def test_has_test_cases(self): tracker = Tracker() diff --git a/tap/tracker.py b/tap/tracker.py index 90d726d..6ba23f7 100644 --- a/tap/tracker.py +++ b/tap/tracker.py @@ -3,7 +3,6 @@ import os from tap.directive import Directive -from tap.i18n import _ from tap.line import Result try: @@ -204,9 +203,7 @@ def _write_plan(self, stream): self._plan_written = True def _write_test_case_header(self, test_case, stream): - print( - _("# TAP results for {test_case}").format(test_case=test_case), file=stream - ) + print("# TAP results for {test_case}".format(test_case=test_case), file=stream) def _get_tap_file_path(self, test_case): """Get the TAP output file path for the test case.""" diff --git a/tox.ini b/tox.ini index 46084bb..d444a39 100644 --- a/tox.ini +++ b/tox.ini @@ -20,8 +20,8 @@ deps = black flake8 commands = - flake8 tap setup.py transifex.py - black --check tap setup.py transifex.py + flake8 tap setup.py + black --check tap setup.py [testenv:integration] deps = diff --git a/transifex.py b/transifex.py deleted file mode 100644 index 91dd787..0000000 --- a/transifex.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 2019, Matt Layman and contributors - -from ConfigParser import ConfigParser, NoOptionError, NoSectionError -import os -import sys - -import requests - -API_URL = "https://www.transifex.com/api/2" -LANGUAGES = ["ar", "de", "es", "fr", "it", "ja", "nl", "pt", "ru", "zh"] - - -def fetch_po_for(language, username, password): - print("Downloading po file for {0} ...".format(language)) - po_api = "/project/tappy/resource/tappypot/translation/{0}/".format(language) - po_url = API_URL + po_api - params = {"file": "1"} - r = requests.get(po_url, auth=(username, password), params=params) - if r.status_code == 200: - r.encoding = "utf-8" - output_file = os.path.join( - here, "tap", "locale", language, "LC_MESSAGES", "tappy.po" - ) - with open(output_file, "wb") as out: - out.write(r.text.encode("utf-8")) - else: - print("Something went wrong fetching the {0} po file.".format(language)) - - -def get_auth_from_conf(here): - transifex_conf = os.path.join(here, ".transifex.ini") - config = ConfigParser() - try: - with open(transifex_conf, "r") as conf: - config.readfp(conf) - except IOError as ex: - sys.exit("Failed to load authentication configuration file.\n" "{0}".format(ex)) - try: - username = config.get("auth", "username") - password = config.get("auth", "password") - except (NoOptionError, NoSectionError) as ex: - sys.exit("Oops. Incomplete configuration file: {0}".format(ex)) - - return username, password - - -if __name__ == "__main__": - here = os.path.abspath(os.path.dirname(__file__)) - username, password = get_auth_from_conf(here) - - for language in LANGUAGES: - fetch_po_for(language, username, password)