Exemplo n.º 1
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.msg_helper = self.add_helper(
         GoMessageHelper(vumi_helper=self.vumi_helper))
     self.user_helper = yield self.vumi_helper.make_user(u'user')
     self.conv = yield self.user_helper.create_conversation(
         conversation_type=u'some_conversation')
Exemplo n.º 2
0
    def setUp(self):
        super(TestMessageStoreResource, self).setUp()

        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.msg_helper = self.add_helper(GoMessageHelper())
        self.user_helper = yield self.vumi_helper.make_user(u"user")
        self.app_worker.user_api = self.user_helper.user_api

        self.message_store = self.vumi_helper.get_vumi_api().mdb

        self.conversation = yield self.user_helper.create_conversation(
            u'jsbox', started=True)

        # store inbound
        yield self.message_store.add_inbound_message(
            self.msg_helper.make_inbound('hello'),
            batch_id=self.conversation.batch.key)

        # store outbound
        outbound_msg = self.msg_helper.make_outbound('hello')
        yield self.message_store.add_outbound_message(
            outbound_msg, batch_id=self.conversation.batch.key)

        # ack outbound
        event = self.msg_helper.make_ack(outbound_msg)
        yield self.message_store.add_event(event)

        # monkey patch for when no conversation_key is provided
        self.app_worker.conversation_for_api = lambda *a: self.conversation

        yield self.create_resource({})
Exemplo n.º 3
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.msg_helper = self.add_helper(GoMessageHelper())
     self.billing_api = BillingApiMock()
     self.ri_helper = self.vumi_helper.get_worker_helper(
         "billing_dispatcher_ri")
     self.ro_helper = self.vumi_helper.get_worker_helper(
         "billing_dispatcher_ro")
Exemplo n.º 4
0
 def setUp(self):
     super(TestGoOutboundResource, self).setUp()
     yield self.create_resource({})
     self.vumi_helper = yield self.add_helper(VumiApiHelper(),
                                              setup_vumi_api=True)
     self.app_helper = self.add_helper(
         ApplicationHelper(u"dummy", self.vumi_helper))
     self.msg_helper = self.add_helper(GoMessageHelper())
Exemplo n.º 5
0
    def __init__(self, middleware_class):
        self._vumi_helper = VumiApiHelper()
        self._msg_helper = GoMessageHelper()
        self.middleware_class = middleware_class
        self._middlewares = []

        generate_proxies(self, self._vumi_helper)
        generate_proxies(self, self._msg_helper)
Exemplo n.º 6
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(
         VumiApiHelper(is_sync=self.is_sync))
     self.user_helper = yield self.vumi_helper.make_user(u'user')
     user_account = yield self.user_helper.get_user_account()
     self.optout_store = OptOutStore.from_user_account(user_account)
     self.conv_store = ConversationStore.from_user_account(user_account)
     self.contact_store = ContactStore.from_user_account(user_account)
Exemplo n.º 7
0
    def setUp(self):
        super(TestContactsResource, self).setUp()

        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.user_helper = yield self.vumi_helper.make_user(u"user")
        self.app_worker.user_api = self.user_helper.user_api
        self.contact_store = self.user_helper.user_api.contact_store

        yield self.create_resource({'delivery_class': u'sms'})
Exemplo n.º 8
0
    def setUp(self):
        super(TestGroupsResource, self).setUp()

        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.user_helper = yield self.vumi_helper.make_user(u"user")
        self.app_worker.user_api = self.user_helper.user_api
        self.contact_store = self.user_helper.user_api.contact_store

        yield self.create_resource({})
Exemplo n.º 9
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.user_helper = yield self.vumi_helper.get_or_create_user()
     riak_manager = self.vumi_helper.get_riak_manager()
     self.contact_store = ContactStore(
         riak_manager, self.user_helper.account_key)
     # Old contact proxy for making unindexed contacts.
     per_account_manager = riak_manager.sub_manager(
         self.user_helper.account_key)
     self.contacts_v1 = per_account_manager.proxy(ContactV1)
Exemplo n.º 10
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(VumiApiHelper())

        self.user_helper = yield self.vumi_helper.make_user(u'user')
        user_account = yield self.user_helper.get_user_account()
        self.store = ContactStore.from_user_account(user_account)

        self.alt_user_helper = yield self.vumi_helper.make_user(u'other_user')
        alt_user_account = yield self.alt_user_helper.get_user_account()
        self.store_alt = ContactStore.from_user_account(alt_user_account)
Exemplo n.º 11
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(
            VumiApiHelper(is_sync=self.is_sync))
        self.vumi_api = self.vumi_helper.get_vumi_api()
        self.user_helper = yield self.vumi_helper.make_user(u'Buster')
        self.user_api = self.user_helper.user_api

        # Some stores for old versions to test migrations.
        self.account_store_vnone = AccountStoreVNone(self.vumi_api.manager)
        self.account_store_v1 = AccountStoreV1(self.vumi_api.manager)
Exemplo n.º 12
0
    def __init__(self, use_riak=True):
        # Note: We pass `is_sync=True` to the VumiApiHelper because a Django
        #       test case cannot be async. We define a property lower down that
        #       proxies `is_sync` from the VumiApiHelper we're wrapping so that
        #       we can be used by other helpers more easily.
        self._vumi_helper = VumiApiHelper(is_sync=True, use_riak=use_riak)
        self.use_riak = use_riak  # So create_user_profile() knows what to do.

        generate_proxies(self, self._vumi_helper)
        # TODO: Better/more generic way to do this patching?
        self._settings_patches = []
Exemplo n.º 13
0
 def setUp(self):
     self.vumi_helper = self.add_helper(VumiApiHelper(),
                                        setup_vumi_api=False)
     self.worker_helper = self.vumi_helper.get_worker_helper()
     self.api = yield self.worker_helper.get_worker(
         CommandDispatcher,
         self.vumi_helper.mk_config({
             'transport_name':
             'this should not be an ApplicationWorker',
             'worker_names': ['worker_1', 'worker_2'],
         }))
Exemplo n.º 14
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.user_helper = yield self.vumi_helper.make_user(u'user')
        self.user_api = self.user_helper.user_api
        self.campaign_key = self.user_helper.account_key

        site = Site(
            GoApiServer(self.campaign_key, self.vumi_helper.get_vumi_api()))
        self.server = yield reactor.listenTCP(0, site)
        self.add_cleanup(self.server.loseConnection)
        addr = self.server.getHost()
        self.proxy = Proxy("http://%s:%d/" % (addr.host, addr.port))
Exemplo n.º 15
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(VumiApiHelper())

        response = Mock()
        response.code = http.OK
        response.delivered_body = 'javascript!'
        self.mocked_url_call = Mock(
            side_effect=[succeed(response),
                         succeed(response)])

        self.patch(ConversationConfigResource, 'load_source_from_url',
                   self.mocked_url_call)

        self.config = self.vumi_helper.mk_config({
            'worker_name': 'conversation_api_worker',
            'web_path': '/foo/',
            'web_port': 0,
            'health_path': '/health/',
        })
        self.worker = yield self.vumi_helper.get_worker_helper().get_worker(
            ConversationApiWorker, self.config)
        self.addr = self.worker.webserver.getHost()
        self.url = 'http://%s:%s%s' % (self.addr.host, self.addr.port,
                                       self.config['web_path'])

        self.user_helper = yield self.vumi_helper.make_user(u'user')
        yield self.vumi_helper.setup_tagpool(u"pool", [u"tag1", u"tag2"])
        yield self.user_helper.add_tagpool_permission(u"pool")

        self.conversation = yield self.user_helper.create_conversation(
            u'jsbox',
            config={
                'jsbox_app_config': {
                    'config': {
                        'source_url': 'http://configsourcecode/'
                    },
                },
                'jsbox': {
                    'source_url': 'http://sourcecode/',
                },
                'http_api': {
                    'api_tokens': ['token-1', 'token-2', 'token-3'],
                    'metrics_store': 'metrics_store'
                },
            })

        self.auth_headers = {
            'Authorization': [
                'Basic ' +
                base64.b64encode('%s:%s' %
                                 (self.user_helper.account_key, 'token-1'))
            ],
        }
Exemplo n.º 16
0
 def setUp(self):
     self.vumi_helper = self.add_helper(VumiApiHelper(),
                                        setup_vumi_api=False)
     self.worker_helper = self.vumi_helper.get_worker_helper()
     self.ed = yield self.worker_helper.get_worker(
         EventDispatcher,
         self.vumi_helper.mk_config({
             'transport_name': 'this should not be an ApplicationWorker',
             'event_handlers': {
                 'handler1':
                 "%s.%s" % (SendMessageCommandHandler.__module__,
                            SendMessageCommandHandler.__name__)
             },
         }))
Exemplo n.º 17
0
 def setUp(self):
     self.vumi_helper = self.add_helper(VumiApiHelper(),
                                        setup_vumi_api=False)
     self.worker_helper = self.vumi_helper.get_worker_helper()
     self.ed = yield self.worker_helper.get_worker(
         EventDispatcher,
         self.vumi_helper.mk_config({
             'transport_name': 'this should not be an ApplicationWorker',
             'event_handlers': {
                 'handler1': '%s.ToyHandler' % __name__,
                 'handler2': '%s.ToyHandler' % __name__,
             },
         }))
     self.handler1 = self.ed.handlers['handler1']
     self.handler2 = self.ed.handlers['handler2']
Exemplo n.º 18
0
    def setUp(self):
        self.vumi_helper = self.add_helper(VumiApiHelper(is_sync=True))
        self.user_helper = self.vumi_helper.get_or_create_user()

        wrapped_conv = self.user_helper.create_conversation(
            u'subscription',
            config={
                'handlers': [{
                    'campaign_name': 'campaign-1'
                }, {
                    'campaign_name': 'campaign-2'
                }]
            })
        self.conv = wrapped_conv.c
        self.conv_def = ConversationDefinition(self.conv)
Exemplo n.º 19
0
    def test_add_router_metadata(self):
        md = self.mk_md()
        self.assertEqual(md._go_metadata, {})

        vumi_helper = yield self.add_helper(VumiApiHelper())
        user_helper = yield vumi_helper.make_user(u'user')

        router = yield user_helper.create_router(u'keyword')
        md.add_router_metadata(router)

        self.assertEqual(
            md._go_metadata, {
                'user_account': user_helper.account_key,
                'router_type': router.router_type,
                'router_key': router.key,
            })
Exemplo n.º 20
0
    def test_add_conversation_metadata(self):
        md = self.mk_md()
        self.assertEqual(md._go_metadata, {})

        vumi_helper = yield self.add_helper(VumiApiHelper())
        user_helper = yield vumi_helper.make_user(u'user')

        conv = yield user_helper.create_conversation(u'bulk_message')
        md.add_conversation_metadata(conv)

        self.assertEqual(
            md._go_metadata, {
                'user_account': user_helper.account_key,
                'conversation_type': conv.conversation_type,
                'conversation_key': conv.key,
            })
Exemplo n.º 21
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.user_helper = yield self.vumi_helper.make_user(u'username')
        self.msg_helper = self.add_helper(
            GoMessageHelper(vumi_helper=self.vumi_helper))

        self.conv = yield self.user_helper.create_conversation(u'dummy')
        yield self.vumi_helper.setup_tagpool(
            u"pool", [u"tag%s" % (i, ) for i in range(1, 5)],
            metadata={
                "display_name": "pool",
                "delivery_class": "sms",
                "transport_type": "sms",
                "transport_name": self.msg_helper.transport_name,
            })
        yield self.user_helper.add_tagpool_permission(u"pool")
Exemplo n.º 22
0
    def __init__(self, worker_class, **msg_helper_args):
        self._worker_class = worker_class

        self.vumi_helper = VumiApiHelper()
        self._app_helper = ApplicationHelper(self._conversation_type(),
                                             self.vumi_helper)
        self.msg_helper = GoMessageHelper(**msg_helper_args)
        self.transport_name = self.msg_helper.transport_name
        self.worker_helper = self.vumi_helper.get_worker_helper(
            self.transport_name)
        self.dispatch_helper = MessageDispatchHelper(self.msg_helper,
                                                     self.worker_helper)

        # Proxy methods from our helpers.
        generate_proxies(self, self._app_helper)
        generate_proxies(self, self.msg_helper)
        generate_proxies(self, self.worker_helper)
        generate_proxies(self, self.dispatch_helper)
Exemplo n.º 23
0
    def __init__(self, worker_class, **msg_helper_args):
        self._worker_class = worker_class
        msg_helper_kw = {}
        if msg_helper_args is not None:
            msg_helper_kw.update(msg_helper_args)

        self.vumi_helper = VumiApiHelper()
        self._router_helper = RouterHelper(
            self._router_type(), self.vumi_helper)
        self.msg_helper = GoMessageHelper(**msg_helper_kw)

        # Proxy methods from our helpers.
        generate_proxies(self, self._router_helper)
        generate_proxies(self, self.msg_helper)

        self.ri = RouterConnectorHelper(
            'ri_conn', self.vumi_helper, self.msg_helper)

        self.ro = RouterConnectorHelper(
            'ro_conn', self.vumi_helper, self.msg_helper)
Exemplo n.º 24
0
    def setUp(self):
        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.user_helper = yield self.vumi_helper.get_or_create_user()

        self.conv = yield self.user_helper.create_conversation(
            u'some_conversation')

        contact_store = self.user_helper.user_api.contact_store

        self.contact1 = yield contact_store.new_contact(
            name=u'contact-1',
            msisdn=u'+27831234567')

        self.contact2 = yield contact_store.new_contact(
            name=u'contact-2',
            msisdn=u'+27831234568')

        yield self.contact1.save()
        yield self.contact2.save()

        self.metric = ToySubscriptionMetric(self.conv, 'campaign-1')
Exemplo n.º 25
0
    def setUp(self):
        super(TestOptOutResource, self).setUp()

        self.vumi_helper = yield self.add_helper(VumiApiHelper())
        self.msg_helper = self.add_helper(GoMessageHelper())
        self.user_helper = yield self.vumi_helper.make_user(u'user')
        user_account = yield self.user_helper.get_user_account()
        user_account.can_manage_optouts = True
        yield user_account.save()

        self.app_worker.user_api = self.user_helper.user_api

        self.contact_store = self.user_helper.user_api.contact_store
        self.optout_store = OptOutStore.from_user_account(user_account)

        yield self.create_resource({})

        self.contact1 = yield self.new_contact(name=u'A',
                                               surname=u'Person',
                                               msisdn=u'+27123456789')

        self.contact2 = yield self.new_contact(name=u'B',
                                               surname=u'Person',
                                               msisdn=u'+27000000000')
Exemplo n.º 26
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.vumi_api = yield self.vumi_helper.get_vumi_api()
Exemplo n.º 27
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.clock = Clock()
     self.patch(metrics_worker, 'LoopingCall', self.looping_call)
     self.conversation_names = {}
Exemplo n.º 28
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.user_helper = yield self.vumi_helper.make_user(u'user')
     self.msg_helper = self.add_helper(MessageHelper())
Exemplo n.º 29
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper())
     self.msg_helper = self.add_helper(
         GoMessageHelper(vumi_helper=self.vumi_helper))
     self.user_helper = yield self.vumi_helper.make_user(u'user')
     self.patch(time, 'time', lambda: 1985)
Exemplo n.º 30
0
 def setUp(self):
     self.vumi_helper = yield self.add_helper(VumiApiHelper(),
                                              setup_vumi_api=True)
     self.app_helper = self.add_helper(
         ApplicationHelper(u"dummy", self.vumi_helper))
     self.msg_helper = self.add_helper(GoMessageHelper())