def build_event_info(self, event_xml): e_id = event.get_event_id(event_xml) e_mod_num = event.get_mod_number(event_xml) e_status = event.get_status(event_xml) # TODO get target & resource info event_start_dttm = event.get_active_period_start(event_xml) event_start_dttm = schedule.dttm_to_str(event_start_dttm) signals = event.get_signals(event_xml) # get start/end time start_at = event_xml.findtext( 'ei:eiActivePeriod/xcal:properties/xcal:dtstart/xcal:date-time', namespaces=event.NS_A) start_at = schedule.str_to_datetime(start_at) duration = event_xml.findtext( 'ei:eiActivePeriod/xcal:properties/xcal:duration/xcal:duration', namespaces=event.NS_A) start_at, end_at = schedule.durations_to_dates(start_at, [duration]) event_info = { "id" : e_id, "mod_num" : e_mod_num, "status" : e_status, "start_at" : start_at.strftime("%Y-%m-%d %H:%M:%S"), "end_at" : end_at.strftime("%Y-%m-%d %H:%M:%S"), } if signals: event_info["signals"] = signals return event_info
def build_event_info(self, event_xml): e_id = event.get_event_id(event_xml) e_mod_num = event.get_mod_number(event_xml) e_status = event.get_status(event_xml) # TODO get target & resource info event_start_dttm = event.get_active_period_start(event_xml) event_start_dttm = schedule.dttm_to_str(event_start_dttm) signals = event.get_signals(event_xml) # get start/end time start_at = event_xml.findtext( 'ei:eiActivePeriod/xcal:properties/xcal:dtstart/xcal:date-time', namespaces=event.NS_A) start_at = schedule.str_to_datetime(start_at) duration = event_xml.findtext( 'ei:eiActivePeriod/xcal:properties/xcal:duration/xcal:duration', namespaces=event.NS_A) start_at, end_at = schedule.durations_to_dates( start_at, [duration]) event_info = { "id": e_id, "mod_num": e_mod_num, "status": e_status, "start_at": start_at.strftime("%Y-%m-%d %H:%M:%S"), "end_at": end_at.strftime("%Y-%m-%d %H:%M:%S"), } if signals: event_info["signals"] = signals return event_info
def test_str_to_dttm(self): self.assertEqual( dt.datetime(2013,5,12,8,33,50), schedule.str_to_datetime('2013-05-12T08:33:50Z') )
def test_str_to_dttm(self): self.assertEqual(dt.datetime(2013, 5, 12, 8, 33, 50), schedule.str_to_datetime('2013-05-12T08:33:50Z'))
def get_active_period_start(evt, ns_map=NS_A): dttm_str = evt.findtext( 'ei:eiActivePeriod/xcal:properties/xcal:dtstart/xcal:date-time', namespaces=ns_map) return schedule.str_to_datetime(dttm_str)