Petr Viktorin wrote:
Can you spot the bug in this test code?

try:
do_invalid_operation()
except ExpectedError:
pass


Our test suite had several of those.
Nose provides nice tools, `raises` (a decorator) and `assert_raises` (a
context manager) that make checking expected exceptions a lot easier and
less error-prone. This patch makes our tests use them.

If you didn't catch it, the error is that the test will pass when no
exception is raised. Some of our tests handled that by adding an `else:
assert False`, or an `assert False` at the end of the try block.
For consistency, the patch switches these correct ones to
raises/assert_raises as well.

I've also uncovered and fixed a few test bugs that were hidden by this.



test_1a_automountmap_add_indirect() was failing, checking for the wrong exception.

I also suggest using @raises for clarity in another spot. Here are my suggested changes:

diff --git a/tests/test_xmlrpc/test_automount_plugin.py b/tests/test_xmlrpc/test
_automount_plugin.py
index 6abc44f..dedd234 100644
--- a/tests/test_xmlrpc/test_automount_plugin.py
+++ b/tests/test_xmlrpc/test_automount_plugin.py
@@ -79,12 +79,12 @@ class test_automount(XMLRPC_test):
         assert res
         assert_attr_equal(res, 'automountkey', self.keyname)

+    @raises(errors.DuplicateEntry)
     def test_4_automountkey_add(self):
         """
Test adding a duplicate key using `xmlrpc.automountkey_add` method.
         """
-        with assert_raises(errors.DuplicateEntry):
- api.Command['automountkey_add'](self.locname, self.mapname, **self.
key_kw)
+ res = api.Command['automountkey_add'](self.locname, self.mapname, **sel
f.key_kw)

     def test_5_automountmap_show(self):
         """
@@ -247,12 +247,12 @@ class test_automount_indirect(XMLRPC_test):
         assert res
         assert_attr_equal(res, 'automountmapname', self.mapname)

+    @raises(errors.DuplicateEntry)
     def test_1a_automountmap_add_indirect(self):
         """
         Test adding a duplicate indirect map.
         """
-        with assert_raises(errors.NotFound):
- api.Command['automountmap_add_indirect'](self.locname, self.mapname
, **self.map_kw)['result']
+ api.Command['automountmap_add_indirect'](self.locname, self.mapname, **
self.map_kw)['result']

     def test_2_automountmap_show(self):
         """


_______________________________________________
Freeipa-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to