Projet

Général

Profil

0001-hobo_notify-consider-role.details-not-role.descripti.patch

Frédéric Péters, 06 janvier 2016 14:46

Télécharger (6,9 ko)

Voir les différences:

Subject: [PATCH] hobo_notify: consider role.details, not role.description
 (#9523)

 tests/test_hobo_notify.py | 88 ++++++++++++++++++++++++++++++++++++++++++++---
 wcs/ctl/hobo_notify.py    |  3 +-
 2 files changed, 84 insertions(+), 7 deletions(-)
tests/test_hobo_notify.py
87 87
                {
88 88
                    'name': u'Service enfance',
89 89
                    'slug': u'service-enfance',
90
                    'details': u'Rôle du service petite enfance',
91
                    'uuid': u'12345',
92
                    'emails': [u'petite-enfance@example.com'],
93
                    'emails_to_members': False,
94
                },
95
                {
96
                    'name': u'Service état civil',
97
                    'slug': u'service-ett-civil',
98
                    'details': u'Rôle du service état civil',
99
                    'uuid': u'xyz',
100
                    'emails': [u'etat-civil@example.com'],
101
                    'emails_to_members': True,
102
                },
103
            ]
104
        }
105
    }
106
    assert Role.count() == 1
107
    assert Role.select()[0].name == 'Service étt civil'
108
    assert Role.select()[0].slug == 'service-ett-civil'
109
    assert Role.select()[0].details is None
110
    assert Role.select()[0].emails is None
111
    assert Role.select()[0].emails_to_members is False
112
    existing_role_id = Role.select()[0].id
113
    CmdHoboNotify.process_notification(notification)
114
    assert Role.count() == 2
115
    old_role = Role.get(existing_role_id)
116
    assert old_role.name == 'Service état civil'
117
    assert old_role.slug == 'xyz'
118
    assert old_role.details == "Rôle du service état civil"
119
    assert old_role.emails == ['etat-civil@example.com']
120
    assert old_role.emails_to_members is True
121
    new_role = Role.get('12345')
122
    assert new_role.name == 'Service enfance'
123
    assert new_role.slug == '12345'
124
    assert new_role.details == "Rôle du service petite enfance"
125
    assert new_role.emails == ['petite-enfance@example.com']
126
    assert new_role.emails_to_members is False
127
    notification = {
128
        '@type': u'provision',
129
        'audience': [u'test'],
130
        'full': True,
131
        'objects': {
132
            '@type': 'role',
133
            'data': [
134
                {
135
                    '@type': 'role',
136
                    'name': u'Service enfance',
137
                    'slug': u'service-enfance',
138
                    'description': u'Rôle du service petite enfance',
139
                    'uuid': u'12345',
140
                    'emails': [u'petite-enfance@example.com'],
141
                    'emails_to_members': True,
142
                },
143
            ]
144
        }
145
    }
146
    CmdHoboNotify.process_notification(notification)
147
    assert Role.count() == 1
148
    assert Role.select()[0].id == new_role.id
149
    assert Role.select()[0].name == 'Service enfance'
150
    assert Role.select()[0].slug == '12345'
151
    assert Role.select()[0].details is None
152
    assert Role.select()[0].emails == ['petite-enfance@example.com']
153
    assert Role.select()[0].emails_to_members is True
154

  
155
def test_process_notification_role_description():
156
    # check descriptions are not used to fill role.details
157
    notification = {
158
        '@type': u'provision',
159
        'audience': [u'test'],
160
        'full': True,
161
        'objects': {
162
            '@type': 'role',
163
            'data': [
164
                {
165
                    'name': u'Service enfance',
166
                    'slug': u'service-enfance',
90 167
                    'description': u'Rôle du service petite enfance',
91 168
                    'uuid': u'12345',
92 169
                    'emails': [u'petite-enfance@example.com'],
......
115 192
    old_role = Role.get(existing_role_id)
116 193
    assert old_role.name == 'Service état civil'
117 194
    assert old_role.slug == 'xyz'
118
    assert old_role.details == 'Rôle du service état civil'
195
    assert old_role.details is None
119 196
    assert old_role.emails == ['etat-civil@example.com']
120 197
    assert old_role.emails_to_members is True
121 198
    new_role = Role.get('12345')
122 199
    assert new_role.name == 'Service enfance'
123 200
    assert new_role.slug == '12345'
124
    assert new_role.details == 'Rôle du service petite enfance'
201
    assert new_role.details is None
125 202
    assert new_role.emails == ['petite-enfance@example.com']
126 203
    assert new_role.emails_to_members is False
127 204
    notification = {
......
148 225
    assert Role.select()[0].id == new_role.id
149 226
    assert Role.select()[0].name == 'Service enfance'
150 227
    assert Role.select()[0].slug == '12345'
151
    assert Role.select()[0].details == 'Rôle du service petite enfance'
228
    assert Role.select()[0].details is None
152 229
    assert Role.select()[0].emails == ['petite-enfance@example.com']
153 230
    assert Role.select()[0].emails_to_members is True
154 231

  
232

  
155 233
def test_process_notification_role_deprovision():
156 234
    notification = {
157 235
        '@type': u'deprovision',
......
349 427
    old_role = Role.get(existing_role_id)
350 428
    assert old_role.name == 'Service état civil'
351 429
    assert old_role.slug == 'xyz'
352
    assert old_role.details == 'Rôle du service état civil'
430
    assert old_role.details is None
353 431
    assert old_role.emails == ['etat-civil@example.com']
354 432
    assert old_role.emails_to_members is True
355 433
    new_role = Role.get('12345')
356 434
    assert new_role.name == 'Service enfance'
357 435
    assert new_role.slug == '12345'
358
    assert new_role.details == 'Rôle du service petite enfance'
436
    assert new_role.details is None
359 437
    assert new_role.emails == ['petite-enfance@example.com']
360 438
    assert new_role.emails_to_members is False
361 439

  
wcs/ctl/hobo_notify.py
95 95
    def check_valid_role(cls, o):
96 96
        return 'uuid' in o \
97 97
           or 'name' in o \
98
           or 'description' in o \
99 98
           or 'emails' in o \
100 99
           or 'emails_to_members' in o \
101 100
           or 'slug' in o
......
108 107
            uuid = o['uuid'].encode(publisher.site_charset)
109 108
            uuids.add(uuid)
110 109
            slug = o['slug'].encode(publisher.site_charset)
111
            details = o.get('description', '').encode(publisher.site_charset)
110
            details = o.get('details', '').encode(publisher.site_charset) or None
112 111
            name = o['name'].encode(publisher.site_charset)
113 112
            emails = [email.encode(publisher.site_charset) for email in o['emails']]
114 113
            emails_to_members = o['emails_to_members']
115
-