def handle_log_line(log: V1Log): log_dict = log.to_dict() log_line = "" if log.timestamp and show_timestamp: date_value = local_datetime(log_dict.get("timestamp")) log_line = Printer.add_color(date_value, "white") + " | " def get_container_info(): if container_info in job_to_color: color = job_to_color[container_info] else: color = colors[0] colors.rotate(-1) job_to_color[container_info] = color return Printer.add_color(container_info, color) + " | " if not all_containers and log.container != MAIN_JOB_CONTAINER: return log_line if all_info: container_info = "" if log.node: log_line += Printer.add_color(log_dict.get("node"), "white") + " | " if log.pod: log_line += Printer.add_color(log_dict.get("pod"), "white") + " | " if log.container: container_info = log_dict.get("container") log_line += get_container_info() log_line += log_dict.get("value") Printer.log(log_line, nl=True)
def test_component_base_attrs(self): config_dict = { "concurrency": "foo", "run": {"kind": V1RunKind.JOB, "container": {"image": "test"}}, } with self.assertRaises(ValidationError): V1Component.from_dict(config_dict) config_dict = { "concurrency": 2, "run": {"kind": V1RunKind.JOB, "container": {"image": "test"}}, } with self.assertRaises(ValidationError): V1Component.from_dict(config_dict) config_dict = { "kind": "component", "matrix": { "concurrency": 2, "kind": "mapping", "values": [{"a": 1}, {"a": 1}], }, "run": {"kind": V1RunKind.JOB, "container": {"image": "test"}}, } with self.assertRaises(ValidationError): V1Component.from_dict(config_dict) config_dict = { "kind": "component", "matrix": { "concurrency": 2, "kind": "mapping", "values": [{"a": 1}, {"a": 1}], }, "schedule": { "kind": "datetime", "startAt": local_datetime(now()).isoformat(), }, "termination": {"timeout": 1000}, "run": {"kind": V1RunKind.JOB, "container": {"image": "test"}}, } with self.assertRaises(ValidationError): V1Component.from_dict(config_dict) config_dict = { "kind": "component", "termination": {"timeout": 1000}, "run": {"kind": V1RunKind.JOB, "container": {"image": "test"}}, } config = V1Component.from_dict(config_dict) assert config.to_dict() == config_dict
def test_humanize_timesince_few_seconds(self): self.assertEqual( u"Last update: " + humanize_timesince(local_datetime(now())), u"Last update: a few seconds ago", )
def test_humanize_times_in_the_future(self): self.assertEqual( humanize_timesince( local_datetime(now()) + datetime.timedelta(minutes=1)), "a few seconds ago", )
def test_humanize_timesince(self): self.assertEqual(humanize_timesince(local_datetime(now())), "a few seconds ago") self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(minutes=1)), "1 minute ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(minutes=10)), "10 minutes ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(hours=1)), "1 hour ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(hours=10)), "10 hours ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(hours=24)), "1 day ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(hours=72)), "3 days ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(hours=168)), "1 week ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(weeks=1)), "1 week ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(weeks=3)), "3 weeks ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(weeks=53)), "1 year ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(days=365)), "1 year ago", ) self.assertEqual( humanize_timesince( local_datetime(now()) - datetime.timedelta(days=800)), "2 years ago", )