From ceebeda2b525d3c4f8e8e3cde54cfdb4ab82bacc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 6 Jan 2016 14:41:28 +0100 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(-) diff --git a/tests/test_hobo_notify.py b/tests/test_hobo_notify.py index 8c6751c..9a43bea 100644 --- a/tests/test_hobo_notify.py +++ b/tests/test_hobo_notify.py @@ -87,6 +87,83 @@ def test_process_notification_role(): { 'name': u'Service enfance', 'slug': u'service-enfance', + 'details': u'Rôle du service petite enfance', + 'uuid': u'12345', + 'emails': [u'petite-enfance@example.com'], + 'emails_to_members': False, + }, + { + 'name': u'Service état civil', + 'slug': u'service-ett-civil', + 'details': u'Rôle du service état civil', + 'uuid': u'xyz', + 'emails': [u'etat-civil@example.com'], + 'emails_to_members': True, + }, + ] + } + } + assert Role.count() == 1 + assert Role.select()[0].name == 'Service étt civil' + assert Role.select()[0].slug == 'service-ett-civil' + assert Role.select()[0].details is None + assert Role.select()[0].emails is None + assert Role.select()[0].emails_to_members is False + existing_role_id = Role.select()[0].id + CmdHoboNotify.process_notification(notification) + assert Role.count() == 2 + old_role = Role.get(existing_role_id) + assert old_role.name == 'Service état civil' + assert old_role.slug == 'xyz' + assert old_role.details == "Rôle du service état civil" + assert old_role.emails == ['etat-civil@example.com'] + assert old_role.emails_to_members is True + new_role = Role.get('12345') + assert new_role.name == 'Service enfance' + assert new_role.slug == '12345' + assert new_role.details == "Rôle du service petite enfance" + assert new_role.emails == ['petite-enfance@example.com'] + assert new_role.emails_to_members is False + notification = { + '@type': u'provision', + 'audience': [u'test'], + 'full': True, + 'objects': { + '@type': 'role', + 'data': [ + { + '@type': 'role', + 'name': u'Service enfance', + 'slug': u'service-enfance', + 'description': u'Rôle du service petite enfance', + 'uuid': u'12345', + 'emails': [u'petite-enfance@example.com'], + 'emails_to_members': True, + }, + ] + } + } + CmdHoboNotify.process_notification(notification) + assert Role.count() == 1 + assert Role.select()[0].id == new_role.id + assert Role.select()[0].name == 'Service enfance' + assert Role.select()[0].slug == '12345' + assert Role.select()[0].details is None + assert Role.select()[0].emails == ['petite-enfance@example.com'] + assert Role.select()[0].emails_to_members is True + +def test_process_notification_role_description(): + # check descriptions are not used to fill role.details + notification = { + '@type': u'provision', + 'audience': [u'test'], + 'full': True, + 'objects': { + '@type': 'role', + 'data': [ + { + 'name': u'Service enfance', + 'slug': u'service-enfance', 'description': u'Rôle du service petite enfance', 'uuid': u'12345', 'emails': [u'petite-enfance@example.com'], @@ -115,13 +192,13 @@ def test_process_notification_role(): old_role = Role.get(existing_role_id) assert old_role.name == 'Service état civil' assert old_role.slug == 'xyz' - assert old_role.details == 'Rôle du service état civil' + assert old_role.details is None assert old_role.emails == ['etat-civil@example.com'] assert old_role.emails_to_members is True new_role = Role.get('12345') assert new_role.name == 'Service enfance' assert new_role.slug == '12345' - assert new_role.details == 'Rôle du service petite enfance' + assert new_role.details is None assert new_role.emails == ['petite-enfance@example.com'] assert new_role.emails_to_members is False notification = { @@ -148,10 +225,11 @@ def test_process_notification_role(): assert Role.select()[0].id == new_role.id assert Role.select()[0].name == 'Service enfance' assert Role.select()[0].slug == '12345' - assert Role.select()[0].details == 'Rôle du service petite enfance' + assert Role.select()[0].details is None assert Role.select()[0].emails == ['petite-enfance@example.com'] assert Role.select()[0].emails_to_members is True + def test_process_notification_role_deprovision(): notification = { '@type': u'deprovision', @@ -349,13 +427,13 @@ def test_process_notification_user_provision(): old_role = Role.get(existing_role_id) assert old_role.name == 'Service état civil' assert old_role.slug == 'xyz' - assert old_role.details == 'Rôle du service état civil' + assert old_role.details is None assert old_role.emails == ['etat-civil@example.com'] assert old_role.emails_to_members is True new_role = Role.get('12345') assert new_role.name == 'Service enfance' assert new_role.slug == '12345' - assert new_role.details == 'Rôle du service petite enfance' + assert new_role.details is None assert new_role.emails == ['petite-enfance@example.com'] assert new_role.emails_to_members is False diff --git a/wcs/ctl/hobo_notify.py b/wcs/ctl/hobo_notify.py index 7d648e6..188b5c9 100644 --- a/wcs/ctl/hobo_notify.py +++ b/wcs/ctl/hobo_notify.py @@ -95,7 +95,6 @@ class CmdHoboNotify(Command): def check_valid_role(cls, o): return 'uuid' in o \ or 'name' in o \ - or 'description' in o \ or 'emails' in o \ or 'emails_to_members' in o \ or 'slug' in o @@ -108,7 +107,7 @@ class CmdHoboNotify(Command): uuid = o['uuid'].encode(publisher.site_charset) uuids.add(uuid) slug = o['slug'].encode(publisher.site_charset) - details = o.get('description', '').encode(publisher.site_charset) + details = o.get('details', '').encode(publisher.site_charset) or None name = o['name'].encode(publisher.site_charset) emails = [email.encode(publisher.site_charset) for email in o['emails']] emails_to_members = o['emails_to_members'] -- 2.7.0.rc3