def setUp(self): self.interval_start_one = "2015-12-29" self.interval_end_one = "2016-01-02" self.interval_code_one = "unit_test_one" self.dateIntervalOne = DateInterval(self.interval_start_one, self.interval_end_one, self.interval_code_one) self.interval_start_two = "2016-01-02" self.interval_end_two = "2016-01-12" self.interval_code_two = "unit_test_two" self.dateIntervalTwo = DateInterval(self.interval_start_two, self.interval_end_two, self.interval_code_two) self.interval_start_three = "2015-12-12" self.interval_end_three = "2015-12-20" self.interval_code_three = "unit_test_three" self.dateIntervalThree = DateInterval( self.interval_start_three, self.interval_end_three, self.interval_code_three ) self.test_dictionary_code = "unit_test_dictionary" self.dateIntervalDictionaryInstance = DateIntervalDictionary( self.test_dictionary_code ) # type: DateIntervalDictionary self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalOne) self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalTwo) self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalThree) self.interval_code_four = "unit_test_four" self.start_date_four = "2016-01-31" self.end_date_four = "2016-02-15" self.dateIntervalDictionaryInstance.addDateIntervalByDates( self.start_date_four, self.end_date_four, self.interval_code_four ) self.expected_date_interval_codes = [ self.interval_code_one, self.interval_code_two, self.interval_code_three, self.interval_code_four, ] self.expected_date_interval_codes.sort() self.expected_earliest_date = self.interval_start_three self.expected_latest_date = self.end_date_four
class TestDateIntervalDictionary(unittest.TestCase): def tearDown(self): self.dateIntervalOne = None self.dateIntervalTwo = None self.dateIntervalThree = None self.dateIntervalDictionaryInstance = None def setUp(self): self.interval_start_one = "2015-12-29" self.interval_end_one = "2016-01-02" self.interval_code_one = "unit_test_one" self.dateIntervalOne = DateInterval(self.interval_start_one, self.interval_end_one, self.interval_code_one) self.interval_start_two = "2016-01-02" self.interval_end_two = "2016-01-12" self.interval_code_two = "unit_test_two" self.dateIntervalTwo = DateInterval(self.interval_start_two, self.interval_end_two, self.interval_code_two) self.interval_start_three = "2015-12-12" self.interval_end_three = "2015-12-20" self.interval_code_three = "unit_test_three" self.dateIntervalThree = DateInterval( self.interval_start_three, self.interval_end_three, self.interval_code_three ) self.test_dictionary_code = "unit_test_dictionary" self.dateIntervalDictionaryInstance = DateIntervalDictionary( self.test_dictionary_code ) # type: DateIntervalDictionary self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalOne) self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalTwo) self.dateIntervalDictionaryInstance.addDateInterval(self.dateIntervalThree) self.interval_code_four = "unit_test_four" self.start_date_four = "2016-01-31" self.end_date_four = "2016-02-15" self.dateIntervalDictionaryInstance.addDateIntervalByDates( self.start_date_four, self.end_date_four, self.interval_code_four ) self.expected_date_interval_codes = [ self.interval_code_one, self.interval_code_two, self.interval_code_three, self.interval_code_four, ] self.expected_date_interval_codes.sort() self.expected_earliest_date = self.interval_start_three self.expected_latest_date = self.end_date_four def test_getEarliestDateInDictionary(self): test_earliest_date = self.dateIntervalDictionaryInstance.getEarliestDateInDictionary() self.assertEqual(test_earliest_date, self.expected_earliest_date) def test_getLatestDateInDictionary(self): test_latest_date = self.dateIntervalDictionaryInstance.getLatestDateInDictionary() self.assertEqual(test_latest_date, self.expected_latest_date) def test_getDateIntervalCodes(self): test_date_intervals = self.dateIntervalDictionaryInstance.getDateIntervalCodes() test_date_intervals.sort() self.assertListEqual(self.expected_date_interval_codes, test_date_intervals) def test_init(self): test_code = self.dateIntervalDictionaryInstance.dictionary_code self.assertEqual(test_code, self.test_dictionary_code) def test_addDateInterval(self): dictionary_length = len(self.dateIntervalDictionaryInstance.date_interval_dictionary) self.assertEqual(dictionary_length, 4) def test_addDateIntervalByDates(self): testDateIntervalFour = self.dateIntervalDictionaryInstance.getDateIntervalByCode(self.interval_code_four) self.assertEqual(testDateIntervalFour.code, self.interval_code_four) def test_getDateIntervalByCode(self): testDateIntervalTwo = self.dateIntervalDictionaryInstance.getDateIntervalByCode(self.interval_code_two) self.assertIsNotNone(testDateIntervalTwo) self.assertEqual(self.interval_start_two, testDateIntervalTwo.start_date) self.assertEqual(self.interval_end_two, testDateIntervalTwo.end_date) self.assertEqual(self.interval_code_two, testDateIntervalTwo.code) noneInterval = self.dateIntervalDictionaryInstance.getDateIntervalByCode("fake_interval") self.assertIsNone(noneInterval) def test_getIntervalCodesByDate(self): test_dates_for_interval_one = ["2015-12-29", "2016-01-01", "2015-12-31"] interval_one_code_list = [self.interval_code_one] test_dates_for_interval_two = ["2016-01-12", "2016-01-07"] interval_two_code_list = [self.interval_code_two] test_dates_for_interval_three = ["2015-12-12", "2015-12-20", "2015-12-16"] interval_three_code_list = [self.interval_code_three] date_in_intervals_one_and_two = "2016-01-02" expected_interval_one_and_two_list = [self.interval_code_one, self.interval_code_two] for date_string in test_dates_for_interval_one: test_list_of_codes = self.dateIntervalDictionaryInstance.getIntervalCodesByDate(date_string) self.assertEqual(test_list_of_codes, interval_one_code_list, "Failed for date {0}".format(date_string)) for date_string in test_dates_for_interval_two: test_list_of_codes = self.dateIntervalDictionaryInstance.getIntervalCodesByDate(date_string) self.assertEqual(test_list_of_codes, interval_two_code_list, "Failed for date {0}".format(date_string)) for date_string in test_dates_for_interval_three: test_list_of_codes = self.dateIntervalDictionaryInstance.getIntervalCodesByDate(date_string) self.assertEqual(test_list_of_codes, interval_three_code_list, "Failed for date {0}".format(date_string)) test_interval_one_and_two_list = self.dateIntervalDictionaryInstance.getIntervalCodesByDate( date_in_intervals_one_and_two ) self.assertEqual(test_interval_one_and_two_list, expected_interval_one_and_two_list) test_interval_four_dates = ["2016-01-31", "2016-02-02", "2016-02-15"] interval_four_code_list = [self.interval_code_four] for date_string in test_interval_four_dates: test_list_of_codes = self.dateIntervalDictionaryInstance.getIntervalCodesByDate(date_string) self.assertEqual(test_list_of_codes, interval_four_code_list, "Failed for date {0}".format(date_string)) test_dates_in_no_intervals = ["2015-12-11", "2015-12-21", "2015-12-28", "2016-01-30", "2016-02-16"] for date_string in test_dates_in_no_intervals: test_none = self.dateIntervalDictionaryInstance.getIntervalCodesByDate(date_string) self.assertIsNone(test_none)