You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.7 KiB

  1. import unittest
  2. import six
  3. from nd2reader.common import parse_version, parse_date, _add_to_metadata
  4. class TestCommon(unittest.TestCase):
  5. def test_parse_version_2(self):
  6. data = 'ND2 FILE SIGNATURE CHUNK NAME01!Ver2.2'
  7. actual = parse_version(data)
  8. expected = (2, 2)
  9. self.assertTupleEqual(actual, expected)
  10. def test_parse_version_3(self):
  11. data = 'ND2 FILE SIGNATURE CHUNK NAME01!Ver3.0'
  12. actual = parse_version(data)
  13. expected = (3, 0)
  14. self.assertTupleEqual(actual, expected)
  15. def test_parse_date_24(self):
  16. date_format = "%m/%d/%Y %H:%M:%S"
  17. date = '02/13/2016 23:43:37'
  18. textinfo = {six.b('TextInfoItem9'): six.b(date)}
  19. result = parse_date(textinfo)
  20. self.assertEqual(result.strftime(date_format), date)
  21. def test_parse_date_12(self):
  22. date_format = "%m/%d/%Y %I:%M:%S %p"
  23. date = '02/13/2016 11:43:37 PM'
  24. textinfo = {six.b('TextInfoItem9'): six.b(date)}
  25. result = parse_date(textinfo)
  26. self.assertEqual(result.strftime(date_format), date)
  27. def test_add_to_meta_simple(self):
  28. metadata = {}
  29. _add_to_metadata(metadata, 'test', 'value')
  30. self.assertDictEqual(metadata, {'test': 'value'})
  31. def test_add_to_meta_new_list(self):
  32. metadata = {'test': 'value1'}
  33. _add_to_metadata(metadata, 'test', 'value2')
  34. self.assertDictEqual(metadata, {'test': ['value1', 'value2']})
  35. def test_add_to_meta_existing_list(self):
  36. metadata = {'test': ['value1', 'value2']}
  37. _add_to_metadata(metadata, 'test', 'value3')
  38. self.assertDictEqual(metadata, {'test': ['value1', 'value2', 'value3']})