Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1753 commits
Select commit Hold shift + click to select a range
cf4c12c
Add .git-blame-ignore-revs
pekkaklarck May 2, 2025
559f0ae
Little cleanup here and there
pekkaklarck May 2, 2025
e9050d7
Fix nested timeouts outside Windows.
pekkaklarck May 5, 2025
66d5300
Refactor timeout implementation.
pekkaklarck May 6, 2025
00d45d4
Pause timeouts when library keyword uses `BuiltIn.run_keyword`
pekkaklarck May 6, 2025
c150368
Refactor
pekkaklarck May 6, 2025
b234901
Cleanup
pekkaklarck May 7, 2025
cdf535f
Fix extended assign with `@` and `&` syntax
pekkaklarck May 7, 2025
a251531
Better performance optimization in test
pekkaklarck May 7, 2025
4067212
Merge pull request #5420 from robotframework/dependabot/npm_and_yarn/…
yanne May 7, 2025
19bb15d
Bump actions/setup-python from 5.4.0 to 5.6.0 (#5411)
dependabot[bot] May 7, 2025
514240e
Mention logging with ERROR level in `Stopping on parsing or execution…
gohierf May 7, 2025
ebcd593
Fix typos in user guide (#5378)
laurentbristiel May 7, 2025
6ad86f5
Prohibit types in embedded arguments with library keywords (#5425)
aaltat May 7, 2025
bd192d8
Clarify documentation
pekkaklarck May 7, 2025
7cf9450
Test fixes
pekkaklarck May 7, 2025
1d2acfa
formatting
pekkaklarck May 7, 2025
38c4616
Documentation enhancements
pekkaklarck May 7, 2025
de06a99
formatting
pekkaklarck May 7, 2025
65f913a
Refactor
pekkaklarck May 7, 2025
85e4c67
Test that debug file messages are not delayed
pekkaklarck May 7, 2025
aa1818a
test cleanup
pekkaklarck May 8, 2025
1476e53
Release notes for 7.3rc1
pekkaklarck May 8, 2025
48aa98b
Remove unnecessary typing_extensions usage in tests
pekkaklarck May 8, 2025
b3e881e
Updated version to 7.3rc1
pekkaklarck May 8, 2025
c9add1c
Add setuptools to dev requirements
pekkaklarck May 8, 2025
937392e
fix issue link
pekkaklarck May 8, 2025
d19dfcd
Back to dev version
pekkaklarck May 8, 2025
d32d5ad
add missing issue type
pekkaklarck May 8, 2025
6cc1198
Fix recursinve `BuiltIn.run_keyword` usage.
pekkaklarck May 9, 2025
9a6cc35
Fix Timeout.time_left() if timeout not started
pekkaklarck May 12, 2025
a1168b9
Unit tests for pausing timeouts.
pekkaklarck May 12, 2025
b1c031d
Allow starting Timeouts in `__init__`
pekkaklarck May 14, 2025
78d2d63
Timeout tuning
pekkaklarck May 14, 2025
37c979c
Test tuning
pekkaklarck May 14, 2025
09ce8ca
Fix minor bugs in robot.utils.Importer
pekkaklarck May 15, 2025
04a6efc
Fix error when adding incompatible objects to TestSuite
pekkaklarck May 15, 2025
9022df0
Fine-tune type conversion error message
pekkaklarck May 15, 2025
3e3f64e
Remove duplicate argument
pekkaklarck May 15, 2025
448fb07
FOR loop variable conversion
pekkaklarck May 16, 2025
375cc08
Enhance API docs and type hints
pekkaklarck May 16, 2025
b2c1cd1
Test tuning
pekkaklarck May 16, 2025
96c6ea5
Declare official Python 3.14 support
pekkaklarck May 16, 2025
0449463
Avoid test flakeyness
pekkaklarck May 16, 2025
2dc16cd
Enhance docs
pekkaklarck May 19, 2025
9ab62cb
Refactor
pekkaklarck May 19, 2025
77e1013
Release notes for 7.3rc2
pekkaklarck May 19, 2025
0f5cf25
Updated version to 7.3rc2
pekkaklarck May 19, 2025
22baede
Back to dev version
pekkaklarck May 19, 2025
c38531f
Use setuptools that doesn't require pyproject.toml
pekkaklarck May 19, 2025
9728623
Guard for `None`.
pekkaklarck May 19, 2025
78df7be
Process: Document that trailing newline is removed from stdout/stderr
pekkaklarck May 20, 2025
bfd2a03
Reset signal monitor between runs
pekkaklarck May 20, 2025
153db09
Remove [project] table from pyproject.toml
pekkaklarck May 20, 2025
b36bba4
buildout compatible entry point configuration
pekkaklarck May 20, 2025
5b121be
Add `EmbeddedArguments.match` back
pekkaklarck May 20, 2025
7781d8f
Command line variable conversion
pekkaklarck May 20, 2025
84cf17b
Enhance command line variable conversion test
pekkaklarck May 20, 2025
8b0dad4
Support current time conversion with `datetime` and `date`
pekkaklarck May 20, 2025
5af1f17
cleanup
pekkaklarck May 21, 2025
bd92295
Process: Enhance docs and tests related to newline handling
pekkaklarck May 21, 2025
f72db2a
Release notes for 7.3rc3
pekkaklarck May 21, 2025
3f6cb6b
Updated version to 7.3rc3
pekkaklarck May 21, 2025
1a0351e
Back to dev version
pekkaklarck May 21, 2025
c26fea6
Initial documentation for variable comversion
aaltat May 27, 2025
4db1959
Support both `now/today` with both `date/datetime` conversion.
pekkaklarck May 27, 2025
236327f
Update acknowledgements
pekkaklarck May 28, 2025
31c4daa
Don't use deprecated Default Tags in example
pekkaklarck May 28, 2025
a974f1c
UG: General cleanup to Variables section
pekkaklarck May 28, 2025
79cc536
Change embedded argument syntax with type and regexp
pekkaklarck May 29, 2025
e38c868
Enhance user keyword argument conversion errors
pekkaklarck May 30, 2025
e9fb143
Enhance tests
pekkaklarck May 30, 2025
30d87e4
Enhance variable type conversion documentation
pekkaklarck May 30, 2025
ab7d3e5
Update contribution guidelines (#5375)
robinmackaij May 30, 2025
2ac4b1e
Release notes for 7.3
pekkaklarck May 30, 2025
df95ec9
Updated version to 7.3
pekkaklarck May 30, 2025
f6b9301
UG: Fix internal link
pekkaklarck May 30, 2025
7204074
Back to dev version
pekkaklarck May 30, 2025
fd87e86
Update issue title
pekkaklarck Jun 2, 2025
ddaf044
Fix handling invalid UK argspec with types
pekkaklarck Jun 2, 2025
9526d10
Shorter timeouts in tests
pekkaklarck Jun 5, 2025
a05f167
Prefer exact match over embedded match with setup/teardown and Run Ke…
pekkaklarck Jun 5, 2025
3ddb4fe
reformat
pekkaklarck Jun 11, 2025
afdd154
Update release instructions.
pekkaklarck Jun 11, 2025
e90c913
Update contribution guidelines.
pekkaklarck Jun 13, 2025
014649b
Update CONTRIBUTING.rst (#5452)
LydiaPeabody Jun 16, 2025
3d26a62
Remove unnecessary `.readlines()`.
pekkaklarck Jun 16, 2025
d64fcd5
Use `# fmt: skip` instead of `# fmt: off/on`.
pekkaklarck Jun 16, 2025
eca2a1b
Two spaces before an inline comment.
pekkaklarck Jun 16, 2025
c77108c
New section about inline comments, fixes and adjustments
pekkaklarck Jun 16, 2025
af66f71
Fix expand icons for failed and skipped tests (#5322) (#5445)
psaikkonen Jun 16, 2025
56a770c
Refactor test toggle logic.
pekkaklarck Jun 16, 2025
a7a7b0a
Release notes for 7.3.1
pekkaklarck Jun 16, 2025
f189a6f
Updated version to 7.3.1
pekkaklarck Jun 16, 2025
f93fabf
Fixes
pekkaklarck Jun 16, 2025
14a273e
Back to dev version
pekkaklarck Jun 16, 2025
0f0d796
Fix formatting
pekkaklarck Jun 16, 2025
f41e389
Enhance tests for setup/teardown with embedded args
pekkaklarck Jun 23, 2025
23566ea
Fix embedded args related regression
pekkaklarck Jun 23, 2025
ec384e2
Try all matching BDD prefixes, not only longest.
pekkaklarck Jun 26, 2025
3d7e17e
Fix listener end_test overriding body when using JSON
pekkaklarck Jun 26, 2025
3020c5c
Fix test on PyPy
pekkaklarck Jun 26, 2025
722bd9a
Enhance/cleanup flattening output.xml
pekkaklarck Jul 2, 2025
f2c7495
Refactor keyword used in tests
pekkaklarck Jul 2, 2025
e4c6314
Enhance tests
pekkaklarck Jul 2, 2025
0c9cff3
Fix --flattenkeywords with VAR, GROUP and RETURN
pekkaklarck Jul 2, 2025
0f9e35e
Fix handling failing suite teardowns with JSON
pekkaklarck Jul 3, 2025
331394c
Don't access suite.teardown unnecessarily.
pekkaklarck Jul 3, 2025
ec5aaae
Make JsonDumber configurable.
pekkaklarck Jul 3, 2025
81b358d
Nicer signature to ExecutionResult
pekkaklarck Jul 3, 2025
f93468c
Fix `include_keywords=False` with JSON.
pekkaklarck Jul 3, 2025
0039fb8
Enhance JsonLoader config
pekkaklarck Jul 4, 2025
38e3926
Consistent naming
pekkaklarck Jul 4, 2025
3bda095
Fix --flattenkeywords with JSON outputs
pekkaklarck Jul 4, 2025
36a4d22
Release notes for 7.3.2
pekkaklarck Jul 4, 2025
5b07ac3
Updated version to 7.3.2
pekkaklarck Jul 4, 2025
dc61fed
Back to dev version
pekkaklarck Jul 4, 2025
f0f09ab
Let's start RF 7.4 development
pekkaklarck Aug 25, 2025
3fdd8dd
Cleanup.
pekkaklarck Aug 25, 2025
02d6588
Libdoc: Exclude tags from priva kws in HTML output
pekkaklarck Aug 27, 2025
b9a2aff
Bump actions/checkout from 4 to 5 (#5483)
dependabot[bot] Aug 27, 2025
4a4a394
extract untrusted github.head_ref and github.ref_name inputs to envir…
gcanlin Aug 27, 2025
1494bdc
BuiltIn: Explicitly mark positional-only arguments
pekkaklarck Aug 27, 2025
d1a1cf4
Remove rflogs installation and execution step
mkorpela Aug 27, 2025
9b3381f
Remove acceptance test result archiving and rflogs
mkorpela Aug 27, 2025
fefbe21
Archive acceptance test results if job fails
mkorpela Aug 28, 2025
749eddc
Remove duplicate imports
pekkaklarck Aug 29, 2025
b4003c9
Add owner info to dynamic imports
pekkaklarck Aug 29, 2025
f676a11
Remove Jython compatibility in tests
pekkaklarck Sep 1, 2025
a44c474
Cleanup whitespace and case
pekkaklarck Sep 1, 2025
ede92c0
Emit warning if library is reimported with different args
pekkaklarck Sep 2, 2025
ce7f995
Enhance documentation related to importing same library multiple times
pekkaklarck Sep 2, 2025
0feb76b
Doc cleanup
pekkaklarck Sep 2, 2025
49c29af
Cleanup
pekkaklarck Sep 2, 2025
3545497
Update Python versions used by CI test runs
pekkaklarck Sep 3, 2025
8f0d098
Fix Python 3.14 version config
pekkaklarck Sep 3, 2025
53b260d
'3,14' -> '3.14' (#5435)
pekkaklarck Sep 3, 2025
ceb5314
VAR: Depecate scalars without value in non-local scope
pekkaklarck Sep 4, 2025
168dfc2
formatting
pekkaklarck Sep 5, 2025
0ec4807
Support `--no-status-rc` with `--help` and `--version`
pekkaklarck Sep 5, 2025
ee7b885
Bump actions/setup-python from 5.6.0 to 6.0.0 (#5493)
dependabot[bot] Sep 9, 2025
ce2f396
Bump actions/setup-node from 4 to 5 (#5494)
dependabot[bot] Sep 9, 2025
36dc874
Initial `Secret` implementation
aaltat Sep 9, 2025
850185a
Cleanup and performance optimization
pekkaklarck Sep 9, 2025
b11eadb
Cleanup related to issue #4537 and PR #5449
pekkaklarck Sep 9, 2025
c89833b
Fixes and enhancements to Secret.
pekkaklarck Sep 9, 2025
5ca887e
Secret: Simplify error reporting
pekkaklarck Sep 9, 2025
90c0d53
Fixes and enhancements to Secret tests (#4537)
pekkaklarck Sep 9, 2025
3f91560
Add type hints to DateTime library (#5488)
silentw0lf Sep 10, 2025
2b89117
Remove unused import
pekkaklarck Sep 10, 2025
a09415f
DateTime: Restrict accepted argument values with Literal.
pekkaklarck Sep 12, 2025
89edfe6
Make `robot.api.types` file, not directory, based module
pekkaklarck Sep 12, 2025
50b6c47
`robot.utils._secret` -> `robot.utils.secret`
pekkaklarck Sep 12, 2025
92bc1db
Avoid docutils configuration at module import time
pekkaklarck Sep 12, 2025
7c5c2c2
Add module needed in API doc generation
pekkaklarck Sep 12, 2025
c9bee80
regen
pekkaklarck Sep 13, 2025
d02a434
Minor API doc enhancement
pekkaklarck Sep 15, 2025
ddef0d3
Enhance `Secret` API docs
pekkaklarck Sep 15, 2025
93de8a9
Enhance Secret documentation
pekkaklarck Sep 16, 2025
2f42ee8
Minor tuning for Secret docs
pekkaklarck Sep 16, 2025
d77e75d
add transformer to trim html whitespace
yanne Sep 21, 2025
18ab362
libdoc: remove kludge
yanne Sep 21, 2025
f976ba0
libdoc: regen template
yanne Sep 21, 2025
09c23f0
libdoc: do not render empty importing section
yanne Sep 21, 2025
03b8ddc
libdoc: regen template
yanne Sep 21, 2025
2ba8187
updated npm packages
yanne Sep 21, 2025
b25a3ba
minor cleanup
pekkaklarck Sep 24, 2025
5c63de6
argumentfile.robot -> argument_file.robot
pekkaklarck Sep 24, 2025
a8a1192
refactor
pekkaklarck Sep 24, 2025
03aa465
Remove unnecessary is_falsy usage, fix doc
pekkaklarck Sep 25, 2025
f8e0b9e
Minor cleanup to code, tests and docs
pekkaklarck Sep 25, 2025
a6d8ac0
Support environment variables in argument files.
pekkaklarck Sep 25, 2025
803b953
Enhance tests for env vars in argument files
pekkaklarck Sep 25, 2025
5434d4c
Honor '-tag' syntax with keyword tags in documentation
pekkaklarck Sep 30, 2025
2056cb6
Support collapsing execution errors in log (#5016)
kiteretsu-daihyakka Oct 1, 2025
5d75fcd
Remove fallback PNG icons
pekkaklarck Oct 1, 2025
8d5475b
Log: Refactor showing execution errors
pekkaklarck Oct 1, 2025
b1fd6e9
Log: Fix suite, test, kw header misalignment
pekkaklarck Oct 1, 2025
0811db8
Log: Fine-tune execution errors
pekkaklarck Oct 1, 2025
bb50636
Drop "Test/Task" prefixes from report and log headers
pekkaklarck Oct 1, 2025
f26b81a
Fix "Test Details" header background when viewing details
pekkaklarck Oct 1, 2025
b8a56c2
Refactor LOGGER and its unit tests.
pekkaklarck Oct 2, 2025
2eec585
Fix disabling output file programmatically via LOGGER
pekkaklarck Oct 2, 2025
6fc156d
Fix #5500: event loop cannot re-initialize after finishing a suite (#…
maisonsmd Oct 3, 2025
27e7af9
Add tests for `robot.run` executing async keywords
pekkaklarck Oct 3, 2025
6cb8993
Release notes for 7.4b1
pekkaklarck Oct 6, 2025
1ebf548
Minor tuning/fixes for Secret variable docs
pekkaklarck Oct 6, 2025
67ff3a9
Add Arabic and Polish support to `Generate Random String` (#5109)
menium878 Oct 6, 2025
9390dd2
One more issue to RF 7.4b1
pekkaklarck Oct 6, 2025
d894d2f
Updated version to 7.4b1
pekkaklarck Oct 7, 2025
48a6862
Back to dev version
pekkaklarck Oct 7, 2025
aa9777d
Bump actions/setup-node from 5 to 6
dependabot[bot] Oct 14, 2025
eb0b325
Clarify --include/--exclude with listeners and modifiers
pekkaklarck Oct 19, 2025
648c45f
Fix using Secret with Libdoc (#5521)
aaltat Oct 19, 2025
da1f0d4
Add Secret support to selected OperatingSystem keywords (#5516)
oboehmer Oct 20, 2025
ffdea7e
Fixes and cleanup to Secret support in OperatingSystem
pekkaklarck Oct 20, 2025
31b5516
Change `str(Secret(...))` to `<secret>`
pekkaklarck Oct 22, 2025
ca86745
Add explicit no-op converter for `object`
pekkaklarck Oct 29, 2025
4d853f6
Align data
pekkaklarck Oct 30, 2025
de71308
Separate converters for Sequence and Mapping.
pekkaklarck Oct 31, 2025
998e6a0
Refactor
pekkaklarck Oct 31, 2025
fe978da
Allow any sequence literal in list, tuple and set conversion
pekkaklarck Oct 31, 2025
582910d
Simplify Secret doc in Libdoc
pekkaklarck Oct 31, 2025
db0f6d6
Update PyPy to 3.11 on CI
pekkaklarck Oct 31, 2025
a5da9f1
Remove empty lines and debug logging
pekkaklarck Oct 31, 2025
19e1d85
PyPy 3.11 compatibility in tests
pekkaklarck Oct 31, 2025
366b7f5
Accept interables in Sequnce, list, tuple and set conversion
pekkaklarck Nov 1, 2025
13ba0d3
Add Secret argument support for `Run Process` and `Start Process` key…
oboehmer Nov 1, 2025
421993a
Enhance typing
pekkaklarck Nov 1, 2025
d76f27c
Refactor hadling Secret arguments
pekkaklarck Nov 2, 2025
c3d3ba8
Add typing to Process library
pekkaklarck Nov 2, 2025
d9fe972
libdoc: fix formatting of union types
yanne Nov 2, 2025
c6452fb
libdoc: regen template
yanne Nov 2, 2025
e3e581d
Add typing to Dialogs
pekkaklarck Nov 2, 2025
a002f68
Add typing to Screenshot library
pekkaklarck Nov 2, 2025
20c3077
Fix Libdoc tests
pekkaklarck Nov 2, 2025
5188f37
Refactor tests
pekkaklarck Nov 3, 2025
469f3a8
LOGLEVEL -> LogLevel
pekkaklarck Nov 3, 2025
9a20252
Make deprecation of `Run` and others more explicit
pekkaklarck Nov 3, 2025
eb7d773
Add typing to OperatingSystem.
pekkaklarck Nov 3, 2025
6631a15
libdoc: fix typeinfo rendering for good
yanne Nov 4, 2025
d2b827f
libdoc: regen template
yanne Nov 4, 2025
5cdc0c4
Bump actions/upload-artifact from 4 to 5 (#5525)
dependabot[bot] Nov 5, 2025
2642026
fix minor error in get_variable_value docstring (#5511)
oboehmer Nov 5, 2025
a182b59
Add note about union conversion order
pekkaklarck Nov 4, 2025
53e3c50
Enhance documentation of new `loglevel.LogLevel`
pekkaklarck Nov 4, 2025
5b2bc8b
Revert change to accept Iterables in Sequence/Set conversion
pekkaklarck Nov 6, 2025
97161e8
libdoc: write generator correctly
yanne Nov 7, 2025
f089c2a
Merge pull request #5514 from robotframework/dependabot/github_action…
yanne Nov 7, 2025
f8ce19b
Support not printing errors and warnings to console (#5462)
adombeck Nov 7, 2025
4823722
Formatting
pekkaklarck Nov 7, 2025
1cf26b6
Fix and refactor logging, especially writing to console
pekkaklarck Nov 7, 2025
cd0ef71
Add annotations to Collections (#5528)
robinmackaij Nov 8, 2025
0c99a1b
Refactor
pekkaklarck Nov 8, 2025
7ad3aaa
Refactor tests
pekkaklarck Nov 8, 2025
54d5326
Little cleanup to Collections typing
pekkaklarck Nov 8, 2025
0fef52c
A bit more cleanup to Collections typing
pekkaklarck Nov 8, 2025
c934ad9
Test fix after typing change
pekkaklarck Nov 8, 2025
ebea6d9
Release notes for 7.4b2
pekkaklarck Nov 8, 2025
81792fa
Enhance Secret docs
pekkaklarck Nov 8, 2025
9286a86
Updated version to 7.4b2
pekkaklarck Nov 8, 2025
fac12f2
Back to dev version
pekkaklarck Nov 8, 2025
b93822a
7.4b2 -> 7.4 beta 2
pekkaklarck Nov 8, 2025
1fe78a0
Robot -> Robin :)
pekkaklarck Nov 8, 2025
b206c89
libdoc: regen template
yanne Nov 10, 2025
dbc28e7
fix spaces between libdoc tags
yanne Nov 12, 2025
bc1e6b8
libdoc: regen template
yanne Nov 12, 2025
8fb9977
remove accidentally added file
yanne Nov 13, 2025
4ee0523
Convert empty string to `None`
pekkaklarck Nov 13, 2025
15f38bc
Refactor
pekkaklarck Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Code formatting.
d2cdcfa9863e405983ecafc47e2e7e5af9da68f4
72 changes: 10 additions & 62 deletions .github/workflows/acceptance_tests_cpython.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -18,30 +19,26 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.11'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -53,7 +50,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -66,22 +63,16 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -92,52 +83,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v5
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
82 changes: 9 additions & 73 deletions .github/workflows/acceptance_tests_cpython_pr.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Acceptance tests (CPython + PyPy)
name: Acceptance tests (CPython)

on:
pull_request:
Expand All @@ -15,32 +15,23 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
python-version: [ '3.8', '3.13' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy2'
- os: windows-latest
python-version: 'pypy3'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -52,7 +43,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -65,22 +56,10 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -91,52 +70,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v5
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
24 changes: 7 additions & 17 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -19,35 +20,24 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.11'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'

- name: Run unit tests with coverage
- name: Run unit tests
run: |
python -m pip install coverage
python -m pip install -r utest/requirements.txt
python -m coverage run --branch utest/run.py -v

- name: Prepare HTML/XML coverage report
run: |
python -m coverage xml -i
if: always()

- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71
with:
name: ${{ matrix.python-version }}-${{ matrix.os }}
if: always()
python utest/run.py -v
9 changes: 3 additions & 6 deletions .github/workflows/unit_tests_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,16 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: [ '3.8', '3.13' ]

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand Down
10 changes: 0 additions & 10 deletions .github/workflows/upload_test_reports.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/web_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Web tests with jest

on:
push:
branches:
- main
- master
- v*-maintenance

paths:
- '.github/workflows/**'
- 'src/web**'
- '!**/*.rst'

jobs:
jest_tests:

runs-on: 'ubuntu-latest'

name: Jest tests for the web components
steps:
- uses: actions/checkout@v5

- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "16"
- name: Run tests
working-directory: ./src/web
run: npm install && npm run test
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ __pycache__
.classpath
.settings
.jython_cache
.mypy_cache/
node_modules
.cache/
.parcel-cache/
.claude/
Loading