]>
git.madduck.net Git - etc/vim.git/blobdiff - tests/optional.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
Adapted from https://pypi.org/project/pytest-optional-tests/, (c) 2019 Reece Hart
"""
Adapted from https://pypi.org/project/pytest-optional-tests/, (c) 2019 Reece Hart
"""
-from functools import lru_cache
import itertools
import logging
import re
import itertools
import logging
import re
-from typing import FrozenSet, List, Set, TYPE_CHECKING
+from functools import lru_cache
+from typing import TYPE_CHECKING, FrozenSet, List, Set
-from _pytest.store import StoreKey
+
+try:
+ from pytest import StashKey
+except ImportError:
+ # pytest < 7
+ from _pytest.store import StoreKey as StashKey # type: ignore[import, no-redef]
log = logging.getLogger(__name__)
if TYPE_CHECKING:
log = logging.getLogger(__name__)
if TYPE_CHECKING:
- from _pytest.config.argparsing import Parser
from _pytest.config import Config
from _pytest.config import Config
+ from _pytest.config.argparsing import Parser
from _pytest.mark.structures import MarkDecorator
from _pytest.nodes import Node
from _pytest.mark.structures import MarkDecorator
from _pytest.nodes import Node
-ALL_POSSIBLE_OPTIONAL_MARKERS = Store Key[FrozenSet[str]]()
-ENABLED_OPTIONAL_MARKERS = Store Key[FrozenSet[str]]()
+ALL_POSSIBLE_OPTIONAL_MARKERS = Stash Key[FrozenSet[str]]()
+ENABLED_OPTIONAL_MARKERS = Stash Key[FrozenSet[str]]()
def pytest_addoption(parser: "Parser") -> None:
def pytest_addoption(parser: "Parser") -> None:
enabled_optional_markers = store[ENABLED_OPTIONAL_MARKERS]
for item in items:
enabled_optional_markers = store[ENABLED_OPTIONAL_MARKERS]
for item in items:
- all_markers_on_test = set(m.name for m in item.iter_markers())
+ all_markers_on_test = {m.name for m in item.iter_markers()}
optional_markers_on_test = all_markers_on_test & all_possible_optional_markers
if not optional_markers_on_test or (
optional_markers_on_test & enabled_optional_markers
optional_markers_on_test = all_markers_on_test & all_possible_optional_markers
if not optional_markers_on_test or (
optional_markers_on_test & enabled_optional_markers