]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tests: fix pytest API "surprise" in skipping tests
authorDavid Lamparter <equinox@opensourcerouting.org>
Tue, 11 Jul 2017 12:53:31 +0000 (14:53 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Tue, 11 Jul 2017 13:00:26 +0000 (15:00 +0200)
pytest.mark.skipif apparently iterates through a class's methods,
applying itself onto the various methods.  Now, since we're deriving
from a parent class, the method is actually the same object inherited
from the parent, so the decorator will apply itself on the parent's
testrunning method (test_refout).  The result is that any TestRefout
tests after "test_commands.py" will be skipped...

This only became apparent after adding ospf6d/test_lsdb.py;  before,
test_commands.py was the last test in the list so it didn't matter...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
tests/lib/cli/test_commands.py

index 85e34fa15bd0d1d5fac719635b1c47727edcecd6..bda0bbac44ebdf0cdf1ea8c9cfc68988818b62bc 100644 (file)
@@ -2,7 +2,10 @@ import frrtest
 import pytest
 import os
 
-@pytest.mark.skipif('QUAGGA_TEST_COMMANDS' not in os.environ,
-                    reason='QUAGGA_TEST_COMMANDS not set')
 class TestCommands(frrtest.TestRefOut):
     program = './test_commands'
+
+    @pytest.mark.skipif('QUAGGA_TEST_COMMANDS' not in os.environ,
+                        reason='QUAGGA_TEST_COMMANDS not set')
+    def test_refout(self):
+        return super(TestCommands, self).test_refout(self)