def test_field_enumerator06(self): "Filter/exclude : multiple conditions + field true attributes" self._deactivate_translation() expected = [ ('birthday', _(u'Birthday')), ('civility', _(u'Civility')), ('description', _(u'Description')), ('email', _(u'Email address')), ('first_name', _(u'First name')), ('is_a_nerd', _(u'Is a Nerd')), ('last_name', _(u'Last name')), ('sector', _(u'Line of business')), ('mobile', _(u'Mobile')), ('user', _(u'Owner user')), ('phone', _(u'Phone number')), ('image', _(u'Photograph')), ('position', _(u'Position')), ('languages', _(u'Spoken language(s)')), ('url_site', _(u'Web Site')), ] choices = meta.ModelFieldEnumerator(FakeContact, only_leafs=False) \ .filter(editable=True, viewable=True).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator(FakeContact, only_leafs=False) \ .exclude(editable=False, viewable=False).choices() self.assertEqual(expected, choices, choices)
def test_field_enumerator05(self): "Other ContentType." self._deactivate_translation() expected = [ ('created', _('Creation date')), ('description', _('Description')), ('modified', _('Last modification')), ('name', _('Name of the campaign')), ] choices = meta.ModelFieldEnumerator(FakeEmailCampaign).filter( viewable=True).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator( # FakeEmailCampaign, only_leafs=False FakeEmailCampaign, only_leaves=False, ).filter( # (lambda f, depth: f.get_internal_type() != 'ForeignKey'), (lambda model, field, depth: field.get_internal_type() != 'ForeignKey'), viewable=True, ).choices() expected.append(('mailing_lists', _('Related mailing lists'))) self.assertEqual(expected, choices, choices)
def test_field_enumerator03(self): "deep = 1" self._deactivate_translation() fs = partial(u'[{user}] - {field}'.format, user=_(u'Owner user')) expected = [ ('created', _(u'Creation date')), ('modified', _('Last modification')), ('user__email', fs(field=_(u'Email address'))), ('user__last_name', fs(field=_(u'Last name'))), ('user__username', fs(field=_(u'Username'))), ] self.assertEqual( expected, meta.ModelFieldEnumerator(CremeEntity, deep=1).filter(viewable=True).choices()) self.assertEqual( expected, meta.ModelFieldEnumerator( CremeEntity, deep=1, only_leafs=True).filter(viewable=True).choices()) self.assertEqual( [ ('created', _(u'Creation date')), ('modified', _(u'Last modification')), ('user', _(u'Owner user')), # <=== ('user__email', fs(field=_(u'Email address'))), ('user__last_name', fs(field=_(u'Last name'))), ('user__username', fs(field=_(u'Username'))), ], meta.ModelFieldEnumerator( CremeEntity, deep=1, only_leafs=False).filter(viewable=True).choices())
def test_field_enumerator02(self): "Filter, exclude (simple)" self._deactivate_translation() expected = [ ('created', _(u'Creation date')), ('modified', _(u'Last modification')), ] choices = meta.ModelFieldEnumerator(CremeEntity).filter( viewable=True).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator(CremeEntity).exclude( viewable=False).choices() self.assertEqual(expected, choices, choices) expected = [('created', _(u'Creation date')), ('modified', _(u'Last modification')), ('user', _(u'Owner user'))] choices = meta.ModelFieldEnumerator( CremeEntity, only_leafs=False).filter(viewable=True).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator( CremeEntity, only_leafs=False).exclude(viewable=False).choices() self.assertEqual(expected, choices, choices)
def test_field_enumerator01(self): self._deactivate_translation() expected = [ ('created', _('Creation date')), ('description', _('Description')), ('header_filter_search_field', 'header filter search field'), ('id', 'ID'), ('is_deleted', 'is deleted'), ('modified', _('Last modification')), ('uuid', 'uuid'), ] choices = meta.ModelFieldEnumerator(CremeEntity).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator(CremeEntity, only_leafs=True).choices() self.assertEqual(expected, choices, choices) choices = meta.ModelFieldEnumerator(CremeEntity, only_leafs=False).choices() self.assertEqual([ ('created', _('Creation date')), ('description', _('Description')), ('entity_type', 'entity type'), ('header_filter_search_field', 'header filter search field'), ('id', 'ID'), ('is_deleted', 'is deleted'), ('modified', _('Last modification')), ('user', _('Owner user')), ('sandbox', 'sandbox'), ('uuid', 'uuid'), ], choices, choices)
def test_field_enumerator04(self): "Filter with function, exclude" self._deactivate_translation() self.assertEqual([('modified', _('Last modification'))], meta.ModelFieldEnumerator(CremeEntity, deep=1).filter( lambda f, depth: f.name.endswith('ied'), viewable=True).choices()) self.assertEqual([('created', _('Creation date'))], meta.ModelFieldEnumerator( CremeEntity, deep=0).exclude( lambda f, depth: f.name.endswith('ied'), viewable=False).choices())
def test_field_enumerator09(self): "Translation activated." choices = { # *meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False) *meta.ModelFieldEnumerator( FakeActivity, depth=1, only_leaves=False).filter(viewable=True).choices(), } fs = '[{}] - {}'.format type_lbl = _('Activity type') user_lbl = _('Owner user') self.assertSetEqual( { ('type', type_lbl), ('created', _('Creation date')), ('description', _('Description')), ('end', _('End')), ('modified', _('Last modification')), ('minutes', _('Minutes')), ('user', user_lbl), ('start', _('Start')), ('title', _('Title')), ('place', _('Place')), ('type__name', fs(type_lbl, _('Name'))), ('user__email', fs(user_lbl, _('Email address'))), ('user__last_name', fs(user_lbl, _('Last name'))), ('user__username', fs(user_lbl, _('Username'))), }, choices, choices, )
def test_field_enumerator08(self): "'depth' argument." self._deactivate_translation() choices = meta.ModelFieldEnumerator( # FakeActivity, deep=1, only_leafs=False, FakeActivity, depth=1, only_leaves=False, ).filter( # (lambda f, depth: not depth or f.name == 'name'), (lambda model, field, depth: not depth or field.name == 'name'), viewable=True, ).choices() type_lbl = _('Activity type') self.assertListEqual( [ ('type', type_lbl), ('created', _('Creation date')), ('description', _('Description')), ('end', _('End')), ('modified', _('Last modification')), ('minutes', _('Minutes')), ('user', _('Owner user')), ('place', _('Place')), ('start', _('Start')), ('title', _('Title')), ('type__name', f'[{type_lbl}] - {_("Name")}'), ], choices, choices, )
def test_field_enumerator07(self): "Ordering of FKs." self._deactivate_translation() choices = meta.ModelFieldEnumerator( # FakeActivity, deep=1, only_leafs=False, FakeActivity, depth=1, only_leaves=False, ).filter(viewable=True).choices() fs = '[{}] - {}'.format type_lbl = _('Activity type') user_lbl = _('Owner user') self.assertListEqual( [ ('type', type_lbl), ('created', _('Creation date')), ('description', _('Description')), ('end', _('End')), ('modified', _('Last modification')), ('minutes', _('Minutes')), ('user', user_lbl), ('place', _('Place')), ('start', _('Start')), ('title', _('Title')), ('type__name', fs(type_lbl, _('Name'))), ('user__email', fs(user_lbl, _('Email address'))), ('user__last_name', fs(user_lbl, _('Last name'))), ('user__username', fs(user_lbl, _('Username'))), ], choices, choices, )
def test_field_enumerator04(self): "Filter with function, exclude." self._deactivate_translation() self.assertListEqual( [('modified', _('Last modification'))], # meta.ModelFieldEnumerator(CremeEntity, deep=1) # .filter(lambda f, depth: f.name.endswith('ied'), viewable=True) meta.ModelFieldEnumerator(CremeEntity, depth=1).filter( lambda model, field, depth: field.name.endswith('ied'), viewable=True).choices(), ) self.assertListEqual( [('description', _('Description'))], # meta.ModelFieldEnumerator(CremeEntity, deep=0) # .exclude(lambda f, depth: f.name.endswith('ed'), viewable=False) meta.ModelFieldEnumerator(CremeEntity, depth=0).exclude( lambda model, field, depth: field.name.endswith('ed'), viewable=False).choices(), )
def test_field_enumerator08(self): "'depth' argument" self._deactivate_translation() choices = meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False) \ .filter((lambda f, depth: not depth or f.name == 'name'), viewable=True) \ .choices() type_lbl = _(u'Activity type') self.assertEqual([ ('type', type_lbl), ('created', _(u'Creation date')), ('end', _(u'End')), ('modified', _(u'Last modification')), ('user', _(u'Owner user')), ('start', _(u'Start')), ('title', _(u'Title')), ('type__name', u'[{}] - {}'.format(type_lbl, _(u'Name'))), ], choices, choices)
def test_field_enumerator07(self): "Ordering of FKs" self._deactivate_translation() choices = meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False) \ .filter(viewable=True).choices() fs = u'[{}] - {}'.format type_lbl = _(u'Activity type') user_lbl = _('Owner user') self.assertEqual([ ('type', type_lbl), ('created', _(u'Creation date')), ('end', _(u'End')), ('modified', _(u'Last modification')), ('user', user_lbl), ('start', _(u'Start')), ('title', _(u'Title')), ('type__name', fs(type_lbl, _(u'Name'))), ('user__email', fs(user_lbl, _(u'Email address'))), ('user__last_name', fs(user_lbl, _(u'Last name'))), ('user__username', fs(user_lbl, _(u'Username'))), ], choices, choices)