[Avocado-devel] subclassing avocado
Brian J. Murrell
brian at interlinx.bc.ca
Tue Nov 6 17:24:46 UTC 2018
On Tue, 2018-11-06 at 17:20 +0100, Lukáš Doktor wrote:
>
> The ":avocado: recursive" is used for test discovery. The main
> difference is that for test discovery we don't load the modules.
> Instead we use static analysis (using `ast`) to detect whether
> certain file is python and contains something inherited from
> `avocado.Test`.
Ahhh.
So that might be related to the issue I'm having:
util/apricot/apricot/__init__.py:
```
__all__ = ['ApricotTest']
from apricot.test import ApricotTest
```
util/apricot/apricot/test.py:
```from avocado import Test
class ApricotTest(Test):
def setUp(self):
self.log.info("setUp() executed from Apricot")
def some_useful_method(self):
return True
```
avocado detects that:
util/apricot/test_example.py
```
#!/usr/bin/python
'''
bla bla bla
'''
import sys
sys.path.append('./')
from apricot import ApricotTest
class MyTest(ApricotTest):
"""
:avocado: recursive
"""
def setUp(self):
super(MyTest, self).setUp()
self.log.info("setUp() executed from test_example.py")
def test(self):
"""
:avocado: tags=all
"""
print "test()"
self.assertTrue(self.some_useful_method())
```
is an instrumented avocado test and produces:
```
2018-11-06 12:16:34,560 test L0240 INFO | START 1-util/apricot/test_example.py:MyTest.test
2018-11-06 12:16:34,695 test L0005 INFO | setUp() executed from Apricot
2018-11-06 12:16:34,695 test_example L0018 INFO | setUp() executed from test_example.py
2018-11-06 12:16:34,695 output L0655 DEBUG| test()
```
However when much the same file is in a different location outside of
the apricot/ dir:
./test_example.py
```
#!/usr/bin/python
'''
bla bla bla
'''
import sys
sys.path.append('./util/apricot')
from apricot import ApricotTest
class MyTest(ApricotTest):
"""
:avocado: recursive
"""
def setUp(self):
super(MyTest, self).setUp()
self.log.info("setUp() executed from test_example.py")
def test(self):
"""
:avocado: tags=all
"""
print "test()"
self.assertTrue(self.some_useful_method())
```
is not detected as an instrumented test and it runs it as a simple
test:
```
2018-11-06 12:22:51,764 test L0240 INFO | START 1-test_example.py
2018-11-06 12:22:51,898 process L0389 INFO | Running '/home/brian/test_example.py'
2018-11-06 12:22:52,275 process L0499 INFO | Command '/home/brian/test_example.py' finished with 0 after 0.372878074646s
2018-11-06 12:22:52,276 test L0858 INFO | Exit status: 0
```
Why is the latter not being detected as an instrumented avocado test?
Cheers,
b.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/avocado-devel/attachments/20181106/aac094d0/attachment.sig>
More information about the Avocado-devel
mailing list