refactor ci helper to prepare for re-use

This commit is contained in:
David Szotten 2021-08-19 11:24:51 +00:00
parent 16077f2a65
commit 2367e6e9bf
2 changed files with 9 additions and 9 deletions

View File

@ -3,10 +3,10 @@
Current default behaviour is to truncate assertion explanations at Current default behaviour is to truncate assertion explanations at
~8 terminal lines, unless running in "-vv" mode or running on CI. ~8 terminal lines, unless running in "-vv" mode or running on CI.
""" """
import os
from typing import List from typing import List
from typing import Optional from typing import Optional
from _pytest.assertion import util
from _pytest.nodes import Item from _pytest.nodes import Item
@ -27,13 +27,7 @@ def truncate_if_required(
def _should_truncate_item(item: Item) -> bool: def _should_truncate_item(item: Item) -> bool:
"""Whether or not this test item is eligible for truncation.""" """Whether or not this test item is eligible for truncation."""
verbose = item.config.option.verbose verbose = item.config.option.verbose
return verbose < 2 and not _running_on_ci() return verbose < 2 and not util.running_on_ci()
def _running_on_ci() -> bool:
"""Check if we're currently running on a CI system."""
env_vars = ["CI", "BUILD_NUMBER"]
return any(var in os.environ for var in env_vars)
def _truncate_explanation( def _truncate_explanation(

View File

@ -1,5 +1,6 @@
"""Utilities for assertion debugging.""" """Utilities for assertion debugging."""
import collections.abc import collections.abc
import os
import pprint import pprint
from typing import AbstractSet from typing import AbstractSet
from typing import Any from typing import Any
@ -17,7 +18,6 @@ from _pytest._io.saferepr import safeformat
from _pytest._io.saferepr import saferepr from _pytest._io.saferepr import saferepr
from _pytest.config import Config from _pytest.config import Config
# The _reprcompare attribute on the util module is used by the new assertion # The _reprcompare attribute on the util module is used by the new assertion
# interpretation code and assertion rewriter to detect this plugin was # interpretation code and assertion rewriter to detect this plugin was
# loaded and in turn call the hooks defined here as part of the # loaded and in turn call the hooks defined here as part of the
@ -490,3 +490,9 @@ def _notin_text(term: str, text: str, verbose: int = 0) -> List[str]:
else: else:
newdiff.append(line) newdiff.append(line)
return newdiff return newdiff
def running_on_ci() -> bool:
"""Check if we're currently running on a CI system."""
env_vars = ["CI", "BUILD_NUMBER"]
return any(var in os.environ for var in env_vars)