Skip to content

Commit 4409b78

Browse files
committed
add completed extended bolus test
1 parent e52cd73 commit 4409b78

File tree

4 files changed

+83
-84
lines changed

4 files changed

+83
-84
lines changed

tconnectsync/domain/therapy_event.py

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ def parse(self, json):
1919
self.eventDateTime = json['eventDateTime']
2020
self.sourceRecId = json['sourceRecId']
2121
self.rawJson = json
22+
23+
def __str__(self):
24+
return "%s(%s)" % (self.type, self.rawJson)
2225

2326
class CGMTherapyEvent(TherapyEvent):
2427
eventID = None

tconnectsync/sync/bolus.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ def process_bolus_events(bolusdata, cgmEvents=None, source=""):
4040
elif not parsed.bolex_start_time and parsed.request_time:
4141
logger.warning("Setting bolex_start_time to request_time for non-completed %s extended bolus: %s parsed: %s" % (source, b, parsed))
4242
parsed.bolex_start_time = parsed.request_time
43-
logger.debug("process_bolus_events for incomplete bolus: %s parsed: %s" % (b.rawJson, parsed))
43+
logger.debug("process_bolus_events for incomplete bolus: %s parsed: %s" % (b, parsed))
4444
elif parsed.is_extended_bolus:
45-
logger.debug("process_bolus_events for complete extended bolus: %s parsed: %s" % (b.rawJson, parsed))
45+
logger.debug("process_bolus_events for complete extended bolus: %s parsed: %s" % (b, parsed))
4646

4747
if parsed.bg and cgmEvents:
4848
requested_at = parsed.request_time if not parsed.extended_bolus else parsed.bolex_start_time

tests/parser/test_tconnect.py

+60-82
Original file line numberDiff line numberDiff line change
@@ -441,91 +441,69 @@ def test_parse_bolus_entry_std_incomplete_partial(self):
441441
"bolex_completion_time": None,
442442
"bolex_start_time": None
443443
}))
444-
445-
entryExtendedBolusComplete = {
446-
"actualTotalBolusRequested": 0.4,
447-
"bg": 131,
448-
"bolex": {
449-
"size": 0.2,
450-
"bolexStartDateTime": "2022-08-09T23:20:04",
451-
"insulinDelivered": {
452-
"completionDateTime": "2022-08-09T23:35:03",
453-
"value": 0.2
454-
},
455-
"iob": 5.7,
456-
"completionStatusId": 3,
457-
"completionStatusDesc": "Completed",
458-
"extendedBolusIsComplete": 1,
459-
"insulinRequested": 0.2,
460-
"bolexCompletionId": 16757133
461-
},
462-
"bolusRequestOptions": "Extended",
463-
"bolusType": "Carb",
464-
"carbSize": 0,
465-
"correctionBolusSize": 0,
466-
"correctionFactor": 30,
467-
"declinedCorrection": 0,
468-
"duration": 15,
469-
"eventDateTime": "2022-08-09T23:19:15",
470-
"eventHistoryReportDetails": "CF 1:30 - Carb Ratio 1:6 - Target BG 110<br/>Override: Pump calculated Bolus = 0.0 units",
471-
"eventHistoryReportEventDesc": "Food Bolus: 50&#37; Extended 15 mins",
472-
"foodBolusSize": 0,
473-
"iob": 5.87,
474-
"isQuickBolus": 0,
475-
"note": {
476-
"id": 0,
477-
"indexId": "631597",
478-
"eventTypeId": 64,
479-
"sourceRecordId": 0,
480-
"eventId": 0,
481-
"active": False
482-
},
483-
"requestDateTime": "2022-08-09T23:19:15",
484-
"standard": {
485-
"insulinDelivered": {
486-
"completionDateTime": "2022-08-09T23:20:04",
487-
"value": 0.2
488-
},
489-
"foodDelivered": 0,
490-
"correctionDelivered": 0,
491-
"insulinRequested": 0.2,
492-
"completionStatusId": 3,
493-
"completionStatusDesc": "Completed",
494-
"bolusIsComplete": 1,
495-
"bolusRequestId": 3636,
496-
"bolusCompletionId": 3636
497-
},
498-
"standardPercent": 50,
499-
"targetBG": 110,
500-
"userOverride": 1,
501-
"type": "Bolus",
502-
"description": "Extended 50.00%/0.00",
503-
"sourceRecId": 1209631944,
504-
"eventTypeId": 0,
505-
"indexId": 0,
506-
"uploadId": 0,
507-
"interactive": 0,
508-
"tempRateId": 0,
509-
"tempRateCompleted": 0,
510-
"tempRateActivated": 0
444+
445+
446+
entryExtendedComplete = {
447+
"Type": "Bolus",
448+
"Description": "Extended 50.00%/0.00",
449+
"BG": "131",
450+
"IOB": "5.87",
451+
"BolusRequestID": "3636.000",
452+
"BolusCompletionID": "3636.000",
453+
"CompletionDateTime": "2022-08-09T23:20:04",
454+
"InsulinDelivered": "0.20",
455+
"FoodDelivered": "0.00",
456+
"CorrectionDelivered": "0.00",
457+
"CompletionStatusID": "3",
458+
"CompletionStatusDesc": "Completed",
459+
"BolusIsComplete": "1",
460+
"BolexCompletionID": "16757133",
461+
"BolexSize": "0.20",
462+
"BolexStartDateTime": "2022-08-09T23:20:04",
463+
"BolexCompletionDateTime": "2022-08-09T23:35:03",
464+
"BolexInsulinDelivered": "0.20",
465+
"BolexIOB": "5.7",
466+
"BolexCompletionStatusID": "3.00",
467+
"BolexCompletionStatusDesc": "Completed",
468+
"ExtendedBolusIsComplete": "1",
469+
"EventDateTime": "2022-08-09T23:19:15",
470+
"RequestDateTime": "2022-08-09T23:19:15",
471+
"BolusType": "Carb",
472+
"BolusRequestOptions": "Extended",
473+
"StandardPercent": "50.00",
474+
"Duration": "15",
475+
"CarbSize": "0",
476+
"UserOverride": "1",
477+
"TargetBG": "110",
478+
"CorrectionFactor": "30.00",
479+
"FoodBolusSize": "0.00",
480+
"CorrectionBolusSize": "0.00",
481+
"ActualTotalBolusRequested": "0.40",
482+
"IsQuickBolus": "0",
483+
"EventHistoryReportEventDesc": "0",
484+
"EventHistoryReportDetails": "Food Bolus: 50% Extended 15 mins",
485+
"NoteID": "CF 1:30 - Carb Ratio 1:6 - Target BG 110 | Override: Pump calculated Bolus = 0.0 units",
486+
"IndexID": "0",
487+
"Note": "631597"
511488
}
512489
def test_parse_bolus_entry_extended_complete(self):
513490
self.assertEqual(
514-
TConnectEntry.parse_bolus_entry(self.entryExtendedBolusComplete),
515-
Bolus(
516-
description='Extended 50.00%/0.00',
517-
complete='1',
518-
completion='Completed',
519-
request_time='2022-08-09 23:19:15-04:00',
520-
completion_time='2022-08-09 23:20:04-04:00',
521-
insulin='0.2',
522-
requested_insulin='0.2',
523-
carbs='0',
524-
bg='131',
525-
user_override='1',
526-
extended_bolus='1',
527-
bolex_completion_time='2022-08-09 23:35:03-04:00',
528-
bolex_start_time='2022-08-09 23:20:04-04:00'))
491+
TConnectEntry.parse_bolus_entry(self.entryExtendedComplete),
492+
Bolus(**{
493+
"description": "Extended 50.00%/0.00",
494+
"complete": "1",
495+
"completion": "Completed",
496+
"request_time": None,
497+
"completion_time": None,
498+
"insulin": "0.20",
499+
"requested_insulin": "0.40",
500+
"carbs": "0",
501+
"bg": "131",
502+
"user_override": "1",
503+
"extended_bolus": "1",
504+
"bolex_completion_time": "2022-08-09 23:35:03-04:00",
505+
"bolex_start_time": "2022-08-09 23:20:04-04:00"
506+
}))
529507

530508

531509

tests/sync/test_bolus.py

+18
Original file line numberDiff line numberDiff line change
@@ -172,5 +172,23 @@ def test_process_bolus_events_skip_zero(self):
172172
for d in zeroData:
173173
self.assertNotIn(TConnectEntry.parse_bolus_entry(d), bolusEvents)
174174

175+
def test_process_bolus_events_ciq_extended_bolus(self):
176+
stdData = [
177+
TestTConnectEntryBolus.entryExtendedComplete,
178+
]
179+
zeroData = [
180+
]
181+
bolusData = stdData + zeroData
182+
183+
bolusEvents = process_bolus_events(bolusData)
184+
self.assertEqual(len(bolusEvents), len(stdData))
185+
186+
self.assertListEqual(bolusEvents, [
187+
TConnectEntry.parse_bolus_entry(d) for d in stdData
188+
])
189+
190+
for d in zeroData:
191+
self.assertNotIn(TConnectEntry.parse_bolus_entry(d), bolusEvents)
192+
175193
if __name__ == '__main__':
176194
unittest.main()

0 commit comments

Comments
 (0)