Projet

Général

Profil

0003-last-fixes-to-fixup-rebase.patch

Benjamin Dauvergne, 19 juin 2019 20:51

Télécharger (4,97 ko)

Voir les différences:

Subject: [PATCH 3/3] last fixes (to fixup/rebase)

 src/authentic2/forms/mixins.py |  3 ++-
 tests/test_profile.py          | 47 ++++++++++++++++++++++------------
 2 files changed, 33 insertions(+), 17 deletions(-)
src/authentic2/forms/mixins.py
17 17
from collections import OrderedDict
18 18

  
19 19
from django import forms
20
from django.utils.translation import ugettext as _
20 21

  
21 22

  
22 23
class LockedFieldFormMixin(object):
......
47 48
                        # TextArea or CheckboxInput
48 49
                        if isinstance(initial, bool):
49 50
                            initial = _('Yes') if initial else _('No')
50
                        pass
51 51
            else:
52 52
                for key, label in choices:
53 53
                    if initial == key:
......
57 57
                label=field.label,
58 58
                help_text=field.help_text,
59 59
                initial=initial,
60
                required=False,
60 61
                widget=forms.TextInput(attrs={'readonly': ''}))
61 62
        if not locked_fields:
62 63
            return
tests/test_profile.py
29 29
    url = reverse('profile_edit')
30 30
    resp = app.get(url, status=200)
31 31

  
32
    attribute = Attribute.objects.create(
32
    phone = Attribute.objects.create(
33 33
        name='phone', label='phone',
34
        kind='string', user_visible=True, user_editable=True)
34
        kind='phone_number', user_visible=True, user_editable=True)
35
    title = Attribute.objects.create(
36
        name='title', label='title',
37
        kind='title', user_visible=True, user_editable=True)
38
    agreement = Attribute.objects.create(
39
        name='agreement', label='agreement',
40
        kind='boolean', user_visible=True, user_editable=True)
35 41

  
36 42
    resp = app.get(url, status=200)
37
    resp = app.post(url, params={
38
        'csrfmiddlewaretoken': resp.form['csrfmiddlewaretoken'].value,
39
        'edit-profile-first_name': resp.form['edit-profile-first_name'].value,
40
        'edit-profile-last_name': resp.form['edit-profile-last_name'].value,
41
        'edit-profile-phone': '1234'
42
    }, status=302)
43
    resp.form['edit-profile-phone'] = '1234'
44
    resp = resp.form.submit()
43 45
    # verify that missing next_url in POST is ok
44 46
    assert resp['Location'].endswith(reverse('account_management'))
45
    assert attribute.get_value(simple_user) == '1234'
47
    assert phone.get_value(simple_user) == '1234'
46 48

  
47 49
    resp = app.get(url, status=200)
48 50
    resp.form.set('edit-profile-phone', '0123456789')
49 51
    resp = resp.form.submit().follow()
50
    assert attribute.get_value(simple_user) == '0123456789'
52
    assert phone.get_value(simple_user) == '0123456789'
51 53

  
52 54
    resp = app.get(url, status=200)
53 55
    resp.form.set('edit-profile-phone', '9876543210')
54 56
    resp = resp.form.submit('cancel').follow()
55
    assert attribute.get_value(simple_user) == '0123456789'
57
    assert phone.get_value(simple_user) == '0123456789'
56 58

  
57
    attribute.set_value(simple_user, '0123456789', verified=True)
59
    phone.set_value(simple_user, '0123456789', verified=True)
60
    title.set_value(simple_user, 'Mr', verified=True)
61
    agreement.set_value(simple_user, True, verified=True)
58 62
    resp = app.get(url, status=200)
59 63
    assert 'edit-profile-phone' not in resp.form.fields
64
    assert 'edit-profile-title' not in resp.form.fields
65
    assert 'edit-profile-agreement' not in resp.form.fields
60 66
    assert 'readonly' in resp.form['edit-profile-phone@disabled'].attrs
67
    assert 'readonly' in resp.form['edit-profile-title@disabled'].attrs
68
    assert 'readonly' in resp.form['edit-profile-agreement@disabled'].attrs
69
    resp.form.set('edit-profile-phone@disabled', '1234')
70
    resp.form.set('edit-profile-title@disabled', 'Mrs')
71
    resp.form.set('edit-profile-agreement@disabled', 'False')
61 72
    resp = resp.form.submit().follow()
62
    assert attribute.get_value(simple_user) == '0123456789'
73
    assert phone.get_value(simple_user) == '0123456789'
74
    assert title.get_value(simple_user) == 'Mr'
75
    assert agreement.get_value(simple_user) is True
63 76

  
64
    attribute.disabled = True
65
    attribute.save()
77
    phone.disabled = True
78
    phone.save()
66 79
    resp = app.get(url, status=200)
67 80
    assert 'edit-profile-phone@disabled' not in resp
68
    assert attribute.get_value(simple_user) == '0123456789'
81
    assert 'edit-profile-title@disabled' in resp
82
    assert 'edit-profile-agreement@disabled' in resp
83
    assert phone.get_value(simple_user) == '0123456789'
69 84

  
70 85

  
71 86
def test_account_edit_next_url(app, simple_user, external_redirect_next_url, assert_external_redirect):
72
-