From 6d996834f33c4e24f13d5366f40dd488d1e05595 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Wed, 1 Mar 2023 04:58:48 +0900 Subject: [PATCH] unittest.expectedFailureIf --- Lib/unittest/__init__.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py index 005d23f6d..7ab3f5e87 100644 --- a/Lib/unittest/__init__.py +++ b/Lib/unittest/__init__.py @@ -96,3 +96,19 @@ def __getattr__(name): from .async_case import IsolatedAsyncioTestCase return IsolatedAsyncioTestCase raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +# XXX: RUSTPYTHON +# This is very useful to reduce platform difference boilerplates in tests. +def expectedFailureIf(condition, reason): + assert reason.startswith("TODO: RUSTPYTHON") + if condition: + return expectedFailure + else: + return lambda x: x + +# XXX: RUSTPYTHON +# Even more useful because most of them are windows only. +def expectedFailureIfWindows(reason): + import sys + return expectedFailureIf(sys.platform == 'win32', reason)