def _populate(self, json): """ Override the populate method to map user_defined_fields to fancy values """ Base._populate(self, json) mapped_udfs = [] for udf in self.user_defined_fields: t = UserDefinedFieldType.text choices = None if hasattr(udf, 'oneof'): t = UserDefinedFieldType.select_one choices = udf.oneof.split(',') elif hasattr(udf, 'manyof'): t = UserDefinedFieldType.select_many choices = udf.manyof.split(',') mapped_udfs.append( UserDefinedField( udf.name, udf.label if hasattr(udf, 'label') else None, udf.example if hasattr(udf, 'example') else None, t, choices=choices)) self._set('user_defined_fields', mapped_udfs) ndist = [Image(self._client, d) for d in self.images] self._set('images', ndist)
def test_get_image(self): """ Tests that an image is loaded correctly by ID """ image = Image(self.client, 'linode/debian9') self.assertEqual(image._populated, False) self.assertEqual(image.label, 'Debian 9') self.assertEqual(image._populated, True) self.assertEqual(image.vendor, 'Debian') self.assertEqual(image.description, None) self.assertEqual(image.deprecated, False) self.assertEqual(image.status, "available") self.assertEqual(image.type, "manual") self.assertEqual(image.created_by, "linode") self.assertEqual(image.size, 1100)