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