Skip to content

Commit

Permalink
Add more tests to cover the basic translation of objects to strings.
Browse files Browse the repository at this point in the history
This would have found an extra bug that was pushed unfixed after enum
conversion, and two bugs that I did find during the conversion.
  • Loading branch information
Flameeyes committed Dec 29, 2017
1 parent 95461d5 commit 1832178
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions test/test_common.py
Expand Up @@ -6,6 +6,7 @@
__copyright__ = 'Copyright © 2013, Diego Elio Pettenò'
__license__ = 'MIT'

import datetime
import os
import sys
import unittest
Expand Down Expand Up @@ -52,5 +53,78 @@ def test_invalid_values(self, from_unit, to_unit):
common.convert_glucose_unit(100, from_unit, to_unit)


class TestGlucoseReading(parameterized.TestCase):

TEST_DATETIME = datetime.datetime(2018, 1 ,1, 0, 30, 45)

def test_minimal(self):
reading = common.GlucoseReading(self.TEST_DATETIME, 100)
self.assertEqual(reading.as_csv(common.Unit.MG_DL),
'"2018-01-01 00:30:45","100.00","","blood sample",""')

@parameterized.named_parameters(
('_mgdl', common.Unit.MG_DL, 100),
('_mmoll', common.Unit.MMOL_L, 5.56))
def test_value(self, unit, expected_value):
reading = common.GlucoseReading(self.TEST_DATETIME, 100)
self.assertAlmostEqual(
reading.get_value_as(unit), expected_value, places=2)

@parameterized.named_parameters(
('_meal_none',
{'meal': common.Meal.NONE},
'"2018-01-01 00:30:45","100.00","","blood sample",""'),
('_meal_before',
{'meal': common.Meal.BEFORE},
'"2018-01-01 00:30:45","100.00","Before Meal","blood sample",""'),
('_meal_after',
{'meal': common.Meal.AFTER},
'"2018-01-01 00:30:45","100.00","After Meal","blood sample",""'),
('_measurement_blood',
{'measure_method': common.MeasurementMethod.BLOOD_SAMPLE},
'"2018-01-01 00:30:45","100.00","","blood sample",""'),
('_measurement_cgm',
{'measure_method': common.MeasurementMethod.CGM},
'"2018-01-01 00:30:45","100.00","","CGM",""'),
('_comment',
{'comment': 'too much'},
'"2018-01-01 00:30:45","100.00","","blood sample","too much"'),
('_comment_quoted',
{'comment': '"too" much'},
'"2018-01-01 00:30:45","100.00","","blood sample","\"too\" much"'),
)
def test_csv(self, kwargs_dict, expected_csv):
reading = common.GlucoseReading(
self.TEST_DATETIME, 100, **kwargs_dict)
self.assertEqual(reading.as_csv(common.Unit.MG_DL), expected_csv)


class TestMeterInfo(parameterized.TestCase):

@parameterized.named_parameters(
('_no_serial_number',
{},
'Serial Number: N/A\n'),
('_serial_number',
{'serial_number': 1234},
'Serial Number: 1234\n'),
('_no_version_information',
{},
'Version Information:\n N/A\n'),
('_version_information_1',
{'version_info': ['test']},
'Version Information:\n test\n'),
('_version_information_2',
{'version_info': ['test', 'test2']},
'Version Information:\n test\n test2\n'),
('_default_native_unit',
{},
'Native Unit: mg/dL\n'),
)
def test_meter_info(self, kwargs_dict, expected_fragment):
info = common.MeterInfo(self.id(), **kwargs_dict)
self.assertIn(expected_fragment, str(info))


if __name__ == '__main__':
unittest.main()

0 comments on commit 1832178

Please sign in to comment.