lib: gs: abort if called unmocked & network tests disabled
We don't want tests trying to use the network when the test hasn't
been marked as a network test. To that end, have the GS code abort
if it isn't mocked and if run_tests isn't run with --network. This
caught a few tests that were relying on the network namespace to
not let them actually hit the network.
BUG=None
TEST=CQ passes
Change-Id: I1a0718e17aac5888145141a939433068ccf5f22f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4678097
Reviewed-by: Anuj Jamwal <anujjamwal@google.com>
Commit-Queue: Anuj Jamwal <anujjamwal@google.com>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/conftest.py b/conftest.py
index d92cf1a..f5ae5a8 100644
--- a/conftest.py
+++ b/conftest.py
@@ -17,6 +17,7 @@
import chromite as cr
from chromite.lib import cidb
+from chromite.lib import cros_test_lib
from chromite.lib import parallel
from chromite.lib import retry_stats
from chromite.lib.parser import package_info
@@ -201,8 +202,20 @@
@pytest.fixture
def run_mock():
"""Robust mock for cros_build_lib.run."""
- from chromite.lib import cros_test_lib
-
with cros_test_lib.RunCommandMock() as rc_mock:
rc_mock.SetDefaultCmdResult()
yield rc_mock
+
+
+@pytest.fixture(scope="session", autouse=True)
+def _check_network_test(request):
+ """Detect whether the test uses network_test marker.
+
+ This can be helpful for code to detect when network traffic is attempted but
+ network tests weren't requested which indicates a bad test -- one that needs
+ to be decorated with @cros_test_lib.pytestmark_network_test.
+ """
+ for item in request.session.items:
+ if item.get_closest_marker("network_test") is not None:
+ cros_test_lib.NETWORK_TESTS_ENABLED = True
+ break