Projet

Général

Profil

0001-allow-string-or-boolean-kind-for-attribute-definitio.patch

Emmanuel Cazenave, 04 juin 2018 16:51

Télécharger (2,89 ko)

Voir les différences:

Subject: [PATCH] allow string or boolean kind for attribute definition
 (#23306)

 hobo/profile/models.py |  4 ++--
 hobo/profile/views.py  |  2 +-
 tests/test_manager.py  | 18 ++++++++++++++++++
 3 files changed, 21 insertions(+), 3 deletions(-)
hobo/profile/models.py
33 33
            blank=True, default=True)
34 34
    user_visible = models.BooleanField(verbose_name=_('user visible'),
35 35
            blank=True, default=True)
36
    kind = models.CharField(max_length=16, verbose_name=_('kind'),
37
            default='string')
36
    kind = models.CharField(max_length=16, verbose_name=_('kind'), default='string',
37
                            choices=(('string', _('string')), ('boolean', _('boolean'))))
38 38
    disabled = models.BooleanField(verbose_name=_('disabled'),
39 39
            default=False)
40 40
    order = models.PositiveIntegerField()
hobo/profile/views.py
32 32
class AddAttributeView(CreateView):
33 33
    model = AttributeDefinition
34 34
    fields = ['label', 'name', 'description', 'required', 'asked_on_registration',
35
              'user_editable', 'user_visible', 'disabled']
35
              'user_editable', 'user_visible', 'disabled', 'kind']
36 36
    success_url = reverse_lazy('profile-home')
37 37

  
38 38
add_attribute = AddAttributeView.as_view()
tests/test_manager.py
7 7
import pytest
8 8
from webtest import TestApp
9 9

  
10
from hobo.profile import models
10 11
from hobo.wsgi import application
11 12

  
12 13
pytestmark = pytest.mark.django_db
......
44 45
    app = login(TestApp(application))
45 46
    app.get('/logout/')
46 47
    assert app.get('/', status=302).location.endswith('/login/?next=/')
48

  
49

  
50
def test_add_attribute(admin_user):
51
    app = login(TestApp(application))
52
    assert models.AttributeDefinition.objects.filter(kind='boolean').count() == 0
53
    page = app.get('/profile/add-attribute', status=200)
54
    page.form['label'] = 'test'
55
    page.form['name'] = 'test'
56
    page.form['description'] = 'test'
57
    page.form['required'] = True
58
    page.form['asked_on_registration'] = False
59
    page.form['user_editable'] = False
60
    page.form['user_visible'] = False
61
    page.form['disabled'] = False
62
    page.form['kind'] = 'boolean'
63
    page.form.submit()
64
    assert models.AttributeDefinition.objects.filter(kind='boolean').count() == 1
47
-