[tbot] Composition of testcases
Stefano Babic
sbabic at denx.de
Mon Dec 3 15:13:35 UTC 2018
Hi,
it is not clear to me how I combine different testcases with different
parameter input. To make a concrete case, I have written a testcase that
update a board via SWUpdate using the Web interface. A second testcase
just check SWUpdate's version before running.
So I have the following testcases:
@tbot.testcase
def swupdateweb(
mach: typing.Optional[linux.LinuxMachine] = None,
ip = None,
path = None,
) -> None:
and:
@tbot.testcase
def checkswupdate(
mach: typing.Optional[linux.LinuxMachine] = None,
) -> None:
to run all of them, I have a "board" testcase where I list them as:
tc.testsuite(
checkswupdate,
swupdateweb, # noqa: F405
mach=lh,
path=path,
ip=ip
)
The thing is that "checkswupdate" fails because it gets unknown
parameters (path and ip). The update itseld ("swupdateweb") works.
stefano at papero:~/Projects/internal/tbot-denx$ tbot -b boards/gtu.py
gtuswupdate
Warning: Duplicate testcase 'checkswupdate'
Warning: Duplicate testcase 'swupdateweb'
tbot starting ...
├─Calling gtuswupdate ...
│ ├─POWERON (gtu)
│ ├─UBOOT (gtu-uboot)
│ ├─LINUX (gtu-linux)
│ ├─Calling testsuite ...
│ │ ├─Calling checkswupdate ...
│ │ │ └─Fail. (0.000s)
│ │ ├─Calling swupdateweb ...
│ │ │ ├─Start uploading image...
│ │ │ ├─Software image uploaded successfully. Wait for
installation to be finished...
│ │ │ │
│ │ │ ├─Wait update finished
│ │ │ ├─[network_initializer] : Valid image found: copying to FLASH
│ │ │ ├─Installation in progress
│ │ │ ├─SWUPDATE successful !
│ │ │ └─Done. (50.870s)
│ │ ├─────────────────────────────────────────
│ │ │ Failure: 1/2 tests failed
│ │ │
│ │ ├─checkswupdate:
│ │ │ Traceback (most recent call last):
│ │ │ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/tc/__init__.py",
line 12, in testsuite
│ │ │ test(**kwargs)
│ │ │ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/__init__.py",
line 55, in wrapped
│ │ │ result = tc(*args, **kwargs)
│ │ │ TypeError: checkswupdate() got an unexpected keyword argument
'path'
│ │ │
│ │ └─Fail. (50.872s)
│ ├─POWEROFF (gtu)
│ └─Fail. (79.512s)
├─Exception:
│ Traceback (most recent call last):
│ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/main.py",
line 220, in main
│ testcases[tc]()
│ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/__init__.py",
line 55, in wrapped
│ result = tc(*args, **kwargs)
│ File
"/home/stefano/Projects/internal/tbot-denx/tc/gtuswupdate.py", line 32,
in gtuswupdate
│ ip=ip
│ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/__init__.py",
line 55, in wrapped
│ result = tc(*args, **kwargs)
│ File
"/home/stefano/.local/lib/python3.6/site-packages/tbot-0.6.3-py3.6.egg/tbot/tc/__init__.py",
line 31, in testsuite
│ raise Exception(f"{len(errors)}/{len(args)} tests failed")
│ Exception: 1/2 tests failed
├─────────────────────────────────────────
├─Log written to
'/home/stefano/Projects/internal/tbot-denx/log/none-gtu-0039.json'
└─FAILURE (79.646s)
It is clear why it fials, but it seems to me quite normal that testcases
have different set of parameters. Which is the solution ?
Best regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the tbot
mailing list