def get_value(self, instance): """ Given an instance (i.e. any object containing data), extract the field of data to be displayed in a cell of this column """ if callable(self.accessor): return self.accessor(instance) else: return multigetattr(instance, self.accessor)
def to_row_dict(self, item): """ Returns an OrderedDict (in the order given by list_export) of the exportable information for a model instance""" row_dict = OrderedDict( (field, multigetattr(item, field)) for field in self.list_export) return row_dict
def test_multigetattr(self): self.assertEqual(multigetattr(self.thing, 'colour'), 'green') self.assertEqual(multigetattr(self, 'thing.colour'), 'green') self.assertEqual(multigetattr(self.thing, 'limbs.arms'), 2) self.assertEqual(multigetattr(self.thing, 'speak'), 'raaargh') self.assertEqual(multigetattr(self, 'thing.speak.0'), 'r') with self.assertRaises(AttributeError): multigetattr(self.thing, 'name') with self.assertRaises(AttributeError): multigetattr(self.thing, 'limbs.antennae') with self.assertRaises(AttributeError): multigetattr(self.thing, 'speak.999') with self.assertRaises(TypeError): multigetattr(self.thing, 'feed') with self.assertRaises(SuspiciousOperation): multigetattr(self.thing, 'poke') self.assertFalse(self.thing.poke_was_called)
def test_multigetattr(self): self.assertEqual(multigetattr(self.thing, "colour"), "green") self.assertEqual(multigetattr(self, "thing.colour"), "green") self.assertEqual(multigetattr(self.thing, "limbs.arms"), 2) self.assertEqual(multigetattr(self.thing, "speak"), "raaargh") self.assertEqual(multigetattr(self, "thing.speak.0"), "r") with self.assertRaises(AttributeError): multigetattr(self.thing, "name") with self.assertRaises(AttributeError): multigetattr(self.thing, "limbs.antennae") with self.assertRaises(AttributeError): multigetattr(self.thing, "speak.999") with self.assertRaises(TypeError): multigetattr(self.thing, "feed") with self.assertRaises(SuspiciousOperation): multigetattr(self.thing, "poke") self.assertFalse(self.thing.poke_was_called)