def test_single_event(): """No events, but the resulting list should still have an entry for each date""" from_date = date(2014, 8, 1) to_date = from_date events = [ (date(2014, 8, 1),1,"DISPATCH"), ] result = do_report(from_date, to_date, events) assert result, [{"DISPATCH":1}]
def test_multi_events_one_day(): """Still on one day so we don't have to aggregate days, but multiple events.""" from_date = date(2014, 8, 1) to_date = from_date events = [ (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),-1,"DISPATCH"), (date(2014, 8, 1),1,"WITH_CUSTOMER"), ] result = do_report(from_date, to_date, events) assert result, [{"DISPATCH":2, "WITH_CUSTOMER":1}]
def test_multi_events_two_days(): """Aggregate results from previous day""" from_date = date(2014, 8, 1) to_date = from_date + timedelta(1) events = [ (date(2014, 8, 2),-1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),-1,"DISPATCH"), (date(2014, 8, 1),1,"WITH_CUSTOMER"), (date(2014, 8, 2),1,"WITH_CUSTOMER"), ] result = do_report(from_date, to_date, events) assert result, [ {"DISPATCH":2, "WITH_CUSTOMER":1}, {"DISPATCH":1, "WITH_CUSTOMER":2}, ]
def test_data_out_of_range(): """Include data before start, ignore data after end""" from_date = date(2014, 8, 1) to_date = from_date + timedelta(1) events = [ (date(2014, 8, 2),-1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 7, 31),1,"DISPATCH"), (date(2014, 8, 3),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),-1,"DISPATCH"), (date(2014, 8, 1),1,"WITH_CUSTOMER"), (date(2014, 8, 2),1,"WITH_CUSTOMER"), ] result = do_report(from_date, to_date, events) assert result == [ {"DISPATCH":2, "WITH_CUSTOMER":1}, {"DISPATCH":1, "WITH_CUSTOMER":2}, ]
def test_all_flags_exist(): """Aggregate results from previous day""" from_date = date(2014, 8, 1) to_date = from_date + timedelta(1) events = [ (date(2014, 8, 2),-1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),1,"DISPATCH"), (date(2014, 8, 1),-1,"DISPATCH"), (date(2014, 8, 1),1,"WITH_CUSTOMER"), (date(2014, 8, 2),1,"WITH_CUSTOMER"), (date(2014, 8, 2),1,"EXTRACT"), (date(2014, 7, 2),1,"RECEIPT_EMAIL"), (date(2014, 7, 2),-1,"RECEIPT_EMAIL"), ] result = do_report(from_date, to_date, events) assert result == [ {"DISPATCH":2, "WITH_CUSTOMER":1, "EXTRACT":0, "RECEIPT_EMAIL":0}, {"DISPATCH":1, "WITH_CUSTOMER":2, "EXTRACT":1, "RECEIPT_EMAIL":0}, ]
def test_no_events(): """No events, but the resulting list should still have an entry for each date""" from_date = date(2014, 8, 2) to_date = from_date + timedelta(2) result = do_report(from_date, to_date, []) assert result == [{}, {}, {},]
def test_null(): """to_date before from_date returns empty list""" from_date = date(2014, 8, 2) to_date = date(2014, 8, 1) result = do_report(from_date, to_date, []) assert result == []
def test_null(self): """to_date before from_date returns empty list""" from_date = date(2014, 8, 2) to_date = date(2014, 8, 1) result = do_report(from_date, to_date, []) self.assertEqual(result, [])