From 307cd6630f6a6b39228dd21bd15ca478fd612a0d Mon Sep 17 00:00:00 2001 From: Jeffrey Rackauckas Date: Sun, 25 Feb 2018 22:38:25 -0800 Subject: [PATCH 1/4] Add the ability to use platform in pytest.mark.skipif --- _pytest/mark/evaluate.py | 3 ++- changelog/3236.trivial.rst | 1 + testing/test_skipping.py | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 changelog/3236.trivial.rst diff --git a/_pytest/mark/evaluate.py b/_pytest/mark/evaluate.py index f84d7455d6d..295373e17c6 100644 --- a/_pytest/mark/evaluate.py +++ b/_pytest/mark/evaluate.py @@ -1,6 +1,7 @@ import os import six import sys +import platform import traceback from . import MarkDecorator, MarkInfo @@ -67,7 +68,7 @@ def istrue(self): pytrace=False) def _getglobals(self): - d = {'os': os, 'sys': sys, 'config': self.item.config} + d = {'os': os, 'sys': sys, 'platform': platform, 'config': self.item.config} if hasattr(self.item, 'obj'): d.update(self.item.obj.__globals__) return d diff --git a/changelog/3236.trivial.rst b/changelog/3236.trivial.rst new file mode 100644 index 00000000000..75830d453a0 --- /dev/null +++ b/changelog/3236.trivial.rst @@ -0,0 +1 @@ +Add the usage of ``platform`` in ``pytest.mark.skipif`` \ No newline at end of file diff --git a/testing/test_skipping.py b/testing/test_skipping.py index db4e6d3f7c9..08581e9055f 100644 --- a/testing/test_skipping.py +++ b/testing/test_skipping.py @@ -612,6 +612,16 @@ def test_that(): ]) assert result.ret == 0 + def test_skipif_using_platform(self, testdir): + item = testdir.getitem(""" + import pytest + @pytest.mark.skipif("platform.platform() == platform.platform()") + def test_func(): + pass + """) + pytest.raises(pytest.skip.Exception, lambda: + pytest_runtest_setup(item)) + @pytest.mark.parametrize('marker, msg1, msg2', [ ('skipif', 'SKIP', 'skipped'), ('xfail', 'XPASS', 'xpassed'), From a6762f7328903af8157c4c120dda4f17f3a0f99f Mon Sep 17 00:00:00 2001 From: Jeffrey Rackauckas Date: Mon, 26 Feb 2018 19:11:13 -0800 Subject: [PATCH 2/4] Update test_skipping to test that platform can be used in xfail --- testing/test_skipping.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/testing/test_skipping.py b/testing/test_skipping.py index 08581e9055f..1abf4fcf6f9 100644 --- a/testing/test_skipping.py +++ b/testing/test_skipping.py @@ -156,6 +156,21 @@ def test_func(): assert callreport.passed assert callreport.wasxfail == "this is an xfail" + def test_xfail_use_platform(self, testdir): + """ + Verify that platform can be used with xfail statements. + """ + item = testdir.getitem(""" + import pytest + @pytest.mark.xfail("platform.platform() == platform.platform()") + def test_func(): + assert 0 + """) + reports = runtestprotocol(item, log=False) + assert len(reports) == 3 + callreport = reports[1] + assert callreport.wasxfail + def test_xfail_xpassed_strict(self, testdir): item = testdir.getitem(""" import pytest From f6ad25928e8c388b07cc45e9a594ba2c5c1b28d5 Mon Sep 17 00:00:00 2001 From: Jeffrey Rackauckas Date: Mon, 26 Feb 2018 19:15:10 -0800 Subject: [PATCH 3/4] Fixing grammar. --- changelog/3236.trivial.rst | 2 +- testing/test_skipping.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/changelog/3236.trivial.rst b/changelog/3236.trivial.rst index 75830d453a0..841ba750091 100644 --- a/changelog/3236.trivial.rst +++ b/changelog/3236.trivial.rst @@ -1 +1 @@ -Add the usage of ``platform`` in ``pytest.mark.skipif`` \ No newline at end of file +Add the usage of ``platform`` in ``pytest.mark`` \ No newline at end of file diff --git a/testing/test_skipping.py b/testing/test_skipping.py index 1abf4fcf6f9..fc9230eda74 100644 --- a/testing/test_skipping.py +++ b/testing/test_skipping.py @@ -156,7 +156,7 @@ def test_func(): assert callreport.passed assert callreport.wasxfail == "this is an xfail" - def test_xfail_use_platform(self, testdir): + def test_xfail_using_platform(self, testdir): """ Verify that platform can be used with xfail statements. """ From 9479bda39215505562b5fd65512d8833ccffc273 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Tue, 27 Feb 2018 07:03:20 -0300 Subject: [PATCH 4/4] Adjust the CHANGELOG --- changelog/3236.trivial.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/3236.trivial.rst b/changelog/3236.trivial.rst index 841ba750091..0fd9c9b5819 100644 --- a/changelog/3236.trivial.rst +++ b/changelog/3236.trivial.rst @@ -1 +1 @@ -Add the usage of ``platform`` in ``pytest.mark`` \ No newline at end of file +The builtin module ``platform`` is now available for use in expressions in ``pytest.mark``.