Skip to content

Commit

Permalink
Aligning python signature with os-autoinst limitations
Browse files Browse the repository at this point in the history
Python test modules do not support any other argument but `self`.

This limitation is enforced now in os-autoinst and now documented
in the docs.
  • Loading branch information
josegomezr committed Oct 23, 2023
1 parent 7610667 commit 7e12d16
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions docs/WritingTests.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ And here is an example in Python:
-------------------------------------------------------------------
from testapi import *
def run(*_):
def run(self):
# write in this block the code for your test.
-------------------------------------------------------------------

Expand All @@ -76,7 +76,7 @@ _Please note that the subroutine marked with `*1` are optional._
[source,python]
-------------------------------------------------------------------
# Written in type-hinted python to indicate explicitly return types
def run(*_):
def run(self):
def test_flags(): -> dict # *1
def post_fail_hook(): -> None # *1
def pre_run_hook(): -> None # *1
Expand Down Expand Up @@ -222,7 +222,7 @@ from testapi import *
# [...] omitted for brevity
def run(*_):
def run(self):
perl.require('x11utils')
# Start vncviewer - notice the named arguments passed as positional arguments
Expand All @@ -235,10 +235,12 @@ def run(*_):
# [...] omitted for brevity
-------------------------------------------------------------------

Additionally, the `run` method in Python is not able to handle any argument
passed. Due to how `Inline::Python` handles arguments passing between Perl <->
Python, references to complex Perl objects do not reach python properly and
they can't be used.
Additionally, Python tests do not support `run_args`. An error will be present
when a python test detects the presence of `run_args` on schedule.

This is because of the way `Inline::Python` handles arguments passing between
Perl <-> Python, references to complex Perl objects do not reach python
properly and they can't be used.

=== Example Perl test modules
[id="testmodule_perl_examples"]
Expand Down Expand Up @@ -359,7 +361,7 @@ implementing the interface described above.
--------------------------------------------------------------
from testapi import *
def run(*_):
def run(self):
assert_screen('openqa-logged-in')
assert_and_click('openqa-search')
type_string('shutdown.pm')
Expand Down

0 comments on commit 7e12d16

Please sign in to comment.