Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
4f6ba48
[bugfix] Ignore SectionError in page_empty_check and count it as empty
xqt Jul 8, 2025
3f641f9
L10N: Add code alias vro for fiu-vro
xqt Jul 16, 2025
61ae7bc
L10N: Add code alias rup for roa-rup
xqt Jul 16, 2025
8f4572e
L10N: Add code alias lzh for zh-classical
xqt Jul 16, 2025
b3dfa63
Update git submodules
jhsoby Jul 16, 2025
074e1b9
i18n: update i18n docstring test
xqt Jul 16, 2025
6050d34
Tests: generate family file for wsbeta:en only
xqt Jul 16, 2025
870ae4a
Update git submodules
translatewiki Jul 17, 2025
6485eff
cleanup throttle: deprecate requestsize and rename methods for clarity
xqt Jul 11, 2025
981b125
Fix: Update setDelays call after method was renamed
xqt Jul 18, 2025
f3d3f23
Tests: backport Python 3.14 assertion methods
xqt Jul 12, 2025
3d6d402
doc: Update ROADMAP.rst and CHANGELOG.rst
xqt Jul 19, 2025
371d753
Tests: Update pre-commit hooks
xqt Jul 19, 2025
fa20a2d
Doc: Fix typo and clarify docstring in aspects.require_version()
xqt Jul 19, 2025
3fcb7ee
Update git submodules
xqt Jul 21, 2025
0b542ac
doc: Refactor formatting of option lists in script docstrings
xqt Jul 20, 2025
8d1e922
Update git submodules
translatewiki Jul 21, 2025
7e4f3da
Tests: Update pre-commit hooks
xqt Jul 26, 2025
67c8dbc
Fix: add 'application/vue+xml' to MediaWikiKnownTypesTestCase
xqt Jul 26, 2025
234519c
doc: Clarify articlepath property docstring and replace assert with e…
xqt Jul 19, 2025
c4cef97
Cleanup: Deprecate create_isbn_edition script
xqt Jul 17, 2025
304208d
Fix: Use {{talkarchive}} template by default
xqt Jul 26, 2025
387bde4
Tests: Suppress print statements during generate_family_file_tests.py
xqt Jul 26, 2025
d6c5995
Tests: ignore create_isbn_edition from script_tests
xqt Jul 26, 2025
c2f2444
Fix coverage excludes
xqt Jul 26, 2025
d051965
interwiki: Fix docstring of Subject.process_unlimited
xqt Jul 27, 2025
54ac00b
Coverage: Update exclude_also list to skip and skip Python314Assertio…
xqt Jul 27, 2025
6e422c4
Cleanup: remove Flow tests parts
xqt Jul 27, 2025
948de4f
typing: Remove typing_extension; Literal is published with Python 3.8
xqt Jul 27, 2025
ea512a9
doc: update deprecation lists
xqt Jul 23, 2025
f0c50fa
Add script for removing tracking URL parameters
jhsoby Jul 16, 2025
4f9ba84
Tests: Enforce setup_page() in BasePageTestBase and improve test stru…
xqt Jul 27, 2025
12be407
Doc: add new tracking_param_remover.py script to documentation
xqt Jul 27, 2025
60b6ca0
Update git submodules
translatewiki Jul 28, 2025
01d70d0
Update git submodules
translatewiki Jul 31, 2025
e84137d
Update git submodules
xqt Aug 1, 2025
67dd751
[tests] Make deletionbot dry-run test site-independent by using actua…
xqt Aug 2, 2025
717a896
tests: update pre-commit hooks
xqt Aug 2, 2025
fbae18a
tests: Print public IP of runner on failure
xqt Aug 2, 2025
ca038d5
Tests: create_isbn_edition is not collected for script tests
xqt Aug 2, 2025
328e0cd
Tests: skip test if IP is blocked
xqt Aug 2, 2025
7ce35e6
Tests: skip test if IP is blocked
xqt Aug 2, 2025
2905421
Revert: Proceed Login CI tests wit all other actions are completed
xqt Aug 3, 2025
e318342
[10.3] Publish Pywikibot 10.3
xqt Aug 3, 2025
50136ca
[10.4] Prepare next release
xqt Aug 3, 2025
d828556
IMPR: Add `expiry` parameter to Page.watch() and Site.watch()
xqt Jul 27, 2025
dadba79
IMPR: Clarify -localonly option behavior and help text
xqt Jul 27, 2025
49d7916
Proceed Login CI tests when all other actions are completed"
xqt Aug 3, 2025
9bf3b28
get_best_claim: Move implementation to ItemPage
strainu Jul 28, 2025
d67a895
Doc: Update documentation for get_best_claim methods
xqt Aug 3, 2025
d8e903c
pyproject: add Python versions for pypi/github badge
xqt Aug 3, 2025
db30bd9
Cleanup: Update setup.py
xqt Aug 3, 2025
6fe9c11
Enable coverage UI
xqt Aug 4, 2025
1bee103
Revert "Enable coverage UI"
xqt Aug 4, 2025
fbdf69b
Tests: Fix watch() to return False if page missing and no expiry set
xqt Aug 4, 2025
4f6c4f3
Update git submodules
translatewiki Aug 4, 2025
c13928c
Tests: Enable coverage measurement in subprocesses started by execute…
xqt Aug 4, 2025
615f768
cleanup: preload_sites script was removed
xqt Aug 4, 2025
daad84a
Improve execute_pwb to activate coverage only for non-override runs
xqt Aug 4, 2025
998cc11
Tests: cover wrapper.run_python_file function which invokes scripts
xqt Aug 4, 2025
da10d36
Revert "Tests: cover wrapper.run_python_file function which invokes s…
xqt Aug 4, 2025
f557fa6
Revert "Improve execute_pwb to activate coverage only for non-overrid…
xqt Aug 4, 2025
38cf5b8
Revert "Tests: Enable coverage measurement in subprocesses started by…
xqt Aug 4, 2025
bfe1e5c
Suppress ResourceWarning for PyPy in TestTerminalInput
xqt Aug 5, 2025
b812008
Update git submodules
translatewiki Aug 7, 2025
33cf8c4
Update git submodules
xqt Aug 8, 2025
4485e8a
Add support for tlwikisource
ZabeMath Aug 8, 2025
6e2b299
Tests: update login_tests-ci.yml to skip wait cycle for itself
xqt Aug 8, 2025
0df3aec
[10.4.0] Update version after stable 10.3.1 is published
xqt Aug 8, 2025
41f3d5c
Tests: Update pre-commit hooks
xqt Aug 8, 2025
285503f
Add get_value_at_timestamp API to ItemPage
strainu Jul 31, 2025
85c1fc5
[bugfix] Pass site to WbTime initializer in get_value_at_timestamp
xqt Aug 10, 2025
0d233b2
IMRP: Add type annotation to _Precision.__getitem__
xqt Aug 10, 2025
3a32707
Update git submodules
translatewiki Aug 11, 2025
01c276b
[IMPR] Improvements for deprecate_positionals decorator
xqt Aug 11, 2025
87a655a
Update git submodules
xqt Aug 11, 2025
71a1a74
tests: some more tests for titletranslate
xqt Aug 11, 2025
048ec26
Tests: some more tests for maintenance.cache
xqt Aug 11, 2025
45c8c01
Add support for new wikis
xqt Aug 12, 2025
2856641
IMPR: Add help options for addwikis script
xqt Aug 12, 2025
dcf9a0f
[10.4.0] Update version after stable 10.3.2 was published
xqt Aug 12, 2025
c5ced0b
Tests: use Python 3.13 for some CI tests
xqt Aug 12, 2025
f9e0881
[tests] Make TestDeletionBot.test_dry dry
xqt Aug 13, 2025
2d3b102
[login_tests-ci] set continue-on-error: true
xqt Aug 13, 2025
60aba25
[IMPR] Add `strict` parameter to unconnected_pages()
xqt Aug 12, 2025
2918e4e
[IMPR] Make Coordinate.__init__ parameters keyword-only
xqt Aug 10, 2025
e54edac
Tests: use str.replace instead of re.sub for plain string replacement
xqt Aug 14, 2025
3d7a57d
Update git submodules
translatewiki Aug 14, 2025
af15146
Update git submodules
xqt Aug 14, 2025
71fa03d
Update git submodules
translatewiki Aug 14, 2025
8495023
Update git submodules
xqt Aug 15, 2025
961fc59
Update git submodules
translatewiki Aug 18, 2025
f02fed9
Update git submodules
xqt Aug 18, 2025
3002076
Update git submodules
xqt Aug 18, 2025
512f365
Fix wikibase_tests
xqt Aug 18, 2025
1de2a84
tests: update tests running with Python 3.13
xqt Aug 18, 2025
5ef4905
Update pre-commit-hooks
xqt Aug 17, 2025
f94fef9
IMPR: Improvements for textlib.Content class
xqt Aug 8, 2025
6fde1ac
don't require 18n module when a manual summary is provided
xqt Aug 18, 2025
56821d6
Suppress ResourceWarning for PyPy in TestTerminalInput.test_input_yn
xqt Aug 16, 2025
d634839
[IMPR] Refactor WbTime
xqt Aug 10, 2025
036a200
fix: improve WbRepresentation __hash__, __repr__ and remove __ne__
xqt Aug 10, 2025
3a35d1b
Fix: Omit deprecation warning in _wptypes
xqt Aug 19, 2025
2b9e2b3
tests: Run doctest with Python 3.8 and 3.13
xqt Aug 20, 2025
6920a66
Fix: update itemlist in TestPropertyNames.test_get_property_names
xqt Aug 20, 2025
e0bdf64
Coverage: Update coverage for aspects
xqt Aug 21, 2025
b99f1ce
CI: Adjust tox minversion
xqt Aug 21, 2025
1e722d4
Update git submodules
translatewiki Aug 21, 2025
69e83ab
Update git submodules
xqt Aug 21, 2025
18f9e8b
Tests: Enable coverage for script_tests
xqt Aug 22, 2025
d5d7e79
Tests: Add coverage combine to workflows
xqt Aug 22, 2025
781dd40
Tests: No longer import script within script_tests
xqt Aug 22, 2025
a4cbfd9
Test: Fix coverage settings
xqt Aug 22, 2025
20467a4
Tests: Test Python 3.14 on Windows environment
xqt Aug 22, 2025
39d5ef2
Tests: use temporary file for coverage with githun actions only
xqt Aug 23, 2025
eac3a31
coverage: update coverage settings
xqt Aug 23, 2025
c96acfd
Update git submodules
xqt Aug 23, 2025
73d3b50
[fixes] Improve parameter_help formatting and _load_file readability
xqt Aug 16, 2025
718c299
page._collections: Improve repr string for BaseDataDict and ClaimColl…
xqt Aug 17, 2025
e232efc
i18n: Make doctests for known_languages() more robust
xqt Aug 23, 2025
61fd331
Update plural forms from unicode.org
xqt Aug 23, 2025
269d30c
[tests] Speedup script_tests
xqt Aug 24, 2025
1390acc
tests: refactor script test loading and filtering
xqt Aug 24, 2025
a4fef01
tests: do not exclude failed dependencies for TestScriptHelp
xqt Aug 24, 2025
4a01adc
Tests: recover unittest.skip in ScriptTestMeta
xqt Aug 24, 2025
9376906
tests: enable global options in script_tests
xqt Aug 24, 2025
eeec88f
Tests: Update pre-commit hooks
xqt Aug 24, 2025
438d48f
Tests: Fix GITHUB_ACTIONS check
xqt Aug 24, 2025
9e83b97
Update git submodules
translatewiki Aug 25, 2025
2831dbe
add user-agent header to eventstream requests
DerIch27 Aug 25, 2025
6f50aac
Add support for bewwiktionary
ZabeMath Aug 27, 2025
ae0a1b2
[bugfix] Use 'User-Agent' with BinaryTestCase.test_requests
xqt Aug 29, 2025
5246311
Tests: ignore expected failures in interwiki_link_tests and site_tests
xqt Aug 29, 2025
e50700b
site.allpages: apply client-side filtering for maxsize in misermode
xqt Aug 29, 2025
d23dd98
Revert "Tests: ignore expected failures in interwiki_link_tests and s…
xqt Aug 29, 2025
e65252e
update coverage settings
xqt Aug 29, 2025
384289a
Request: use unittest_print to show Exception in Rweusests._http_request
xqt Aug 30, 2025
bdbdd7a
Doc: update ROADMAP.rst, CHANGELOG.rst and AUTHORS.rst
xqt Aug 30, 2025
61c2e1b
Test: convert TestSingleCodeFamilySite to dry test
xqt Aug 30, 2025
e7f8078
tests: Print public IP of runner on failure
xqt Aug 30, 2025
4ed52c1
tests: skip TestInterwikiLinksToNonLocalSites on Github
xqt Aug 30, 2025
94dc176
[10.4.0] Publish Pywikibot 10.4
xqt Aug 30, 2025
0a0916a
[10.5] Prepare next release
xqt Aug 31, 2025
77800b2
doc: first line of docstring should be in imperative mood
xqt Aug 31, 2025
c66142b
doc: Refactor docstrings of category.py script
xqt Aug 31, 2025
6762d71
Update git submodules
translatewiki Sep 1, 2025
a842b99
handle uncommon uri schemes on weblinkchecker
DerIch27 Aug 28, 2025
393eadd
typing: Update typing from backports
xqt Sep 2, 2025
9be20c1
i18n: Refactor twtranslate to unify fallback_prompt handling
xqt Aug 23, 2025
0b734df
mypy: test config.py with pre-commit
xqt Sep 7, 2025
d3ca105
Test: run pre-commit with Windows and MacOS
xqt Sep 7, 2025
253acbd
Test: run pre-commit Python 3.9 on MacOS
xqt Sep 7, 2025
43ec99f
[bugfix] Get a token for private wiki
xqt Feb 27, 2023
7a9d56d
[IMPR] use Site.has_group() to determine the botflag
xqt Sep 9, 2025
0f959cd
Tests: Remove kb.mozillazine.org from test matrix
xqt Sep 10, 2025
b15a817
Update git submodules
translatewiki Sep 11, 2025
4c71b71
doc: Update ROADMAP.rst
xqt Sep 13, 2025
37e669d
Refactor Siteinfo class
xqt Sep 13, 2025
315c6af
IMPR: Use a better message in TokenWallet.update_tokens for KeyError
xqt Sep 14, 2025
df8efb3
IMPR: use (cached) siteinfo with ChangeLangBot
xqt Sep 13, 2025
61af169
fix some typing errors raised by mypy
DerIch27 Sep 4, 2025
49289b5
tests: use types-requests for mypy tests with tox
xqt Sep 14, 2025
9714c82
IMPR: refactor Site.rollbackpage
xqt Sep 7, 2025
15f6d2b
Update git submodules
translatewiki Sep 18, 2025
a24beca
Add support for new wiki
Meno25 Sep 19, 2025
b271289
Add new property APISite.restrictions
xqt Sep 11, 2025
7966845
IMPR: Retrieve siteinfo with formatversion 2
xqt Sep 13, 2025
e14a5df
Tests: ignore en.citizendium.org test in site_detect_tests on github
xqt Sep 20, 2025
7e594d3
Tests: Use site.user() in TestRollbackPage Error tests
xqt Sep 20, 2025
42aba88
[10.5.0] Publisch Pywikibot 10.5
xqt Sep 21, 2025
374b1e3
[10.6] Prepare next release 10.6
xqt Sep 21, 2025
89d2e4f
MyPy: Solve some MyPy issues in several files
xqt Sep 21, 2025
ab42d28
[bugfix] Return userPut result with put_current method in AutomaticTW…
xqt Sep 21, 2025
9b4895a
[bugfix] Fix Transliterator for Lao char
xqt Sep 21, 2025
766718d
Typing: Solve some mypy issues
xqt Sep 21, 2025
1673c27
Tests: Fix TestBacklinks tests in site_generators_tests.py
xqt Sep 25, 2025
e3f3e4c
Typing: Solve some mypy issues
xqt Sep 23, 2025
2b9f6aa
Update git submodules
translatewiki Sep 25, 2025
21a22a3
IMPT: daemonize improvements
xqt Sep 27, 2025
39fcb59
MyPy: solve MyPy issues in cosmetic_changes.py and titletranslate.py
xqt Sep 27, 2025
f6b51bb
Update git submodules
translatewiki Sep 29, 2025
4bdeb54
[bugfix] finally reset messages in DeprecationTestCase.assertOneDepre…
xqt Oct 5, 2025
5cba4c0
IMPR: rename deprecate_positional to deprecated_signature
xqt Oct 3, 2025
cd2db15
[IMPR] Add return after super(UI).encounter_color() call
xqt Oct 5, 2025
784db47
[cleanup] remove Python 2 code in aspects.py
xqt Oct 5, 2025
3807e2f
Tests: Remove unused return statements in tools_deprecate_tests
xqt Oct 5, 2025
51fbabf
IMPR: Show user-agent with version script
xqt Oct 7, 2025
85b09a5
[bugfix] remove U+9676 replacement
xqt Oct 3, 2025
14f540f
Tests: Python 3.14 is published; use ist with tests
xqt Oct 10, 2025
5d3c07b
Tests: Use Python 3.14 for pre-commit tests with ubuntu
xqt Oct 10, 2025
30fe415
tests: try enabling interwiki_link_tests on github
xqt Oct 11, 2025
4908ee2
Add deprecation tag for Family.interwiki_replacement
SSpirate11 Oct 10, 2025
73f0ce6
Doc: Update ROADMAP.rst and AUTHORS.rst
xqt Oct 11, 2025
a9dc1c4
Upgrade assertRaises to assertRaisesRegex
tejashxv Sep 14, 2025
e619c21
cleanup: No longer inherit SupersetQuery from WaitingMixin
xqt Oct 11, 2025
71fe1f4
[Family] Add Romanian templates in Wikipedia family
strainu Oct 10, 2025
d4128af
tests: test supertest with Pywikibot-oauth account
xqt Oct 11, 2025
aa8b92f
Add Citoid API to pywikibot
strainu Oct 10, 2025
5b48256
Announcement:Show a warning if Pywikibot is running with Python 3.8
xqt Oct 12, 2025
6fc196f
[IMPR] add union_generators function to tools.itertools
xqt Sep 28, 2025
d063f68
tests: meta login is required for superset test
xqt Oct 12, 2025
b43bfbe
IMPR: Follow-up for Citoid Query interface implementation
xqt Oct 12, 2025
bdbfd12
doc: Update ROADMAP.rst
xqt Oct 12, 2025
b33bef7
tests: expected failure in TestSupersetWithAuth.test_login_and_oauth_…
xqt Oct 13, 2025
df083c7
Update git submodules
translatewiki Oct 13, 2025
168757a
[bugfix] Fix initializer for bot_choice.UnhandledAnswer
xqt Oct 13, 2025
aff9716
IMPR: get regex from textlib in CosmeticChangesToolkit
xqt Oct 14, 2025
83fbe3b
Cleanup: Deprecate isPublic method of Family class
xqt Oct 11, 2025
1d15d1e
Tests: Fix MockSite in dry_api_tests
xqt Oct 18, 2025
17b0263
coverage: hide unrelated code from coverage
xqt Oct 18, 2025
f493b1c
Tests: Fix skip message in CheckHostnameMixin
xqt Oct 18, 2025
a435505
Tests: Update Pillow requirements and add pypy3.11 tests
xqt Oct 18, 2025
f407a55
IMPR: Show the related site with NoUsernameError during LoginManager.…
xqt Oct 12, 2025
c585dbf
coverage: Remove fallback codes from coverage
xqt Oct 19, 2025
d0dad01
Tests: fix TestIndexPageMappings.test_get_page_and_number tests
xqt Oct 19, 2025
e8f575e
Update git submodules
translatewiki Oct 20, 2025
0f77d88
Wikibase: Fix get_value_at_timestamp
strainu Oct 19, 2025
4fe8da9
Tests: Update Pillow requirements
xqt Oct 21, 2025
e7502b2
Tests: Fix Pillow requirements
xqt Oct 21, 2025
94fa395
[10.6] Publish Pywikibot 10.6
xqt Oct 22, 2025
68015fd
[10.6] Publish 10.6; ignore BugBear B042 for now
xqt Oct 22, 2025
ffe104a
[10.7] Prepare next release
xqt Oct 23, 2025
79c4c59
[bugfix] fix fake-useragent requirement
xqt Oct 23, 2025
edd854b
[bugfix] fix fake-useragent requirement
xqt Oct 23, 2025
4f1f83c
Update git submodules
translatewiki Oct 23, 2025
ba759d1
tests: Update actions/checkout and actions/setup-python
xqt Oct 23, 2025
c6d4530
coverage: Exclude unintentional fails from coverage in tests_tests.py
xqt Oct 24, 2025
381c2a7
[Bugfix] Replace timetravel.mementoweb.org with web.archive.org
xqt Oct 18, 2025
dc9be61
cleanup: deprecate old (type, value, traceback) signature in throw
xqt Oct 19, 2025
af39566
IMPR: Refactor replace_magicword in CosmeticChangesToolkit
xqt Oct 14, 2025
8c48622
Update git submodules
translatewiki Oct 27, 2025
f8f763d
cleanup: deprecate dysfunctional Site.alllinks method
xqt Oct 20, 2025
7b2c3f2
Tests: temporary exclude testwiki from some rc tests
xqt Oct 29, 2025
bd660ae
Tests: show username if user cannot be logged in with RequireLoginMix…
xqt Oct 29, 2025
49ed55d
Fixed the watchlist.py counting issue
SSpirate11 Oct 11, 2025
eb9b943
misspelling.py: Add -page option for single misspelling
tejashxv Oct 3, 2025
9d11165
doc: update ROADMAP.rst, CHANGELOG.rst and AUTHORS.rst
xqt Oct 29, 2025
21106a4
coverage: Exclude alllinks method from coverage
xqt Oct 29, 2025
ccca870
[Bugfix] restart generator in TestPagePreloading.test_titles()
xqt Oct 29, 2025
b7fe905
Tests: Solve unexpected success for TestScriptGenerator.test_misspelling
xqt Oct 29, 2025
caa79c0
Tests: run pre-commit on Python 3.15 with experimental flag
xqt Oct 29, 2025
a09522d
Revert Tests: temporary exclude testwiki from some rc tests
xqt Oct 30, 2025
1a8d124
Test: Extract error message for T408721
xqt Oct 30, 2025
e094216
Revert "Test: Extract error message for T408721"
xqt Oct 30, 2025
8f6bf90
Update git submodules
translatewiki Oct 30, 2025
89f0c38
IMPR: Improvement for pagefromfile.NoTitleError
xqt Oct 24, 2025
931a137
tests: temporary let beta-tests fail on github
xqt Oct 31, 2025
f94dc5a
L10N: Add support for pcmwikiquote and minwikisource to Pywikibot
xqt Oct 31, 2025
85f881c
Move Python deprecation warning from pywikibot library to pwb wrapper
xqt Oct 23, 2025
549e893
[10.7] publish Pywikibot 10.7
xqt Oct 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,9 @@ coverage:
default:
enabled: true
ignore:
- Users
- pywikibot/daemonize.py
- pywikibot/families/__init__.py
- pywikibot/scripts/preload_sites.py
- pywikibot/scripts/version.py
- scripts/maintenance/colors.py
- scripts/maintenance/make_i18n_dict.py
- scripts/create_isbn_edition.py
- scripts/userscripts/
- tests/pwb/
notify:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/doctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,17 @@ jobs:
fail-fast: false
max-parallel: 17
matrix:
python-version: [pypy3.8, pypy3.10, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
python-version: [pypy3.8, pypy3.11, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
os: ['windows-latest', 'macOS-latest', 'ubuntu-latest']
include:
- python-version: 3.14-dev
- python-version: 3.15-dev
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
if: "!endsWith(matrix.python-version, '-dev')"
with:
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -68,6 +67,7 @@ jobs:
coverage run -m pytest pywikibot --doctest-modules --ignore-glob="*gui.py" --ignore-glob="*memento.py"
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
37 changes: 29 additions & 8 deletions .github/workflows/login_tests-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,43 @@ on:
workflow_run:
workflows: [Pywikibot CI]
branches: [master]
types:
- completed
types: [completed]

env:
PYWIKIBOT_TEST_RUNNING: 1
PYWIKIBOT_TEST_LOGOUT: 1
PYWIKIBOT_USERNAME: Pywikibot-test

jobs:
build:
wait_for_all:
name: Wait for other workflows to finish
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Wait for all workflows to complete excluding this one
uses: kachick/wait-other-jobs@v3.8.1
with:
skip-same-workflow: true
skip-list: |
[
{
"workflowFile": "login_tests-ci.yml",
"jobName": "Wait for other workflows to finish"
}
]
warmup-delay: PT1M
minimum-interval: PT5M

run_tests:
name: Run Login/Logout Tests
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
needs: wait_for_all
timeout-minutes: 30
strategy:
fail-fast: false
max-parallel: 1
matrix:
python-version: [pypy3.8, pypy3.10, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', 3.14-dev, 3.15-dev]
python-version: [pypy3.8, pypy3.11, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 3.15-dev]
site: ['wikipedia:en', 'wikisource:zh', 'wikipedia:test']
include:
- python-version: '3.8'
Expand Down Expand Up @@ -52,11 +72,11 @@ jobs:
os: macOS-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
if: "!endsWith(matrix.python-version, '-dev')"
with:
python-version: ${{ matrix.python-version }}
Expand All @@ -80,10 +100,10 @@ jobs:
- name: Generate family files
run: |
if [ ${{matrix.family || 0}} == wpbeta ]; then
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmflabs.org/ wpbeta y
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmcloud.org/ wpbeta y
fi
if [ ${{matrix.site || 0}} == 'wsbeta:en' ]; then
python pwb.py generate_family_file http://en.wikisource.beta.wmflabs.org/ wsbeta y
python pwb.py generate_family_file http://en.wikisource.beta.wmcloud.org/ wsbeta n
fi
- name: Generate user files
run: |
Expand Down Expand Up @@ -111,6 +131,7 @@ jobs:
coverage run -m unittest -vv tests/site_login_logout_tests.py
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
22 changes: 13 additions & 9 deletions .github/workflows/oauth_tests-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,32 @@ jobs:
build:
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
continue-on-error: ${{ matrix.experimental || false }}
timeout-minutes: 5
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
python-version: [pypy3.8, pypy3.10, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', 3.14-dev, 3.15-dev]
python-version: [pypy3.8, pypy3.11, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 3.15-dev]
family: [wikipedia]
code: [test]
domain: [test.wikipedia.org]
include:
- python-version: '3.8'
family: wpbeta
code: en
domain: en.wikipedia.beta.wmflabs.org
domain: en.wikipedia.beta.wmcloud.org
experimental: true
- python-version: '3.8'
family: wpbeta
code: zh
domain: zh.wikipedia.beta.wmflabs.org
domain: zh.wikipedia.beta.wmcloud.org
experimental: true
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
if: "!endsWith(matrix.python-version, '-dev')"
with:
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -82,26 +84,28 @@ jobs:
- name: Generate family files
if: ${{ matrix.family == 'wpbeta' }}
run: |
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmflabs.org/ wpbeta y
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmcloud.org/ wpbeta y
- name: Generate user files
run: |
python -Werror::UserWarning -m pwb generate_user_files -family:${{matrix.family}} -lang:${{matrix.code}} -user:${{ env.PYWIKIBOT_USERNAME }} -v -debug;
echo "usernames['commons']['beta'] = '${{ env.PYWIKIBOT_USERNAME }}'" >> user-config.py
echo "usernames['meta']['meta'] = '${{ env.PYWIKIBOT_USERNAME }}'" >> user-config.py
echo "authenticate['${{ matrix.domain }}'] = ('${{ steps.split.outputs._0 }}', '${{ steps.split.outputs._1 }}', '${{ steps.split.outputs._2 }}', '${{ steps.split.outputs._3 }}')" >> user-config.py
echo "noisysleep = float('inf')" >> user-config.py
echo "maximum_GET_length = 5000" >> user-config.py
echo "console_encoding = 'utf8'" >> user-config.py
- name: Oauth tests with unittest
timeout-minutes: 2
timeout-minutes: 8
env:
PYWIKIBOT_TEST_WRITE: 1
PYWIKIBOT_TEST_OAUTH: ${{ secrets[format('{0}', steps.token.outputs.uppercase)] }}
PYWIKIBOT_TEST_MODULES: edit_failure,file,oauth
PYWIKIBOT_TEST_MODULES: edit_failure,file,oauth,superset
run: |
python pwb.py version
coverage run -m unittest -vv
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
21 changes: 16 additions & 5 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,27 @@ env:

jobs:
pre-commit:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
continue-on-error: ${{ matrix.experimental || false }}
strategy:
fail-fast: false
matrix:
python-version:
- '3.9'
- '3.13'
- 3.14-dev
- 3.15-dev
- '3.14'
os:
- windows-latest
- macOS-latest
include:
- python-version: '3.14'
os: ubuntu-latest
- python-version: 3.15-dev
experimental: true
steps:
- name: set up python ${{ matrix.python-version }}
if: "!endsWith(matrix.python-version, '-dev')"
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: set up development python ${{ matrix.python-version }}
Expand All @@ -37,10 +46,12 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: run pre-commit
uses: pre-commit/action@v3.0.1
env:
SKIP: copyright
timeout-minutes: 5
timeout-minutes: 100
22 changes: 10 additions & 12 deletions .github/workflows/pywikibot-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
fail-fast: false
max-parallel: 19
matrix:
python-version: [pypy3.10, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
python-version: [pypy3.10, pypy3.11, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
site: ['wikipedia:en', 'wikisource:zh']
include:
- python-version: '3.8'
Expand Down Expand Up @@ -59,12 +59,6 @@ jobs:
- python-version: pypy3.8
site: wikisource:zh
os: ubuntu-22.04
- python-version: 3.14-dev
site: wikipedia:en
os: ubuntu-22.04
- python-version: 3.14-dev
site: wikisource:zh
os: ubuntu-22.04
- python-version: 3.15-dev
site: wikipedia:en
os: ubuntu-22.04
Expand All @@ -73,11 +67,11 @@ jobs:
os: ubuntu-22.04
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
if: "!endsWith(matrix.python-version, '-dev')"
with:
python-version: ${{ matrix.python-version }}
Expand All @@ -101,10 +95,10 @@ jobs:
- name: Generate family files
run: |
if [ ${{matrix.family || 0}} == wpbeta ]; then
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmflabs.org/ wpbeta y
python pwb.py generate_family_file http://${{matrix.code}}.wikipedia.beta.wmcloud.org/ wpbeta y
fi
if [ ${{matrix.site || 0}} == 'wsbeta:en' ]; then
python pwb.py generate_family_file http://en.wikisource.beta.wmflabs.org/ wsbeta y
python pwb.py generate_family_file http://en.wikisource.beta.wmcloud.org/ wsbeta n
fi
- name: Generate user files
run: |
Expand Down Expand Up @@ -140,11 +134,15 @@ jobs:
fi
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Check on failure
if: steps.ci_test.outcome == 'failure'
run: exit 1
run: |
# Print public IP of runner
curl -s https://api.ipify.org
exit 1
5 changes: 3 additions & 2 deletions .github/workflows/sysop_write_tests-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ jobs:
attr: [write and not rights, write and rights, rights and not write]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
Expand Down Expand Up @@ -62,6 +62,7 @@ jobs:
coverage run -m pytest -s -r A -a "${{ matrix.attr }}"
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/windows_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,16 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.8.0, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
python-version: [3.8.0, '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
python-arch: [x64, x86]
site: ['wikipedia:en']
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: true
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.python-arch }}
Expand Down Expand Up @@ -75,11 +75,15 @@ jobs:
coverage run -m unittest discover -vv -p \"*_tests.py\";
- name: Show coverage statistics
run: |
coverage combine || true
coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Check on failure
if: steps.ci_test.outcome == 'failure'
run: exit 1
run: |
# Print public IP of runner
curl -s https://api.ipify.org
exit 1
Loading
Loading