jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/913914 )
Change subject: [bugfix] Take into account that a repository clone may have no tags
......................................................................
[bugfix] Take into account that a repository clone may have no tags
Pywikibot repository may be cloned without depth and may have no tags.
This patch solves the IndexError which is raised in such case. This is
necessary for CI tests.
Call sys.exit(1) if an error occurs to signal CI tools to fail the test.
Also update coverage and use f-strings
Bug: T335676
Change-Id: I9d8b2990e286772efe4827c2a11fee50af598308
---
M setup.py
M make_dist.py
2 files changed, 62 insertions(+), 39 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/make_dist.py b/make_dist.py
index 1fca5b1..0453ba1 100755
--- a/make_dist.py
+++ b/make_dist.py
@@ -98,9 +98,12 @@
def cleanup(self) -> None:
"""Cleanup copied files."""
- def run(self) -> None: # pragma: no cover
- """Run the installer script."""
- if self.upgrade:
+ def run(self) -> bool:
+ """Run the installer script.
+
+ :return: True if no error occurs, else False
+ """
+ if self.upgrade: # pragma: no cover
check_call('python -m pip install --upgrade pip', shell=True)
check_call(
'pip install --upgrade setuptools wheel twine ', shell=True)
@@ -108,20 +111,20 @@
if self.local or self.remote or self.clear:
self.clear_old_dist()
if self.clear:
- return
+ return True # pragma: no cover
self.copy_files()
try:
setup.main() # create a new package
- except SystemExit as e:
+ except SystemExit as e: # pragma: no cover
error(e)
- return
+ return False
finally:
self.cleanup()
# check description
if run('twine check dist/*', shell=True).returncode:
- return
+ return False # pragma: no cover
if self.local:
check_call('pip uninstall pywikibot -y', shell=True)
@@ -131,7 +134,8 @@
if self.remote and input_yn(
'<<lightblue>>Upload dist to pypi', automatic_quit=False):
- check_call('twine upload dist/*', shell=True)
+ check_call('twine upload dist/*', shell=True) # pragma: no cover
+ return True
class SetupPywikibot(SetupBase):
@@ -149,7 +153,7 @@
self.target = target
self.source = source
- def copy_files(self) -> None: # pragma: no cover
+ def copy_files(self) -> None:
"""Copy i18n files to pywikibot.scripts folder.
Pywikibot i18n files are used for some translations. They are copied
@@ -162,7 +166,7 @@
shutil.copytree(self.source, self.target)
info('done')
- def cleanup(self) -> None: # pragma: no cover
+ def cleanup(self) -> None:
"""Remove all copied files from pywikibot scripts folder."""
info('Remove copied files... ', newline=False)
shutil.rmtree(self.target)
@@ -182,7 +186,7 @@
:return: Return whether dist is to be installed locally or to be
uploaded
"""
- if '-help' in sys.argv: # pragma: no cover
+ if '-help' in sys.argv:
info(__doc__)
info(setup.__doc__)
sys.exit()
@@ -192,7 +196,7 @@
clear = '-clear' in sys.argv
upgrade = '-upgrade' in sys.argv
- if remote and 'dev' in __version__:
+ if remote and 'dev' in __version__: # pragma: no cover
warning('Distribution must not be a developmental release to upload.')
remote = False
@@ -200,11 +204,12 @@
return local, remote, clear, upgrade
-def main() -> None: # pragma: no cover
+def main() -> None:
"""Script entry point."""
args = handle_args()
- SetupPywikibot(*args).run()
+ return SetupPywikibot(*args).run()
-if __name__ == '__main__': # pragma: no cover
- main()
+if __name__ == '__main__':
+ if not main():
+ sys.exit(1) # pragma: no cover
diff --git a/setup.py b/setup.py
index 8ac1364..de00fc5 100755
--- a/setup.py
+++ b/setup.py
@@ -120,7 +120,7 @@
assert metadata.__name__ == name
-def get_validated_version() -> str: # pragma: no cover
+def get_validated_version() -> str:
"""Get a validated pywikibot module version string.
The version number from pywikibot.__metadata__.__version__ is used.
@@ -134,7 +134,7 @@
"""
version = metadata.__version__
if 'sdist' not in sys.argv:
- return version
+ return version # pragma: no cover
# validate version for sdist
from contextlib import suppress
@@ -144,33 +144,34 @@
try:
tags = run(['git', 'tag'], check=True, stdout=PIPE,
universal_newlines=True).stdout.splitlines()
- except Exception as e:
+ except Exception as e: # pragma: no cover
print(e)
sys.exit('Creating source distribution canceled.')
- for tag in ('stable', 'python2'):
- with suppress(ValueError):
- tags.remove(tag)
+ last_tag = None
+ if tags: # pragma: no cover
+ for tag in ('stable', 'python2'):
+ with suppress(ValueError):
+ tags.remove(tag)
- last_tag = tags[-1]
+ last_tag = tags[-1]
warnings = []
- if parse_version(version) < parse_version('0'):
+ if parse_version(version) < parse_version('0'): # pragma: no cover
# any version which is not a valid PEP 440 version will be considered
# less than any valid PEP 440 version
warnings.append(
version + ' is not a valid version string following PEP 440.')
- elif safe_version(version) != version:
- warnings.append(
- '{} does not follow PEP 440. Use {} as version string instead.'
- .format(version, safe_version(version)))
+ elif safe_version(version) != version: # pragma: no cover
+ warnings.append(f'{version} does not follow PEP 440. Use '
+ f'{safe_version(version)} as version string instead.')
- if parse_version(version) <= parse_version(last_tag):
- warnings.append(
- 'New version "{}" is not higher than last version "{}".'
- .format(version, last_tag))
+ if last_tag and parse_version(version) <= parse_version(last_tag):
+ warnings.append( # pragma: no cover
+ f'New version {version!r} is not higher than last version '
+ f'{last_tag!r}.')
- if warnings:
+ if warnings: # pragma: no cover
print(__doc__)
print('\n\n'.join(warnings))
sys.exit('\nBuild of distribution package canceled.')
@@ -178,7 +179,7 @@
return version
-def read_desc(filename) -> str: # pragma: no cover
+def read_desc(filename) -> str:
"""Read long description.
Combine included restructured text files which must be done before
@@ -193,14 +194,14 @@
if os.path.exists(include):
with open(include) as g:
desc.append(re.sub(pattern[0], pattern[1], g.read()))
- else:
- print('Cannot include {}; file not found'.format(include))
+ else: # pragma: no cover
+ print(f'Cannot include {include}; file not found')
else:
desc.append(re.sub(pattern[0], pattern[1], line))
return ''.join(desc)
-def get_packages(name) -> List[str]: # pragma: no cover
+def get_packages(name) -> List[str]:
"""Find framework packages."""
try:
from setuptools import find_namespace_packages
@@ -211,7 +212,7 @@
return [str(name)] + packages
-def main() -> None: # pragma: no cover
+def main() -> None:
"""Setup entry point."""
version = get_validated_version()
setup(
@@ -350,7 +351,7 @@
# Finally show distribution version before uploading
if 'sdist' in sys.argv:
- print('\nDistribution package created for version {}'.format(version))
+ print(f'\nDistribution package created for version {version}')
if __name__ == '__main__': # pragma: no cover
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/913914
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I9d8b2990e286772efe4827c2a11fee50af598308
Gerrit-Change-Number: 913914
Gerrit-PatchSet: 5
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/i18n/+/913917 )
Change subject: Localisation updates from https://translatewiki.net.
......................................................................
Localisation updates from https://translatewiki.net.
Change-Id: I28d26842d90847e07f2384fd758753e83b686701
---
M unprotect/de.json
M replicate_wiki/fr.json
A replicate_wiki/de.json
M undelete/br.json
A replicate_wiki/mk.json
M redirect/mk.json
M redirect/br.json
A replicate_wiki/br.json
A replicate_wiki/sr.json
M protect/de.json
M category/br.json
M delinker/de.json
M redirect/de.json
M redirect/fi.json
14 files changed, 73 insertions(+), 16 deletions(-)
Approvals:
L10n-bot: Looks good to me, approved
jenkins-bot: Verified
diff --git a/category/br.json b/category/br.json
index a0dd777..32f4dde 100644
--- a/category/br.json
+++ b/category/br.json
@@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
+ "Adriendelucca",
"Fulup",
"Gwenn-Ael",
"Huñvreüs"
@@ -8,7 +9,7 @@
},
"category-adding": "Robot : Oc'h ouzhpennañ ar rummad [[:Category:%(newcat)s|%(newcat)s]]",
"category-also-in": "(ivez e %(alsocat)s)",
- "category-clean": "Robot: o tilemel rummad %(category)s a zo rummataet e %(child)s dija",
+ "category-clean": "Robot: O tilemel ar rummad %(category)s rak rummet eo e %(child)s c'hoazh",
"category-listifying": "Robot : Roll eus %(fromcat)s ({{PLURAL:%(num)d|1 elfenn|%(num)d pajenn}})",
"category-removing": "Robot : Tennet diwar %(oldcat)s",
"category-renamed": "Robot : dilec'hiet adalek %(oldcat)s. Aozerien : %(authors)s",
diff --git a/delinker/de.json b/delinker/de.json
index 67d8c84..1ecf5f9 100644
--- a/delinker/de.json
+++ b/delinker/de.json
@@ -4,5 +4,5 @@
"Justman10000"
]
},
- "delinker-delink": "Bot: Die Datei [[%(title)s]] wurde entfernt, da sie von [[:User:%(user)s]]: ''%(comment)s'' gelöscht wurde."
+ "delinker-delink": "Bot: Die Datei [[%(title)s]] wurde entfernt, da sie von [[:User:%(user)s]] gelöscht wurde: ''%(comment)s''"
}
diff --git a/protect/de.json b/protect/de.json
index 20acbae..45554fe 100644
--- a/protect/de.json
+++ b/protect/de.json
@@ -1,12 +1,13 @@
{
"@metadata": {
"authors": [
+ "Justman10000",
"Metalhead64"
]
},
"protect-category": "Bot: Schütze alle Seiten der Kategorie %(cat)s",
"protect-images": "Bot: Schütze alle Bilder auf der Seite %(page)s",
"protect-links": "Bot: Schütze alle Seiten, die von %(page)s verlinkt sind",
- "protect-ref": "Bot: Schütze alle Seiten, die auf %(page)s verlinken",
+ "protect-ref": "Bot: Schutz aller Seiten, die auf %(page)s verweisen",
"protect-simple": "Bot: Schütze eine Liste von Dateien."
}
diff --git a/redirect/br.json b/redirect/br.json
index 2a2a9f2..23bd67d 100644
--- a/redirect/br.json
+++ b/redirect/br.json
@@ -1,15 +1,16 @@
{
"@metadata": {
"authors": [
+ "Adriendelucca",
"Fohanno",
"Fulup",
"Gwenn-Ael",
"Y-M D"
]
},
- "redirect-fix-broken-moved": "Robot : O reizhañ an adkasoù torret war-zu ar bajenn bal %(to)s",
- "redirect-fix-double": "Kempennet adkas doubl gant robot → %(to)s",
- "redirect-fix-loop": "Robot : O kempenn al lagadenn adkas war-zu %(to)s",
- "redirect-remove-broken": "Robot : Ar bajenn ma vezer adkaset n'eus ket anezhi",
+ "redirect-fix-broken-moved": "O reizhañ an adkasoù torret war-zu ar bajenn bal %(to)s",
+ "redirect-fix-double": "Dresañ an adkas doubl da %(to)s",
+ "redirect-fix-loop": "O tresañ al lagadenn adkas war-zu %(to)s",
+ "redirect-remove-broken": "Adkas war-zu ur bajenn n'eus ket anezhi pe a zo bet dilamet",
"redirect-remove-loop": "Stumm ur c'helc'h-tro born zo gant an [[Wikipedia:Redirect|adkas]]"
}
diff --git a/redirect/de.json b/redirect/de.json
index dd97581..cafe3f1 100644
--- a/redirect/de.json
+++ b/redirect/de.json
@@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"Geitost",
+ "Justman10000",
"Metalhead64",
"The Evil IP address"
]
@@ -10,6 +11,6 @@
"redirect-fix-broken-moved": "Korrigiere defekte Weiterleitung auf Verschiebeziel %(to)s",
"redirect-fix-double": "Korrigiere doppelte Weiterleitung auf %(to)s",
"redirect-fix-loop": "Korrigiere Weiterleitungschleife auf %(to)s",
- "redirect-remove-broken": "Weiterleitungsziel existiert nicht",
+ "redirect-remove-broken": "Weiterleitung zu einer gelöschten oder nicht existierenden Seite",
"redirect-remove-loop": "Weiterleitungsziel auf sich selbst"
}
diff --git a/redirect/fi.json b/redirect/fi.json
index 7d9139c..b98c0f1 100644
--- a/redirect/fi.json
+++ b/redirect/fi.json
@@ -6,13 +6,14 @@
"Nedergard",
"Nike",
"Olli",
+ "Pyscowicz",
"Silvonen"
]
},
"redirect-broken-redirect-template": "{{Pikapoisto|1=|2=O2}}",
- "redirect-fix-broken-moved": "Botti korjasi rikkinäisen ohjauksen siirrettyyn kohdesivuun %(to)s",
- "redirect-fix-double": "Botti korjasi kaksinkertaisen ohjauksen sivulle %(to)s",
- "redirect-fix-loop": "Botti korjasi ohjaussilmukan sivulle %(to)s",
+ "redirect-fix-broken-moved": "Korjasi rikkinäisen ohjauksen siirrettyyn kohdesivuun %(to)s",
+ "redirect-fix-double": "Korjasi kaksinkertaisen ohjauksen sivulle %(to)s",
+ "redirect-fix-loop": "Korjasi ohjaussilmukan sivulle %(to)s",
"redirect-remove-broken": "Ohjaus poistetulle tai olemattomalle sivulle",
"redirect-remove-loop": "Ohjauksen kohde muodostaa ohjaussilmukan"
}
diff --git a/redirect/mk.json b/redirect/mk.json
index 1750639..03c001e 100644
--- a/redirect/mk.json
+++ b/redirect/mk.json
@@ -10,6 +10,6 @@
"redirect-fix-broken-moved": "Исправка на прекинато пренасочување кон преместена целна страница %(to)s",
"redirect-fix-double": "Исправка на двојни пренасочувања → %(to)s",
"redirect-fix-loop": "Поправа јамка на пренасочување кон %(to)s",
- "redirect-remove-broken": "[[ВП:КББ|О6]: [[Википедија:Пренасочување|Пренасочување]] кон избришана или непостоечка страница",
- "redirect-remove-loop": "[[ВП:КББ|О6]]: Одредницата за [[Википедија:Пренасочување|пренасочување]] образува јамка"
+ "redirect-remove-broken": "Пренасочување кон избришана или непостоечка страница",
+ "redirect-remove-loop": "Одредницата за пренасочување образува јамка"
}
diff --git a/replicate_wiki/br.json b/replicate_wiki/br.json
new file mode 100644
index 0000000..25ba846
--- /dev/null
+++ b/replicate_wiki/br.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Adriendelucca"
+ ]
+ },
+ "replicate_wiki-same-pages": "An holl bajennoù a-bouez a zo heñvel",
+ "replicate_wiki-summary": "Robot: Goubredañ ar wiki diwar %(source)s"
+}
diff --git a/replicate_wiki/de.json b/replicate_wiki/de.json
new file mode 100644
index 0000000..a80303c
--- /dev/null
+++ b/replicate_wiki/de.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Justman10000"
+ ]
+ },
+ "replicate_wiki-headline": "Seiten, die vom Original abweichen",
+ "replicate_wiki-missing-users": "Admins vom Original, die hier fehlen",
+ "replicate_wiki-same-pages": "Alle wichtigen Seiten sind die gleichen",
+ "replicate_wiki-same-users": "Alle Benutzer aus dem Original sind zudem in diesem Wiki vertreten",
+ "replicate_wiki-summary": "Bot: Wiki-Synchronisation von %(source)s"
+}
diff --git a/replicate_wiki/fr.json b/replicate_wiki/fr.json
index 7128ec2..be7b787 100644
--- a/replicate_wiki/fr.json
+++ b/replicate_wiki/fr.json
@@ -8,5 +8,5 @@
"replicate_wiki-missing-users": "Administrateurs de l’original qui manquent ici",
"replicate_wiki-same-pages": "Toutes les pages importantes sont identiques",
"replicate_wiki-same-users": "Tous les utilisateurs de l’original sont également présents sur ce wiki",
- "replicate_wiki-summary": "Bot : synchronisation du wiki à partir de %(source)s"
+ "replicate_wiki-summary": "Robot : synchronisation du wiki à partir de %(source)s"
}
diff --git a/replicate_wiki/mk.json b/replicate_wiki/mk.json
new file mode 100644
index 0000000..c9c167f
--- /dev/null
+++ b/replicate_wiki/mk.json
@@ -0,0 +1,12 @@
+{
+ "@metadata": {
+ "authors": [
+ "Bjankuloski06"
+ ]
+ },
+ "replicate_wiki-headline": "Страницата што се разликува од оригиналот",
+ "replicate_wiki-missing-users": "Администратори од оригиналот што недостасуваат овде",
+ "replicate_wiki-same-pages": "Сите важни страници се исти",
+ "replicate_wiki-same-users": "Сите корисници од оригиналот се присутни и на ова вики",
+ "replicate_wiki-summary": "Бот: Викиусогласување од %(source)s"
+}
diff --git a/replicate_wiki/sr.json b/replicate_wiki/sr.json
new file mode 100644
index 0000000..5053d4d
--- /dev/null
+++ b/replicate_wiki/sr.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Milicevic01"
+ ]
+ },
+ "replicate_wiki-summary": "Бот: усклађено са %(source)s."
+}
diff --git a/undelete/br.json b/undelete/br.json
index 33eeed5..6f88c6d 100644
--- a/undelete/br.json
+++ b/undelete/br.json
@@ -1,10 +1,11 @@
{
"@metadata": {
"authors": [
+ "Adriendelucca",
"Gwenn-Ael"
]
},
"undelete-from-file": "Robot : nullañ dilamadur ul listennad pajennoù",
- "undelete-images": "Robot : o tiverkañ dilamadur an holl skeudennoù diwar ar bajenn %(page)s\")",
+ "undelete-images": "Robot : O nullañ dilamadur an holl skeudennoù diwar ar bajenn %(page)s",
"undelete-linked-pages": "Robot : O tiverkañ dilamadur an holl bajennoù liammet adalek %(page)s"
}
diff --git a/unprotect/de.json b/unprotect/de.json
index c7cf4e1..31d8e52 100644
--- a/unprotect/de.json
+++ b/unprotect/de.json
@@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
+ "Justman10000",
"Metalhead64",
"Xqt"
]
@@ -8,6 +9,6 @@
"unprotect-category": "Bot: Hebe den Schutz aller Seiten aus der Kategorie %(cat)s auf",
"unprotect-images": "Bot: Hebe den Schutz aller Dateien auf der Seite %(page)s auf",
"unprotect-links": "Bot: Gebe alle Seiten frei, die von %(page)s verlinkt sind",
- "unprotect-ref": "Bot: Gebe alle Seiten frei, die von %(page)s verweisen",
+ "unprotect-ref": "Bot: Aufhebung des Schutzes aller Seiten, die auf %(page)s verweisen",
"unprotect-simple": "Bot: Gebe eine Liste mit Dateien frei"
}
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/i18n/+/913917
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/i18n
Gerrit-Branch: master
Gerrit-Change-Id: I28d26842d90847e07f2384fd758753e83b686701
Gerrit-Change-Number: 913917
Gerrit-PatchSet: 1
Gerrit-Owner: L10n-bot <l10n-bot(a)translatewiki.net>
Gerrit-Reviewer: L10n-bot <l10n-bot(a)translatewiki.net>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
Xqt has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/913674 )
Change subject: [tests] giveup running tests via setup
......................................................................
[tests] giveup running tests via setup
Complete tests can be runned via pytest or unittest. It is not
necessary to run it via setup. pytest-runner has a deprecation
notice and the test command is removed from setuptools in 2019.
Bug: T335645
Change-Id: I0c04a554efcaf21aefca6783198e89f8585d3893
---
M dev-requirements.txt
M tests/README.rst
2 files changed, 16 insertions(+), 10 deletions(-)
Approvals:
jenkins-bot: Verified
Xqt: Looks good to me, approved
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 97309d8..8df802e 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -5,7 +5,6 @@
pytest-cov >= 3.0.0; python_version>="3.10"
pytest-cov >= 2.11.1; python_version<"3.10"
pytest-timeout
-pytest-runner
pytest-subtests >= 0.3.2
pytest-attrib>=0.1.3
diff --git a/tests/README.rst b/tests/README.rst
index cd07199..bff07ea 100644
--- a/tests/README.rst
+++ b/tests/README.rst
@@ -22,14 +22,6 @@
The entire suite of tests may be run in the following ways from the root directory:
-**setup.py**
-
-::
-
- pip install pytest
- pip install pytest-runner
- python setup.py pytest
-
**Module unittest**
::
@@ -40,7 +32,8 @@
::
- py.test
+ pip install pytest
+ pytest
**tox**
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/913674
To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I0c04a554efcaf21aefca6783198e89f8585d3893
Gerrit-Change-Number: 913674
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged