Example #1
0
def outgoing_message_router():
    message_filter = RegistrationMessageFilter(get_steps_cache_instance(),
                                               request.args.get('text', None))

    receivers = request.args.get('to','')
    receiver_count_filter = ReceiverCountFilter(receivers.split(","), 1)

    filters = [message_filter, receiver_count_filter]
    priority = execute_filters(filters)

    smsc_router = SMSCRouter(app.config)
    smsc_router.route(request.args, priority)

    return "Done"
Example #2
0
def outgoing_message_router():
    message = request.args.get('text', None)
    receivers = request.args.get('to', '')

    message_filter = RegistrationMessageFilter(get_steps_cache_instance(), message)
    receiver_count_filter = ReceiverCountFilter(receivers.split(" "), 1)

    blacklist = Blacklist(get_redis_client(), Encoder())
    blacklist_filter = BlacklistFilter(blacklist, message)

    high_filters = [message_filter, receiver_count_filter]
    low_filters = [blacklist_filter]

    processor = FilterProcessor(high_filters, low_filters)
    priority = processor.execute()

    smsc_router = SMSCRouter(app.config, app.logger)
    smsc_router.route(request.args, priority)

    return "Done"
class TestSMSCRouter(TestCase):

    @patch('logging.Logger')
    def setUp(self, mock_logger):

        self.app_config = self.get_app_config()
        self.smsc_router = SMSCRouter(self.app_config, mock_logger)

    def test_that_for_message_with_low_priority_the_low_priority_smsc_id_is_used(self):
        url = self.smsc_router.generate_url("message", "111111,222222", Priority.LOW)
        smsc_id = url.split('&')[-1].split('=')[-1]

        self.assertEqual(smsc_id, self.app_config["KANNEL_LOW_PRIORITY_SMSC"])

    def test_that_for_message_with_high_priority_the_low_priority_smsc_id_is_used(self):
        url = self.smsc_router.generate_url("message", "111111,222222", Priority.HIGH)
        smsc_id = url.split('&')[-1].split('=')[-1]

        self.assertEqual(smsc_id, self.app_config["KANNEL_HIGH_PRIORITY_SMSC"])

    def test_that_make_http_request_message_gets_called_with_generated_url(self):
        self.smsc_router.make_http_request = Mock()
        self.smsc_router.generate_url = Mock(return_value="mocked_url")
        self.smsc_router.route(self.get_request_args(), Priority.HIGH)
        self.smsc_router.make_http_request.assert_called_with("mocked_url")

    @patch("requests.get")
    def test_that_requests_get_method_gets_called_by_make_http_request(self, mocked_requests_get):
        any_url = "http://random.url"
        self.smsc_router.make_http_request(any_url)
        mocked_requests_get.assert_called_with(any_url)

    @patch("requests.get", side_effect=requests.exceptions.HTTPError())
    def test_that_an_http_error_exception_gets_caught(self, mocked_requests_get):
        any_url = "invalid_url"

        try:
            self.smsc_router.make_http_request(any_url)
        except Exception, e:
            self.fail("Exception was not caught")
    def setUp(self, mock_logger):

        self.app_config = self.get_app_config()
        self.smsc_router = SMSCRouter(self.app_config, mock_logger)
Example #5
0
 def setUp(self):
     self.app_config = self.get_app_config()
     self.smsc_router = SMSCRouter(self.app_config)