def pytest_runtest_setup(item: Function) -> None: if ("skip_on_windows" in [mark.name for mark in item.iter_markers()] and sys.platform == "win32"): pytest.skip("cannot run on Windows") if "skip_on_ci" in [ mark.name for mark in item.iter_markers() ] and os.environ.get("CI") in ["true", "True", "yes", "t", "1"]: pytest.skip("cannot run on CI")
def _add_xfail_markers(item: Function) -> None: """ Mute flaky Integration Tests with custom pytest marker. Rationale for doing this is mentioned at DCOS-45308. """ xfailflake_markers = [ marker for marker in item.iter_markers() if marker.name == 'xfailflake' ] for xfailflake_marker in xfailflake_markers: assert 'reason' in xfailflake_marker.kwargs assert 'jira' in xfailflake_marker.kwargs assert xfailflake_marker.kwargs['jira'].startswith('DCOS') # Show the JIRA in the printed reason. xfailflake_marker.kwargs['reason'] = '{jira} - {reason}'.format( jira=xfailflake_marker.kwargs['jira'], reason=xfailflake_marker.kwargs['reason'], ) date_text = xfailflake_marker.kwargs['since'] try: datetime.datetime.strptime(date_text, '%Y-%m-%d') except ValueError: message = ( 'Incorrect date format for "since", should be YYYY-MM-DD') raise ValueError(message) # The marker is not "strict" unless that is explicitly stated. # That means that by default, no error is raised if the test passes or # fails. strict = xfailflake_marker.kwargs.get('strict', False) xfailflake_marker.kwargs['strict'] = strict xfail_marker = pytest.mark.xfail( *xfailflake_marker.args, **xfailflake_marker.kwargs, ) item.add_marker(xfail_marker)
def pytest_runtest_setup(item: Function) -> None: if ( "skip_on_windows" in [mark.name for mark in item.iter_markers()] and sys.platform == "win32" ): pytest.skip("cannot run on Windows")