def test_filter_body_metric_list(self): """Test for presence of metric ids in the filter body.""" f = Filter(attributes=self.attributes, metrics=self.metrics, attr_elements=self.elements) f._select(self.metric_sel_list) ro = f._requested_objects() fb = f._filter_body() self.assertListEqual(fb["requestedObjects"]["metrics"], ro["metrics"])
def test_requested_objects_one_attribute(self): """Test that choosing 1 att should return matching requested object in body.""" f = Filter(attributes=self.attributes, metrics=self.metrics, attr_elements=self.elements) f._select(self.attribute_sel) ro = f._requested_objects() self.assertIn("attributes", ro) self.assertCountEqual([a['id'] for a in ro['attributes']], [a['id'] for a in self.attributes])
def test_requested_objects_two_metric(self): """Test that choosing 2 met should return matching requested object in body.""" f = Filter(attributes=self.attributes, metrics=self.metrics, attr_elements=self.elements) f._select(self.metric_sel_list) ro = f._requested_objects() self.assertIn("metrics", ro) self.assertCountEqual([m['id'] for m in ro['metrics']], [m['id'] for m in self.metrics])
def test_requested_objects_empty_lists(self): """Test that empty lists are properly parsed into requestedObjects.""" f = Filter(attributes=self.attributes, metrics=self.metrics, attr_elements=self.elements) f.attr_selected = [] f.metr_selected = [] ro = f._requested_objects() self.assertIn("attributes", ro) self.assertIn("metrics", ro) self.assertEqual(ro["attributes"], []) self.assertEqual(ro["metrics"], [])
def test_requested_objects_both_list(self): """Test that adding lists of attributes and metrics yields requested objects with correct elements. """ f = Filter(attributes=self.attributes, metrics=self.metrics, attr_elements=self.elements) f._select(self.attribute_sel_list) f._select(self.metric_sel_list) ro = f._requested_objects() self.assertIn("attributes", ro) self.assertIn("metrics", ro) self.assertCountEqual([a['id'] for a in ro['attributes']], [a['id'] for a in self.attributes]) self.assertCountEqual([m['id'] for m in ro['metrics']], [m['id'] for m in self.metrics])