[Avocado-devel] Question about handling exception in tearDown()

Lukáš Doktor ldoktor at redhat.com
Fri Mar 27 08:47:37 UTC 2020


Dne 24. 03. 20 v 22:18 Pushpalogan napsal(a):
> Hello,
> 
> We have a test class that has a setUp and tearDown where setUp does mounting and tearDown does Unmounting. There are times when an unmounting of a directory fails and throws exception and I was wondering what is the best way to handle exceptions in tearDown and propagate that as an error so the test results are recorded appropriately. Currently that exception is being ignored by avocado and the test is marked as passed. Please let me know if you need additional information.
> 
> Thanks,
> Logan.
> 

Hello Pushpalogan,

that looks like a bug, can you please share the details about the exception that is being raised and the Avocado version you are using? I tried recent 2ca72aa8d2660655cf02a4639b4a1691cb15694f with:

diff --git a/examples/tests/passtest.py b/examples/tests/passtest.py
index b30acdef..27a70db2 100755
--- a/examples/tests/passtest.py
+++ b/examples/tests/passtest.py
@@ -11,6 +11,8 @@ class PassTest(Test):
 
     :avocado: tags=fast
     """
+    def tearDown(self):
+        raise Exception("testing exception")
 
     def test(self):
         """

and it correctly reports a test error:

avocado.test: INIT 1-examples/tests/passtest.py:PassTest.test
avocado.test: PARAMS (key=timeout, path=*, default=None) => None
avocado.test: Test metadata:
avocado.test:   filename: /home/medic/Work/Projekty/avocado/avocado/examples/tests/passtest.py
avocado.test:   teststmpdir: /var/tmp/avocado_tt9f9h2i
avocado.test:   workdir: /var/tmp/avocado_6l2ld5d7/avocado_job_81urykeg/1-examples_tests_passtest.py_PassTest.test
 (1/1) examples/tests/passtest.py:PassTest.test:  avocado.test: START 1-examples/tests/passtest.py:PassTest.test
avocado.test: DATA (filename=output.expected) => NOT FOUND (data sources: variant, test, file)
avocado.test: 
avocado.test: Reproduced traceback from: /home/medic/Work/Projekty/avocado/avocado/avocado/core/test.py:891
avocado.test: Traceback (most recent call last):
avocado.test:   File "/home/medic/Work/Projekty/avocado/avocado/examples/tests/passtest.py", line 15, in tearDown
avocado.test:     raise Exception("testing exception")
avocado.test: Exception: testing exception
avocado.test: 
avocado.test: DATA (filename=output.expected) => NOT FOUND (data sources: variant, test, file)
avocado.test: DATA (filename=stdout.expected) => NOT FOUND (data sources: variant, test, file)
avocado.test: DATA (filename=stderr.expected) => NOT FOUND (data sources: variant, test, file)
avocado.test: ERROR 1-examples/tests/passtest.py:PassTest.test -> TestSetupFail: testing exception
avocado.test: 
ERROR: testing exception (0.03 s)
avocado.test: Test results available in /home/medic/avocado/job-results/job-2020-03-27T09.45-ecb36b7
RESULTS    : PASS 0 | ERROR 1 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 0.13 s
avocado.sysinfo: Not logging /sys/kernel/debug/sched_features (file does not exist)
avocado.sysinfo: Not logging 'numactl --hardware show' (command 'numactl' was not found)
avocado.sysinfo: Not logging /proc/pci (file does not exist)
avocado.sysinfo: Not logging /proc/slabinfo (lack of permissions)
JOB HTML   : /home/medic/avocado/job-results/job-2020-03-27T09.45-ecb36b7/results.html


Regards,
Lukáš

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/avocado-devel/attachments/20200327/0ee2d64e/attachment.sig>


More information about the Avocado-devel mailing list