Skip to main content
Glama
test_cgm.py1.98 kB
import unittest from unittest.mock import patch, MagicMock import sys import os from datetime import datetime # Add src to path sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../src'))) from cgm.nightscout import NightscoutClient from cgm.dexcom import DexcomClient class TestNightscout(unittest.TestCase): def setUp(self): self.url = "https://my-nightscout.herokuapp.com" self.client = NightscoutClient(self.url) @patch('requests.get') def test_fetch_sgv_success(self, mock_get): mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = [{ "sgv": 150, "direction": "Flat", "dateString": "2025-12-25T15:00:00.000Z", "delta": 2 }] mock_get.return_value = mock_response entries = self.client.get_sgv(count=1) self.assertEqual(len(entries), 1) self.assertEqual(entries[0]['sgv'], 150) class TestDexcom(unittest.TestCase): def setUp(self): self.client = DexcomClient("user", "pass") @patch('cgm.dexcom.Dexcom') def test_get_latest_glucose_success(self, mock_dexcom_cls): # Mock Dexcom instance and return value mock_instance = mock_dexcom_cls.return_value # Mock GlucoseReading object mock_reading = MagicMock() mock_reading.value = 120 mock_reading.trend_description = "flat" mock_reading.trend_arrow = "→" mock_reading.datetime = datetime(2025, 12, 25, 12, 0, 0) mock_reading.trend_direction = 1 mock_instance.get_current_glucose_reading.return_value = mock_reading result = self.client.get_latest_glucose() self.assertIsNotNone(result) self.assertEqual(result['sgv'], 120) self.assertEqual(result['direction'], "flat") self.assertEqual(result['time'], "2025-12-25 12:00:00") if __name__ == '__main__': unittest.main()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JunHyungKang/t1d-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server