def test_update_pod_data_usage_lt_request(self): """Test that _update_pod_data keeps usage <= limit <= request.""" pods = self.attributes.get("nodes")[0].get("namespaces")[0].get("pods") kwargs = { "report_type": "test_report", "cpu_usage": self._usage_dict(), "mem_usage_gig": self._usage_dict(), "pod_seconds": 86400, "pod": pods[0], } generator = OCPGenerator(self.two_hours_ago, self.now) in_row = generator._init_data_row(self.two_hours_ago, self.now, report_type=OCP_POD_USAGE) out_row = generator._update_pod_data(copy(in_row), self.two_hours_ago, self.now, **kwargs) for x in ["cpu_core", "memory_byte"]: with self.subTest(row=out_row): with self.subTest(x=x): self.assertLessEqual( out_row.get(f"pod_usage_{x}_seconds"), out_row.get(f"pod_request_{x}_seconds")) self.assertLessEqual(out_row.get(f"pod_usage_{x}_seconds"), out_row.get(f"pod_limit_{x}_seconds")) self.assertLessEqual( out_row.get(f"pod_limit_{x}_seconds"), out_row.get(f"pod_request_{x}_seconds"))
def test_update_pod_data(self): """Test that _update_pod_data updates pod data""" pods = self.attributes.get("nodes")[0].get("namespaces")[0].get("pods") usage_dict = self._usage_dict() kwargs = { "report_type": "test_report", "cpu_usage": usage_dict, "mem_usage_gig": usage_dict, "pod_seconds": 86400, "pod": pods[0], } changed = { "pod_usage_cpu_core_seconds", "pod_request_cpu_core_seconds", "pod_limit_cpu_core_seconds", "pod_usage_memory_byte_seconds", "pod_request_memory_byte_seconds", "pod_limit_memory_byte_seconds", } generator = OCPGenerator(self.two_hours_ago, self.now) generator.nodes = self.attributes in_row = generator._init_data_row(self.two_hours_ago, self.now, report_type=OCP_POD_USAGE) out_row = generator._update_pod_data( copy(in_row), datetime.strptime(random.choice(list(usage_dict.keys())), "%m-%d-%Y"), self.now, **kwargs) for key in changed: with self.subTest(key=key): self.assertIsNotNone(out_row.get(key)) self.assertNotEqual(out_row.get(key), in_row.get(key)) for key in list(set(out_row.keys()) - changed): with self.subTest(key=key): self.assertIsNotNone(out_row.get(key))
def test_update_pod_data(self): """Test that _update_pod_data updates pod data""" pods = next( iter(self.attributes.get("nodes")[0].get( "namespaces").values())).get("pods") kwargs = { "cpu_usage": self._usage_dict(), "mem_usage_gig": self._usage_dict(), "pod_seconds": 86400, "pod": pods[0], } changed = { "pod_usage_cpu_core_seconds", "pod_request_cpu_core_seconds", "pod_limit_cpu_core_seconds", "pod_usage_memory_byte_seconds", "pod_request_memory_byte_seconds", "pod_limit_memory_byte_seconds", } generator = OCPGenerator(self.two_hours_ago, self.now, {}) in_row = generator._init_data_row(self.two_hours_ago, self.now, report_type=OCP_POD_USAGE) out_row = generator._update_pod_data(copy(in_row), self.two_hours_ago, self.now, **kwargs) for key in changed: with self.subTest(key=key): self.assertEqual(out_row.get(key), pods[0].get(key)) self.assertNotEqual(out_row.get(key), in_row.get(key)) for key in list(set(out_row.keys()) - changed): with self.subTest(key=key): self.assertIn( out_row.get(key), [pods[0].get(key), in_row.get(key)])