def test_iso_time(self): element = et.fromstring("<foo><bar>2020-01-10T13:13:33Z</bar></foo>") dt = get_datetime_from_element(element, 'bar') self.assertIsNotNone(dt) self.assertIsInstance(dt, datetime.datetime) self.assertEqual(dt.year, 2020) self.assertEqual(dt.month, 1) self.assertEqual(dt.day, 10) self.assertEqual(dt.hour, 13) self.assertEqual(dt.minute, 13) self.assertEqual(dt.second, 33) self.assertEqual(str(dt.tzinfo), 'UTC')
def test_invalid_datetime(self): element = et.fromstring("<foo><bar>ipsum</bar></foo>") self.assertIsNone(get_datetime_from_element(element, 'bar'))
def test_empty_subelement(self): element = et.fromstring("<foo><bar></bar></foo>") self.assertFalse(get_datetime_from_element(element, 'bar')) element = et.fromstring("<foo><bar> </bar></foo>") self.assertFalse(get_datetime_from_element(element, 'bar'))
def resolve_start(root, _info): return get_datetime_from_element(root, 'start')
def resolve_open_time(root, _info): return get_datetime_from_element(root, 'open_time')
def resolve_trust_time(root, _info): trust = root.find('trust') return get_datetime_from_element(trust, 'time')
def resolve_update_time(root, _info): return get_datetime_from_element(root, 'update_time')
def resolve_scan_end(parent, _info): report = parent.find('report') return get_datetime_from_element(report, 'scan_end')
def resolve_modification_time(root, _info): return get_datetime_from_element(root.outer_report, 'modification_time')
def resolve_scan_nvt_version(root, _info): return get_datetime_from_element(root, 'scan_nvt_version')
def resolve_timestamp(parent, _info): report = parent.find('report') return get_datetime_from_element(report, 'timestamp')
def resolve_last_seen(root, _info): return get_datetime_from_element(root, 'last_seen')
def resolve_expiration_time(root: XmlElement, _info): cert_info = root.find('certificate_info') return get_datetime_from_element(cert_info, 'expiration_time')
def resolve_closed_time(root, _info): return get_datetime_from_element(root, 'closed_time')
def resolve_activation_time(root, _info): return get_datetime_from_element(root, 'activation_time')
def resolve_timestamp(root, _info): return get_datetime_from_element(root.inner_report, 'timestamp')
def resolve_expiration_time(root, _info): return get_datetime_from_element(root, 'expiration_time')
def resolve_scan_end(root, _info): return get_datetime_from_element(root.inner_report, 'scan_end')
def resolve_date(root, _info): return get_datetime_from_element(root, 'date')
def test_none(self): self.assertIsNone(get_datetime_from_element(None, 'foo'))
def resolve_modification_time(root, _info): return get_datetime_from_element(root, 'creation_time')
def test_unkown_subelement(self): element = Element('foo') self.assertIsNone(get_datetime_from_element(element, 'bar'))
def resolve_end(root, _info): return get_datetime_from_element(root, 'end')
def resolve_newest(root, _info): return get_datetime_from_element(root, 'newest')