From d77aba6210f44f9cb5828670aef93305594474ca Mon Sep 17 00:00:00 2001 From: Hugo Date: Sun, 20 Oct 2019 12:29:59 +0300 Subject: [PATCH] Add more tests --- tests/test_tablib_dbfpy_packages_utils.py | 170 ++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 tests/test_tablib_dbfpy_packages_utils.py diff --git a/tests/test_tablib_dbfpy_packages_utils.py b/tests/test_tablib_dbfpy_packages_utils.py new file mode 100644 index 0000000..9288916 --- /dev/null +++ b/tests/test_tablib_dbfpy_packages_utils.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python +"""Tests for tablib.packages.dbfpy.""" + +import datetime +import unittest + +from tablib.packages.dbfpy import utils + + +class UtilsUnzfillTestCase(unittest.TestCase): + """dbfpy.utils.unzfill test cases.""" + + def test_unzfill_with_nul(self): + # Arrange + text = b"abc\0xyz" + + # Act + output = utils.unzfill(text) + + # Assert + self.assertEqual(output, b"abc") + + def test_unzfill_without_nul(self): + # Arrange + text = b"abcxyz" + + # Act + output = utils.unzfill(text) + + # Assert + self.assertEqual(output, b"abcxyz") + + +class UtilsGetDateTestCase(unittest.TestCase): + """dbfpy.utils.getDate test cases.""" + + def test_getDate_none(self): + # Arrange + value = None + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + + def test_getDate_datetime_date(self): + # Arrange + value = datetime.date(2019, 10, 19) + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, value) + + def test_getDate_datetime_datetime(self): + # Arrange + value = datetime.datetime(2019, 10, 19, 12, 00, 00) + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, value) + + def test_getDate_datetime_timestamp(self): + # Arrange + value = 1571515306 + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, datetime.date(2019, 10, 19)) + + def test_getDate_datetime_string_yyyy_mm_dd(self): + # Arrange + value = "20191019" + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, datetime.date(2019, 10, 19)) + + def test_getDate_datetime_string_yymmdd(self): + # Arrange + value = "191019" + + # Act + output = utils.getDate(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, datetime.date(2019, 10, 19)) + + +class UtilsGetDateTimeTestCase(unittest.TestCase): + """dbfpy.utils.getDateTime test cases.""" + + def test_getDateTime_none(self): + # Arrange + value = None + + # Act + output = utils.getDateTime(value) + + # Assert + self.assertIsInstance(output, datetime.datetime) + + def test_getDateTime_datetime_datetime(self): + # Arrange + value = datetime.datetime(2019, 10, 19, 12, 00, 00) + + # Act + output = utils.getDateTime(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, value) + + def test_getDateTime_datetime_date(self): + # Arrange + value = datetime.date(2019, 10, 19) + + # Act + output = utils.getDateTime(value) + + # Assert + self.assertIsInstance(output, datetime.date) + self.assertEqual(output, datetime.datetime(2019, 10, 19, 00, 00)) + + def test_getDateTime_datetime_timestamp(self): + # Arrange + value = 1571515306 + + # Act + output = utils.getDateTime(value) + + # Assert + self.assertIsInstance(output, datetime.datetime) + + def test_getDateTime_datetime_string(self): + # Arrange + value = "20191019" + + # Act / Assert + with self.assertRaises(NotImplementedError): + output = utils.getDateTime(value) + + +class InvalidValueTestCase(unittest.TestCase): + """dbfpy.utils._InvalidValue test cases.""" + + def test_sanity(self): + # Arrange + INVALID_VALUE = utils.INVALID_VALUE + + # Act / Assert + self.assertEqual(INVALID_VALUE, INVALID_VALUE) + self.assertNotEqual(INVALID_VALUE, 123) + self.assertEqual(int(INVALID_VALUE), 0) + self.assertEqual(float(INVALID_VALUE), 0.0) + self.assertEqual(str(INVALID_VALUE), "") + self.assertEqual(repr(INVALID_VALUE), "")