def show_opt_outs(self, user_api, email_address): opt_out_store = OptOutStore(user_api.manager, user_api.user_account_key) opt_outs = opt_out_store.list_opt_outs() print "Address Type, Address, Message ID, Timestamp" print "============================================" for key in opt_outs: addr_type, _colon, addr = key.partition(":") opt_out = opt_out_store.get_opt_out(addr_type, addr) print "%s, %s, %s, %s" % (addr_type, addr, opt_out.message, opt_out.created_at)
def show_opt_outs(self, user_api, email_address): opt_out_store = OptOutStore(user_api.manager, user_api.user_account_key) opt_outs = opt_out_store.list_opt_outs() print "Address Type, Address, Message ID, Timestamp" print "============================================" for key in opt_outs: addr_type, _colon, addr = key.partition(":") opt_out = opt_out_store.get_opt_out(addr_type, addr) print "%s, %s, %s, %s" % (addr_type, addr, opt_out.message, opt_out.created_at)
class TestUSSDOptOutHandler(VumiTestCase): @inlineCallbacks def setUp(self): self.eh_helper = self.add_helper(EventHandlerHelper()) yield self.eh_helper.setup_event_dispatcher( 'sisi_ni_amani', USSDOptOutHandler, { 'poll_manager_prefix': 'vumigo.', }) vumi_api = self.eh_helper.vumi_helper.get_vumi_api() user_helper = yield self.eh_helper.vumi_helper.get_or_create_user() self.contact_store = user_helper.user_api.contact_store self.oo_store = OptOutStore(vumi_api.manager, user_helper.account_key) self.pm = PollManager(vumi_api.redis, 'vumigo.') self.add_cleanup(self.pm.stop) self.eh_helper.track_event('survey_completed', 'sisi_ni_amani') @inlineCallbacks def test_opt_in(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event('survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) yield self.oo_store.new_opt_out('msisdn', msisdn, { 'message_id': message_id}) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'1' yield contact.save() [opt_out] = yield self.oo_store.list_opt_outs() self.assertTrue(opt_out) yield self.eh_helper.dispatch_event(event) opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) @inlineCallbacks def test_opt_out(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event('survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'2' yield contact.save() opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) yield self.eh_helper.dispatch_event(event) [opt_out] = yield self.oo_store.list_opt_outs() self.assertTrue(opt_out) @inlineCallbacks def test_opt_out_for_empty_outed_out_value(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event('survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'' yield contact.save() opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) yield self.eh_helper.dispatch_event(event) opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, [])
class TestUSSDOptOutHandler(VumiTestCase): @inlineCallbacks def setUp(self): self.eh_helper = self.add_helper(EventHandlerHelper()) yield self.eh_helper.setup_event_dispatcher( 'sisi_ni_amani', USSDOptOutHandler, { 'poll_manager_prefix': 'vumigo.', }) vumi_api = self.eh_helper.vumi_helper.get_vumi_api() user_helper = yield self.eh_helper.vumi_helper.get_or_create_user() self.contact_store = user_helper.user_api.contact_store self.oo_store = OptOutStore(vumi_api.manager, user_helper.account_key) self.pm = PollManager(vumi_api.redis, 'vumigo.') self.add_cleanup(self.pm.stop) self.eh_helper.track_event('survey_completed', 'sisi_ni_amani') @inlineCallbacks def test_opt_in(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event( 'survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) yield self.oo_store.new_opt_out('msisdn', msisdn, {'message_id': message_id}) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'1' yield contact.save() [opt_out] = yield self.oo_store.list_opt_outs() self.assertTrue(opt_out) yield self.eh_helper.dispatch_event(event) opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) @inlineCallbacks def test_opt_out(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event( 'survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'2' yield contact.save() opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) yield self.eh_helper.dispatch_event(event) [opt_out] = yield self.oo_store.list_opt_outs() self.assertTrue(opt_out) @inlineCallbacks def test_opt_out_for_empty_outed_out_value(self): msisdn = u'+2345' message_id = u'message-id' event = self.eh_helper.make_event( 'survey_completed', { 'from_addr': msisdn, 'message_id': message_id, 'transport_type': 'ussd', }) contact = yield self.contact_store.new_contact(msisdn=msisdn) contact.extra['opted_out'] = u'' yield contact.save() opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, []) yield self.eh_helper.dispatch_event(event) opt_outs = yield self.oo_store.list_opt_outs() self.assertEqual(opt_outs, [])