test_scoped_clients.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import unittest
  2. from services.scoped_api_client import ScopedApiClient
  3. class FakeTransport:
  4. def __init__(self):
  5. self.calls = []
  6. def post_json(self, url, payload, headers, timeout):
  7. self.calls.append((url, payload, headers, timeout))
  8. return {'code': 'MCP_0000', 'data': {'ok': True}}
  9. class ScopedApiClientTest(unittest.TestCase):
  10. def test_call_tool_uses_explicit_token_not_global_store(self):
  11. transport = FakeTransport()
  12. client = ScopedApiClient('https://tools.example.com', transport=transport, timeout=7)
  13. response = client.call_tool(
  14. token='MT_employee_a',
  15. tool_code='query_order',
  16. route_path='/mcp/tools/queryOrder',
  17. payload={'keyword': 'USC'},
  18. request_id='rq_public_1',
  19. )
  20. self.assertEqual('MCP_0000', response['code'])
  21. url, payload, headers, timeout = transport.calls[0]
  22. self.assertEqual('https://tools.example.com/mcp/tools/queryOrder', url)
  23. self.assertEqual('Bearer MT_employee_a', headers['Authorization'])
  24. self.assertEqual('query_order', headers['X-MCP-Tool-Code'])
  25. self.assertEqual('rq_public_1', headers['X-Request-Id'])
  26. self.assertEqual(7, timeout)
  27. if __name__ == '__main__':
  28. unittest.main()