Exemplo n.º 1
0
 def test_custom_fields(self):
     self.assertEqual(views.get_readable_field_data_type(CustomField()),
                      'A custom field type')
     self.assertEqual(
         views.get_readable_field_data_type(DescriptionLackingField()),
         _('Field of type: %(field_type)s') %
         {'field_type': 'DescriptionLackingField'})
Exemplo n.º 2
0
 def test_custom_fields(self):
     self.assertEqual(views.get_readable_field_data_type(CustomField()),
                      "A custom field type")
     self.assertEqual(
         views.get_readable_field_data_type(DescriptionLackingField()),
         "Field of type: DescriptionLackingField",
     )
Exemplo n.º 3
0
 def test_custom_fields(self):
     self.assertEqual(
         views.get_readable_field_data_type(fields.CustomField()),
         u'A custom field type')
     self.assertEqual(
         views.get_readable_field_data_type(
             fields.DescriptionLackingField()),
         u'Field of type: DescriptionLackingField')
Exemplo n.º 4
0
	def test_custom_fields(self):
		self.assertEqual(
			views.get_readable_field_data_type(fields.CustomField()),
			u'A custom field type'
		)
		self.assertEqual(
			views.get_readable_field_data_type(fields.DescriptionLackingField()),
			u'Field of type: DescriptionLackingField'
		)
Exemplo n.º 5
0
 def test_custom_fields(self):
     self.assertEqual(
         views.get_readable_field_data_type(fields.CustomField()),
         'A custom field type'
     )
     self.assertEqual(
         views.get_readable_field_data_type(fields.DescriptionLackingField()),
         _('Field of type: %(field_type)s') % {
             'field_type': 'DescriptionLackingField'
         }
     )
Exemplo n.º 6
0
 def test_builtin_fields(self):
     self.assertEqual(
         views.get_readable_field_data_type(builtin_fields.BooleanField()),
         _('Boolean (Either True or False)')
     )
Exemplo n.º 7
0
 def test_builtin_fields(self):
     self.assertEqual(
         views.get_readable_field_data_type(fields.BooleanField()),
         'Boolean (Either True or False)'
     )
Exemplo n.º 8
0
 def test_field_name(self):
     with self.assertRaises(AttributeError):
         views.get_readable_field_data_type("NotAField")
Exemplo n.º 9
0
 def test_field_name(self):
     with self.assertRaises(AttributeError):
         views.get_readable_field_data_type("NotAField")
Exemplo n.º 10
0
        def get_fields(model):
            opts = model._meta

            # Gather fields/field descriptions.
            fields = []
            for field in opts.fields:
                # ForeignKey is a special case since the field will actually be a
                # descriptor that returns the other object
                if isinstance(field, models.ForeignKey):
                    data_type = field.rel.to.__name__
                    app_label = field.rel.to._meta.app_label
                    verbose = parse_model_rst((_("the related `%(app_label)s.%(data_type)s` object") %
                                               {'app_label': app_label, 'data_type': data_type}),
                                              'xraymodel', _('model:') + data_type)
                else:
                    data_type = get_readable_field_data_type(field)
                    verbose = field.verbose_name

                help_text = field.help_text
                if help_text and '`' in help_text:
                    try:
                        help_text = parse_model_rst(help_text, 'xraymodel', _('model:') + opts.model_name)
                    except:
                        pass

                fields.append({
                    'name': field.name,
                    'group_name': 'self',
                    'data_type': data_type,
                    'verbose': verbose,
                    'help_text': help_text,
                    })

            # Gather many-to-many fields.
            for field in opts.many_to_many:
                data_type = field.rel.to.__name__
                app_label = field.rel.to._meta.app_label
                verbose = _("related `%(app_label)s.%(object_name)s` objects") % {
                    'app_label': app_label, 'object_name': data_type}
                fields.append({
                    'name': "%s.all" % field.name,
                    'group_name': 'm2m',
                    "data_type": 'List',
                    'verbose': parse_model_rst(_("all %s") % verbose, 'xraymodel', _('model:') + opts.model_name),
                    })
                fields.append({
                    'name': "%s.count" % field.name,
                    'group_name': 'm2m',
                    'data_type': 'Integer',
                    'verbose': parse_model_rst(_("number of %s") % verbose, 'xraymodel', _('model:') + opts.model_name),
                    })

            # Gather related objects
            # (v1.4) rels = opts.get_all_related_objects() + opts.get_all_related_many_to_many_objects()
            rels = opts.related_objects
            for rel in rels:
                # (v1.4)_rel_mod_meta = rel.opts
                _rel_mod_meta = rel.related_model._meta
                verbose = _("related `%(app_label)s.%(object_name)s` objects") % {
                    'app_label': _rel_mod_meta.app_label,
                    'object_name': _rel_mod_meta.object_name
                }
                accessor = rel.get_accessor_name()
                fields.append({
                    'name': "%s.all" % accessor,
                    'group_name': 'related',
                    'data_type': 'List',
                    'verbose': parse_model_rst(
                        _("all %s") % verbose,
                        'xraymodel',
                        _('model:') + opts.model_name
                    ),
                })
                fields.append({
                    'name': "%s.count" % accessor,
                    'group_name': 'related',
                    'data_type': 'Integer',
                    'verbose': parse_model_rst(_("number of %s") % verbose, 'xraymodel', _('model:') + opts.model_name),
                })

            return fields
Exemplo n.º 11
0
from __future__ import unicode_literals
Exemplo n.º 12
0
 def test_multiline_custom_field_truncation(self):
     self.assertEqual(
         views.get_readable_field_data_type(fields.ManyLineDocstringField()),
         u'Many-line custom field'
     )
Exemplo n.º 13
0
        def get_fields(model):
            opts = model._meta

            # Gather fields/field descriptions.
            fields = []
            for field in opts.fields:
                # ForeignKey is a special case since the field will actually be a
                # descriptor that returns the other object
                if isinstance(field, models.ForeignKey):
                    data_type = field.rel.to.__name__
                    app_label = field.rel.to._meta.app_label
                    verbose = parse_model_rst(
                        (_("the related `%(app_label)s.%(data_type)s` object")
                         % {
                             'app_label': app_label,
                             'data_type': data_type
                         }), 'xraymodel',
                        _('model:') + data_type)
                else:
                    data_type = get_readable_field_data_type(field)
                    verbose = field.verbose_name

                help_text = field.help_text
                if help_text and '`' in help_text:
                    try:
                        help_text = parse_model_rst(
                            help_text, 'xraymodel',
                            _('model:') + opts.model_name)
                    except:
                        pass

                fields.append({
                    'name': field.name,
                    'group_name': 'self',
                    'data_type': data_type,
                    'verbose': verbose,
                    'help_text': help_text,
                })

            # Gather many-to-many fields.
            for field in opts.many_to_many:
                data_type = field.rel.to.__name__
                app_label = field.rel.to._meta.app_label
                verbose = _(
                    "related `%(app_label)s.%(object_name)s` objects") % {
                        'app_label': app_label,
                        'object_name': data_type
                    }
                fields.append({
                    'name':
                    "%s.all" % field.name,
                    'group_name':
                    'm2m',
                    "data_type":
                    'List',
                    'verbose':
                    parse_model_rst(
                        _("all %s") % verbose, 'xraymodel',
                        _('model:') + opts.model_name),
                })
                fields.append({
                    'name':
                    "%s.count" % field.name,
                    'group_name':
                    'm2m',
                    'data_type':
                    'Integer',
                    'verbose':
                    parse_model_rst(
                        _("number of %s") % verbose, 'xraymodel',
                        _('model:') + opts.model_name),
                })

            # Gather related objects
            # (v1.4) rels = opts.get_all_related_objects() + opts.get_all_related_many_to_many_objects()
            rels = opts.related_objects
            for rel in rels:
                # (v1.4)_rel_mod_meta = rel.opts
                _rel_mod_meta = rel.related_model._meta
                verbose = _(
                    "related `%(app_label)s.%(object_name)s` objects") % {
                        'app_label': _rel_mod_meta.app_label,
                        'object_name': _rel_mod_meta.object_name
                    }
                accessor = rel.get_accessor_name()
                fields.append({
                    'name':
                    "%s.all" % accessor,
                    'group_name':
                    'related',
                    'data_type':
                    'List',
                    'verbose':
                    parse_model_rst(
                        _("all %s") % verbose, 'xraymodel',
                        _('model:') + opts.model_name),
                })
                fields.append({
                    'name':
                    "%s.count" % accessor,
                    'group_name':
                    'related',
                    'data_type':
                    'Integer',
                    'verbose':
                    parse_model_rst(
                        _("number of %s") % verbose, 'xraymodel',
                        _('model:') + opts.model_name),
                })

            return fields
Exemplo n.º 14
0
 def test_custom_fields(self):
     self.assertEqual(views.get_readable_field_data_type(CustomField()), "A custom field type")
     self.assertEqual(
         views.get_readable_field_data_type(DescriptionLackingField()), "Field of type: DescriptionLackingField"
     )