[{'Text': 'Command "uv run pytest tests/test_gbs_tools.py -v 2>&1" failed with exit code 1.\n\n```\n🪄 .zshrc loaded successfully! (modular edition)\n/Users/peterdonaghey/miniconda3/lib/python3.12/site-packages/pytest_asyncio/plugin.py:247: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.\nThe event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"\n\n  warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))\n======================================= test session starts ========================================\nplatform darwin -- Python 3.12.2, pytest-8.3.3, pluggy-1.5.0 -- /Users/peterdonaghey/miniconda3/bin/python\ncachedir: .pytest_cache\nrootdir: /Users/peterdonaghey/Projects/point-topic-mcp\nconfigfile: pyproject.toml\nplugins: logfire-4.18.0, jaxtyping-0.2.31, devtools-0.12.2, mockito-0.0.4, asyncio-1.3.0, typeguard-4.4.4, anyio-4.13.0\nasyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollected 11 items\n\ntests/test_gbs_tools.py::test_gbs_get_status_country_level PASSED                            [  9%]\ntests/test_gbs_tools.py::test_gbs_get_status_operator_not_found PASSED                       [ 18%]\ntests/test_gbs_tools.py::test_gbs_get_status_operator_level FAILED                           [ 27%]\ntests/test_gbs_tools.py::test_gbs_get_status_operator_staleness PASSED                       [ 36%]\ntests/test_gbs_tools.py::test_gbs_add_statistic_validation PASSED                            [ 45%]\ntests/test_gbs_tools.py::test_gbs_add_statistic_success PASSED                               [ 54%]\ntests/test_gbs_tools.py::test_gbs_add_statistic_duplicate_rejected PASSED                    [ 63%]\ntests/test_gbs_tools.py::test_gbs_create_source_validation PASSED                            [ 72%]\ntests/test_gbs_tools.py::test_gbs_create_source_success PASSED                               [ 81%]\ntests/test_gbs_tools.py::test_gbs_create_source_duplicate_rejected PASSED                    [ 90%]\ntests/test_gbs_tools.py::test_discovery_uses_prefix PASSED                                   [100%]\n\n============================================= FAILURES =============================================\n________________________________ test_gbs_get_status_operator_level ________________________________\n\ngbs_env = <module \'point_topic_mcp.tools.gbs_tools\' from \'/Users/peterdonaghey/Projects/point-topic-mcp/src/point_topic_mcp/tools/gbs_tools.py\'>\n\n    def test_gbs_get_status_operator_level(gbs_env):\n        """Operator-level: returns records, gaps, state breakdown, admin URL."""\n        gbs = gbs_env\n        op_id = ObjectId()\n        mock_stats = [\n            {"type": "broadband", "tech": "FTTP", "channel": "Infrastructure",\n             "domain": "Residential", "subscribers": 100000, "state": 1},\n        ]\n        mock_docs = [{\n            "_id": {"$oid": str(op_id)},\n            "name": "TestOp",\n            "techs": ["FTTP", "FTTC"],\n            "statCount": 1,\n            "stats": mock_stats,\n        }]\n        mock_return = json.dumps({"currentPeriod": "2025Q1", "targetPeriod": "2025Q1", "docs": mock_docs})\n\n        with patch("point_topic_mcp.core.mongodb_utils._run_mongosh", return_value=mock_return):\n            result = gbs.gbs_get_status(country="UK", operator="TestOp")\n            assert "GBS STATUS: TestOp (UK)" in result\n>           assert "ID:       " + str(op_id) in result\nE           AssertionError: assert (\'ID:       \' + \'6a070912d85a318c8edfaf43\') in \'GBS STATUS: TestOp (UK) — 2025Q1\\n\\nID:        6a070912d85a318c8edfaf43\\nTechs:     FTTP, FTTC\\nRecords:   1 | Filled: 1 combos | Gaps: 17\\nStates:    pending: 1\\nBy type:   broadband: 1\\nAdmin:     https://pt-research-app.vercel.app/operators/6a070912d85a318c8edfaf43/statistics\\n\\nEXISTING RECORDS:\\n  broadband  FTTP               Infrastructure  Residential     100,000  pending\\n\\nGAPS (17):\\n  broadband/FTTP/Infrastructure/Business\\n  broadband/FTTP/Infrastructure/Total\\n  broadband/FTTP/Retail/Residential\\n  broadband/FTTP/Retail/Business\\n  broadband/FTTP/Retail/Total\\n  mobile/FTTP/Infrastructure/Residential\\n  mobile/FTTP/Infrastructure/Business\\n  mobile/FTTP/Infrastructure/Total\\n  mobile/FTTP/Retail/Residential\\n  mobile/FTTP/Retail/Business\\n  mobile/FTTP/Retail/Total\\n  iptv/FTTP/Infrastructure/Residential\\n  iptv/FTTP/Infrastructure/Business\\n  iptv/FTTP/Infrastructure/Total\\n  iptv/FTTP/Retail/Residential\\n  iptv/FTTP/Retail/Business\\n  iptv/FTTP/Retail/Total\\n\'\nE            +  where \'6a070912d85a318c8edfaf43\' = str(ObjectId(\'6a070912d85a318c8edfaf43\'))\n\ntests/test_gbs_tools.py:80: AssertionError\n-------------------------------------- Captured stdout setup ---------------------------------------\n[MCP] Registering gbs_tools: env vars [\'PT_RESEARCH_DATABASE_URI\'] ✓\n===================================== short test summary info ======================================\nFAILED tests/test_gbs_tools.py::test_gbs_get_status_operator_level - AssertionError: assert (\'ID:       \' + \'6a070912d85a318c8edfaf43\') in \'GBS STATUS: TestOp (UK) ...\n=================================== 1 failed, 10 passed in 1.29s ===================================\n```'}]