From be28a243b2ca27a569cb732003e3ebde69ed75b7 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 2 Jul 2015 00:05:49 -0400 Subject: Improved coverage for tests, handle multiple pytest.mark.supported decorators on one function --- tests/test_interfaces.py | 2 ++ tests/utils.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/test_interfaces.py b/tests/test_interfaces.py index 4d571ea6..329ac7db 100644 --- a/tests/test_interfaces.py +++ b/tests/test_interfaces.py @@ -36,6 +36,7 @@ class TestVerifyInterface(object): def method(self): """Method with no arguments""" + NonImplementer().method() with pytest.raises(InterfaceNotImplemented): verify_interface(SimpleInterface, NonImplementer) @@ -51,4 +52,5 @@ class TestVerifyInterface(object): def property(self): """A concrete property""" + NonImplementer().property verify_interface(SimpleInterface, NonImplementer) diff --git a/tests/utils.py b/tests/utils.py index 8be5c1fa..c810303e 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -53,7 +53,10 @@ def skip_if_empty(backend_list, required_interfaces): def check_backend_support(item): supported = item.keywords.get("supported") if supported and "backend" in item.funcargs: - if not supported.kwargs["only_if"](item.funcargs["backend"]): + if not all( + mark.kwargs["only_if"](item.funcargs["backend"]) + for mark in supported + ): pytest.skip("{0} ({1})".format( supported.kwargs["skip_message"], item.funcargs["backend"] )) -- cgit v1.2.3 From cc04d679b81bcd69370ddc79c651e5e8a656ef04 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 2 Jul 2015 00:06:18 -0400 Subject: comment --- tests/test_interfaces.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_interfaces.py b/tests/test_interfaces.py index 329ac7db..bdb4a94d 100644 --- a/tests/test_interfaces.py +++ b/tests/test_interfaces.py @@ -36,6 +36,7 @@ class TestVerifyInterface(object): def method(self): """Method with no arguments""" + # Invoke this to ensure the line is covered NonImplementer().method() with pytest.raises(InterfaceNotImplemented): verify_interface(SimpleInterface, NonImplementer) @@ -52,5 +53,6 @@ class TestVerifyInterface(object): def property(self): """A concrete property""" + # Invoke this to ensure the line is covered NonImplementer().property verify_interface(SimpleInterface, NonImplementer) -- cgit v1.2.3 From 50ebb489852b8c9dd02d08e09375aa00859999bf Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 2 Jul 2015 00:21:41 -0400 Subject: fixed tests --- tests/test_utils.py | 4 ++-- tests/utils.py | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tests/test_utils.py b/tests/test_utils.py index 8601d11d..f71264ea 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -85,7 +85,7 @@ def test_check_backend_support_skip(): supported = pretend.stub( kwargs={"only_if": lambda backend: False, "skip_message": "Nope"} ) - item = pretend.stub(keywords={"supported": supported}, + item = pretend.stub(keywords={"supported": [supported]}, funcargs={"backend": True}) with pytest.raises(pytest.skip.Exception) as exc_info: check_backend_support(item) @@ -96,7 +96,7 @@ def test_check_backend_support_no_skip(): supported = pretend.stub( kwargs={"only_if": lambda backend: True, "skip_message": "Nope"} ) - item = pretend.stub(keywords={"supported": supported}, + item = pretend.stub(keywords={"supported": [supported]}, funcargs={"backend": True}) assert check_backend_support(item) is None diff --git a/tests/utils.py b/tests/utils.py index c810303e..5083d48c 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -53,13 +53,11 @@ def skip_if_empty(backend_list, required_interfaces): def check_backend_support(item): supported = item.keywords.get("supported") if supported and "backend" in item.funcargs: - if not all( - mark.kwargs["only_if"](item.funcargs["backend"]) - for mark in supported - ): - pytest.skip("{0} ({1})".format( - supported.kwargs["skip_message"], item.funcargs["backend"] - )) + for mark in supported: + if not mark.kwargs["only_if"](item.funcargs["backend"]): + pytest.skip("{0} ({1})".format( + mark.kwargs["skip_message"], item.funcargs["backend"] + )) elif supported: raise ValueError("This mark is only available on methods that take a " "backend") -- cgit v1.2.3