コード例 #1
0
def test_exception_propagation(monkeypatch):
    schedule_messages('text', recipients('telegram', ''))
    schedule_messages('text', recipients('telegram', ''))

    def new_method(*args, **kwargs):
        raise Exception('telegram beforesend failed')

    monkeypatch.setattr(messenger_telegram, 'before_send', new_method)
    send_scheduled_messages()

    errors = list(DispatchError.objects.all())
    assert len(errors) == 2
    assert errors[0].error_log == 'telegram beforesend failed'
    assert errors[1].error_log == 'telegram beforesend failed'
コード例 #2
0
def test_sitemessage_check_undelivered(capsys, command_run):

    message = Message(cls='test_message')
    message.save()

    Dispatch.create(message, recipients('test_messenger', 'someoner'))

    dispatch = Dispatch.objects.all()
    assert len(dispatch) == 1

    dispatch = dispatch[0]
    dispatch.dispatch_status = dispatch.DISPATCH_STATUS_FAILED
    dispatch.save()

    def run_command(count=1):

        command_run('sitemessage_check_undelivered')

        out, err = capsys.readouterr()

        assert f'Undelivered dispatches count: {count}' in out
        assert err == ''

    run_command()

    # Now let's check a fallback works.
    try:
        GET_DISPATCHES_ARGS[0] = lambda kwargs: None

        run_command(3)
        assert GET_DISPATCHES_ARGS[0] is _get_dispatches

    finally:
        GET_DISPATCHES_ARGS[0] = _get_dispatches_for_update
コード例 #3
0
    def setup(self, user, request_client):
        def catcher_success(*args, **kwargs):
            self.status = self.STATUS_SUCCESS

        self.catcher_success = catcher_success

        def catcher_fail(*args, **kwargs):
            self.status = self.STATUS_FAIL

        self.catcher_fail = catcher_fail

        self.user = user
        self.request_client = request_client()

        msg_type = MessagePlainForTest('sometext')
        self.msg_type = msg_type

        msg_model, _ = schedule_messages(msg_type,
                                         recipients(MessengerForTest, user))[0]
        dispatch = Dispatch.objects.all()[0]
        self.msg_model = msg_model
        self.dispatch = dispatch

        dispatch_hash = msg_type.get_dispatch_hash(dispatch.id, msg_model.id)
        self.dispatch_hash = dispatch_hash
コード例 #4
0
def test_schedule_message(user):
    msg = MessagePlainForTest('schedule_func')
    model, _ = schedule_messages(msg)[0]

    assert model.cls == msg.get_alias()
    assert model.context == msg.get_context()
    assert model.priority == MessagePlainForTest.priority
    assert not model.dispatches_ready

    msg = MessagePlainForTest('schedule_func')
    model, _ = schedule_messages(msg, priority=33)[0]

    assert model.cls == msg.get_alias()
    assert model.context == msg.get_context()
    assert model.priority == 33
    assert not model.dispatches_ready

    model, dispatch_models = \
    schedule_messages(
        'simple message',
        recipients('test_messenger', ['gogi', 'givi']), sender=user)[0]

    assert model.cls == 'plain'
    assert model.context == {'use_tpl': False, MessageBase.SIMPLE_TEXT_ID: 'simple message', 'tpl': None}
    assert model.sender == user
    assert model.dispatches_ready

    assert len(dispatch_models) == 2
    assert dispatch_models[0].address == 'gogi%s' % WONDERLAND_DOMAIN
    assert dispatch_models[0].messenger == 'test_messenger'
コード例 #5
0
def test_schedule_message(user):
    msg = MessagePlainForTest('schedule_func')
    model, _ = schedule_messages(msg)[0]

    assert model.cls == msg.get_alias()
    assert model.context == msg.get_context()
    assert model.priority == MessagePlainForTest.priority
    assert not model.dispatches_ready

    msg = MessagePlainForTest('schedule_func')
    model, _ = schedule_messages(msg, priority=33)[0]

    assert model.cls == msg.get_alias()
    assert model.context == msg.get_context()
    assert model.priority == 33
    assert not model.dispatches_ready

    model, dispatch_models = \
    schedule_messages(
        'simple message',
        recipients('test_messenger', ['gogi', 'givi']), sender=user)[0]

    assert model.cls == 'plain'
    assert model.context == {'use_tpl': False, MessageBase.SIMPLE_TEXT_ID: 'simple message', 'tpl': None}
    assert model.sender == user
    assert model.dispatches_ready

    assert len(dispatch_models) == 2
    assert dispatch_models[0].address == f'gogi{WONDERLAND_DOMAIN}'
    assert dispatch_models[0].messenger == 'test_messenger'
コード例 #6
0
def test_send_scheduled_messages():
    # This one won't count, as won't fit into message priority filter.
    schedule_messages(
        MessagePlainDynamicForTest('my_dyn_msg'),
        recipients('test_messenger', ['three', 'four']))

    msgr = get_registered_messenger_object('test_messenger')  # type: MessengerForTest
    msg = MessagePlainForTest('my_message')
    schedule_messages(msg, recipients(msgr, ['one', 'two']))
    send_scheduled_messages(priority=MessagePlainForTest.priority)

    assert len(msgr.last_send['dispatch_models']) == 2
    assert msgr.last_send['message_model'].cls == 'testplain'
    assert msgr.last_send['message_cls'] == MessagePlainForTest
    assert msgr.last_send['dispatch_models'][0].message_cache == 'my_message'
    assert msgr.last_send['dispatch_models'][1].message_cache == 'my_message'
コード例 #7
0
ファイル: shortcuts.py プロジェクト: vcostas/education
def schedule_email(message, to, subject=None, sender=None, priority=None):
    """Schedules an email message for delivery.

    :param dict, str message: str or dict: use str for simple text email;
        dict - to compile email from a template (default: `sitemessage/messages/email_html__smtp.html`).
    :param list|str|unicode to: recipients addresses or Django User model heir instances
    :param str subject: email subject
    :param User sender: User model heir instance
    :param int priority: number describing message priority. If set overrides priority provided with message type.
    """

    if SHORTCUT_EMAIL_MESSAGE_TYPE:
        message_cls = get_registered_message_type(SHORTCUT_EMAIL_MESSAGE_TYPE)

    else:

        if isinstance(message, dict):
            message_cls = EmailHtmlMessage
        else:
            message_cls = EmailTextMessage

    schedule_messages(message_cls(subject, message),
                      recipients(SHORTCUT_EMAIL_MESSENGER_TYPE, to),
                      sender=sender,
                      priority=priority)
コード例 #8
0
 def test_send(self):
     schedule_messages('text', recipients('fb', ''))
     send_scheduled_messages()
     assert_called_n(messenger_fb.lib.post)
     assert messenger_fb.lib.post.call_args[1]['proxies'] == {
         'https': '0.0.0.0'
     }
コード例 #9
0
 def test_send(self):
     schedule_messages('text', recipients('telegram', '1234567'))
     send_scheduled_messages()
     assert_called_n(messenger_telegram.lib.post, 2)
     assert messenger_telegram.lib.post.call_args[1]['proxies'] == {
         'https': 'socks5://user:pass@host:port'
     }
コード例 #10
0
def test_send_scheduled_messages():
    # This one won't count, as won't fit into message priority filter.
    schedule_messages(
        MessagePlainDynamicForTest('my_dyn_msg'),
        recipients('test_messenger', ['three', 'four']))

    msgr = get_registered_messenger_object('test_messenger')  # type: MessengerForTest
    msg = MessagePlainForTest('my_message')
    schedule_messages(msg, recipients(msgr, ['one', 'two']))
    send_scheduled_messages(priority=MessagePlainForTest.priority)

    assert len(msgr.last_send['dispatch_models']) == 2
    assert msgr.last_send['message_model'].cls == 'testplain'
    assert msgr.last_send['message_cls'] == MessagePlainForTest
    assert msgr.last_send['dispatch_models'][0].message_cache == 'my_message'
    assert msgr.last_send['dispatch_models'][1].message_cache == 'my_message'
コード例 #11
0
    def test_create(self, user):

        message = Message(cls='test_message')
        message.save()

        recipients_ = recipients('test_messenger', [user])
        recipients_ += recipients('buggy', 'idle')

        dispatches = Dispatch.create(message, recipients_)
        assert isinstance(dispatches[0], Dispatch)
        assert  isinstance(dispatches[1], Dispatch)
        assert dispatches[0].message_id == message.id
        assert dispatches[1].message_id == message.id
        assert dispatches[0].messenger == 'test_messenger'
        assert dispatches[1].messenger == 'buggy'

        dispatches = Dispatch.create(message, Recipient('msgr', None, 'address'))
        assert len(dispatches) == 1
コード例 #12
0
    def test_create(self, user):

        message = Message(cls='test_message')
        message.save()

        recipients_ = recipients('test_messenger', [user])
        recipients_ += recipients('buggy', 'idle')

        dispatches = Dispatch.create(message, recipients_)
        assert isinstance(dispatches[0], Dispatch)
        assert isinstance(dispatches[1], Dispatch)
        assert dispatches[0].message_id == message.id
        assert dispatches[1].message_id == message.id
        assert dispatches[0].messenger == 'test_messenger'
        assert dispatches[1].messenger == 'buggy'

        dispatches = Dispatch.create(message,
                                     Recipient('msgr', None, 'address'))
        assert len(dispatches) == 1
コード例 #13
0
def test_send_scheduled_messages_dynamic_context():
    msgr = get_registered_messenger_object('test_messenger')  # type: MessengerForTest
    msg_dyn = MessagePlainDynamicForTest('my_dyn_msg')
    schedule_messages(msg_dyn, recipients(msgr, ['three', 'four']))
    send_scheduled_messages()

    assert len(msgr.last_send['dispatch_models']) == 2
    assert msgr.last_send['message_model'].cls == 'testplain_dyn'
    assert msgr.last_send['message_cls'] == MessagePlainDynamicForTest
    assert msgr.last_send['dispatch_models'][0].message_cache == f'my_dyn_msg -- three{WONDERLAND_DOMAIN}'
    assert msgr.last_send['dispatch_models'][1].message_cache == f'my_dyn_msg -- four{WONDERLAND_DOMAIN}'
コード例 #14
0
ファイル: shortcuts.py プロジェクト: vcostas/education
def schedule_facebook_message(message, sender=None, priority=None):
    """Schedules Facebook wall message for delivery.

    :param str message: text or URL to publish.
    :param User sender: User model heir instance
    :param int priority: number describing message priority. If set overrides priority provided with message type.
    """
    schedule_messages(message,
                      recipients('fb', ''),
                      sender=sender,
                      priority=priority)
コード例 #15
0
def test_send_scheduled_messages_dynamic_context():
    msgr = get_registered_messenger_object('test_messenger')  # type: MessengerForTest
    msg_dyn = MessagePlainDynamicForTest('my_dyn_msg')
    schedule_messages(msg_dyn, recipients(msgr, ['three', 'four']))
    send_scheduled_messages()

    assert len(msgr.last_send['dispatch_models']) == 2
    assert msgr.last_send['message_model'].cls == 'testplain_dyn'
    assert msgr.last_send['message_cls'] == MessagePlainDynamicForTest
    assert msgr.last_send['dispatch_models'][0].message_cache == 'my_dyn_msg -- three%s' % WONDERLAND_DOMAIN
    assert msgr.last_send['dispatch_models'][1].message_cache == 'my_dyn_msg -- four%s' % WONDERLAND_DOMAIN
コード例 #16
0
ファイル: shortcuts.py プロジェクト: vcostas/education
def schedule_telegram_message(message, to, sender=None, priority=None):
    """Schedules Telegram message for delivery.

    :param str message: text to send.
    :param list|str|unicode to: recipients addresses or Django User model heir instances with `telegram` attributes.
    :param User sender: User model heir instance
    :param int priority: number describing message priority. If set overrides priority provided with message type.
    """
    schedule_messages(message,
                      recipients('telegram', to),
                      sender=sender,
                      priority=priority)
コード例 #17
0
ファイル: shortcuts.py プロジェクト: vcostas/education
def schedule_vkontakte_message(message, to, sender=None, priority=None):
    """Schedules VKontakte message for delivery.

    :param str message: text or URL to publish on wall.
    :param list|str|unicode to: recipients addresses or Django User model heir instances with `vk` attributes.
    :param User sender: User model heir instance
    :param int priority: number describing message priority. If set overrides priority provided with message type.
    """
    schedule_messages(message,
                      recipients('vk', to),
                      sender=sender,
                      priority=priority)
コード例 #18
0
def test_recipients(user_create):
    user = user_create(attributes=dict(username='******'))
    to = ['gogi', 'givi', user]

    r1 = recipients('test_messenger', to)

    assert len(r1) == len(to)
    assert r1[0].address == 'gogi%s' % WONDERLAND_DOMAIN
    assert r1[0].messenger == 'test_messenger'
    assert r1[1].address == 'givi%s' % WONDERLAND_DOMAIN
    assert r1[1].messenger == 'test_messenger'
    assert r1[2].address == 'user_myuser%s' % WONDERLAND_DOMAIN
    assert r1[2].messenger == 'test_messenger'
コード例 #19
0
def test_recipients(user_create):
    user = user_create(attributes=dict(username='******'))
    to = ['gogi', 'givi', user]

    r1 = recipients('test_messenger', to)

    assert len(r1) == len(to)
    assert r1[0].address == f'gogi{WONDERLAND_DOMAIN}'
    assert r1[0].messenger == 'test_messenger'
    assert r1[1].address == f'givi{WONDERLAND_DOMAIN}'
    assert r1[1].messenger == 'test_messenger'
    assert r1[2].address == f'user_myuser{WONDERLAND_DOMAIN}'
    assert r1[2].messenger == 'test_messenger'
コード例 #20
0
def test_send():
    m = MessengerForTest('l', 'p')
    m.send('message_cls', 'message_model', 'dispatch_models')

    assert m.last_send['message_cls'] == 'message_cls'
    assert m.last_send['message_model'] == 'message_model'
    assert m.last_send['dispatch_models'] == 'dispatch_models'

    m = BuggyMessenger()
    recipiets_ = recipients('test_messenger', ['a', 'b', 'c', 'd'])

    with pytest.raises(Exception):
        m.send('a buggy message', '', recipiets_)
コード例 #21
0
def test_send():
    m = MessengerForTest('l', 'p')
    m.send('message_cls', 'message_model', 'dispatch_models')

    assert m.last_send['message_cls'] == 'message_cls'
    assert m.last_send['message_model'] == 'message_model'
    assert m.last_send['dispatch_models'] == 'dispatch_models'

    m = BuggyMessenger()
    recipiets_ = recipients('test_messenger', ['a', 'b', 'c', 'd'])

    with pytest.raises(Exception):
        m.send('a buggy message', '', recipiets_)
コード例 #22
0
def notify_new_entity(entity):
    """Отсылает оповещение о создании новой сущности.

    Рассылается администраторам проекта.

    :param RealmBaseModel entity:
    :return:
    """
    context = {
        'entity_title': entity.title,
        'entity_url': entity.get_absolute_url()
    }
    m = PythonzEmailNewEntity(get_email_full_subject('Добавлена новая сущность - %s' % entity.title), context)
    schedule_messages(m, recipients('smtp', get_admins_emails()))
コード例 #23
0
def notify_entity_published(entity):
    """Отсылает оповещение о публикации сущности.

    :param RealmBaseModel entity:
    :return:
    """
    MAX_LEN = 139  # Максимальная длина тивта. Для верности меньше.
    prefix = 'Новое: %s «' % entity.get_verbose_name()
    url = 'http://pythonz.net%s' % entity.get_absolute_url()
    postfix = '» %s' % url
    if settings.AGRESSIVE_MODE:
        postfix = '%s #python #dev' % postfix
    title = Truncator(entity.title).chars(MAX_LEN - len(prefix) - len(postfix))
    message = '%s%s%s' % (prefix, title, postfix)
    schedule_messages(PythonzTwitterMessage(message), recipients('twitter', ''))
コード例 #24
0
    def test_send_fail(self):
        schedule_messages('text', recipients('smtp', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('smtp failed')

        old_method = messenger_smtp.smtp.sendmail
        messenger_smtp.smtp.sendmail = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'smtp failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_smtp.smtp.sendmail = old_method
コード例 #25
0
    def test_send_fail(self):
        schedule_messages('text', recipients('vk', '12345'))

        def new_method(*args, **kwargs):
            raise Exception('vk failed')

        old_method = messenger_vk.lib.post
        messenger_vk.lib.post = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'vk failed'
            assert errors[0].dispatch.address == '12345'
        finally:
            messenger_vk.lib.post = old_method
コード例 #26
0
    def test_send_fail(self):
        schedule_messages('text', recipients('vk', '12345'))

        def new_method(*args, **kwargs):
            raise Exception('vk failed')

        old_method = messenger_vk.lib.post
        messenger_vk.lib.post = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'vk failed'
            assert errors[0].dispatch.address == '12345'
        finally:
            messenger_vk.lib.post = old_method
コード例 #27
0
    def test_send_fail(self):
        schedule_messages('text', recipients('smtp', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('smtp failed')

        old_method = messenger_smtp.smtp.sendmail
        messenger_smtp.smtp.sendmail = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'smtp failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_smtp.smtp.sendmail = old_method
コード例 #28
0
    def test_send_fail(self):
        schedule_messages('text', recipients('twitter', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('tweet failed')

        old_method = messenger_twitter.api.statuses.update
        messenger_twitter.api.statuses.update = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'tweet failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_twitter.api.statuses.update = old_method
コード例 #29
0
    def test_send_fail(self):
        schedule_messages('text', recipients('xmppsleek', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('xmppsleek failed')

        old_method = messenger_xmpp.xmpp.send_message
        messenger_xmpp.xmpp.send_message = new_method
        messenger_xmpp._session_started = True
        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'xmppsleek failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_xmpp.xmpp.send_message = old_method
コード例 #30
0
def create_digest():
    """Создаёт депеши для рассылки еженедельного дайджеста.

    Реальная компиляция дайджеста происходит в PythonzEmailDigest.compile().

    :return:
    """
    if settings.DEBUG:  # На всякий случай, чем чёрт не шутит.
        return False
    from .models import User
    date_till = timezone.now()
    date_from = date_till-timedelta(days=7)
    context = {'date_from': date_from.timestamp(), 'date_till': date_till.timestamp()}
    format_date = lambda d: d.date().strftime('%d.%m.%Y')
    m = PythonzEmailDigest(get_email_full_subject('Подборка материалов %s-%s' % (format_date(date_from), format_date(date_till))), context)
    subscribers = User.get_digest_subsribers()
    schedule_messages(m, recipients('smtp', subscribers))
コード例 #31
0
    def test_send_fail(self):
        schedule_messages('text', recipients('xmppsleek', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('xmppsleek failed')

        old_method = messenger_xmpp.xmpp.send_message
        messenger_xmpp.xmpp.send_message = new_method
        messenger_xmpp._session_started = True
        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'xmppsleek failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_xmpp.xmpp.send_message = old_method
コード例 #32
0
    def test_send_fail(self):
        schedule_messages('text', recipients('twitter', 'someone'))

        def new_method(*args, **kwargs):
            raise Exception('tweet failed')

        old_method = messenger_twitter.api.statuses.update
        messenger_twitter.api.statuses.update = new_method

        try:
            send_scheduled_messages()
            errors = DispatchError.objects.all()
            assert len(errors) == 1
            assert errors[0].error_log == 'tweet failed'
            assert errors[0].dispatch.address == 'someone'
        finally:
            messenger_twitter.api.statuses.update = old_method
コード例 #33
0
    def create_message(dispatches_count):

        message = Message(cls='test_message')
        message.save()

        users = []

        for _ in range(dispatches_count):
            users.append(user_create())

        Dispatch.create(message, recipients('test_messenger', users))

        dispatches = Dispatch.objects.filter(
            dispatch_status=Dispatch.DISPATCH_STATUS_PENDING)

        for dispatch in dispatches:
            dispatch.dispatch_status = dispatch.DISPATCH_STATUS_SENT
            dispatch.save()

        return message, dispatches
コード例 #34
0
ファイル: views.py プロジェクト: vcostas/education
def send_messages_view(request, id):
    """
    Sends an internal email to the desired recipients.
    """
    # We extract the recipient's id.

    to_user = User.objects.get(pk=id)
    sender = request.user

    # Here we define the smtp recipients to inform them via email that
    # they have an unread notification.
    # my_smtp_recipients = recipients(SMTPMessenger, [to_user.email]),

    # Here we define the internal mail recipients
    # my_recipients = recipients(MyMessenger, [to_user])

    # schedule_email('There is hope.', [to_user, sender.username])
    #schedule_email('You have an unread notification in eduanalytics.',[my_smtp_recipients, sender]
    # schedule_messages('You are awesome VEER.', recipients('mymessenger', ['user1--address', user2]))

    schedule_messages(
        # You can pass one or several message objects:
        [
            # The first param of this Message Type is `subject`. The second a dictionary.
            EmailHtmlMessage('Congratulations Nancy for your baby', {
                'title': 'Message to my Sister',
                'entry': 'I will stand by you.'
            }),
        ],

        # The same applies to recipients: add one or many as required:
        recipients(MyMessenger, [
            to_user,
        ]),
        # It's useful sometimes to know message sender in terms of Django users:
        sender=request.user)

    # this function sends all scheduled messages.
    send_scheduled_messages(ignore_unknown_messengers=True,
                            ignore_unknown_message_types=True)
    HttpResponseRedirect(reverse('correo:inbox'))
コード例 #35
0
    def setup(self, user, request_client):

        def catcher_success(*args, **kwargs):
            self.status = self.STATUS_SUCCESS
        self.catcher_success = catcher_success

        def catcher_fail(*args, **kwargs):
            self.status = self.STATUS_FAIL
        self.catcher_fail = catcher_fail

        self.user = user
        self.request_client = request_client()

        msg_type = MessagePlainForTest('sometext')
        self.msg_type = msg_type

        msg_model, _ = schedule_messages(msg_type, recipients(MessengerForTest, user))[0]
        dispatch = Dispatch.objects.all()[0]
        self.msg_model = msg_model
        self.dispatch = dispatch

        dispatch_hash = msg_type.get_dispatch_hash(dispatch.id, msg_model.id)
        self.dispatch_hash = dispatch_hash
コード例 #36
0
 def test_send(self):
     schedule_messages('text', recipients('xmppsleek', 'someone'))
     send_scheduled_messages()
     messenger_xmpp.xmpp.send_message.assert_called_once_with(
         mtype='chat', mbody='text', mfrom='somjid', mto='someone')
コード例 #37
0
 def test_send(self):
     schedule_messages('text', recipients('xmppsleek', 'someone'))
     send_scheduled_messages()
     messenger_xmpp.xmpp.send_message.assert_called_once_with(
         mtype='chat', mbody='text', mfrom='somjid', mto='someone'
     )
コード例 #38
0
 def test_send(self):
     schedule_messages('text', recipients('telegram', '1234567'))
     send_scheduled_messages()
     assert_called_n(messenger_telegram.lib.post, 2)
コード例 #39
0
 def test_send(self):
     schedule_messages('text', recipients('fb', ''))
     send_scheduled_messages()
     assert_called_n(messenger_fb.lib.post)
コード例 #40
0
ファイル: classic.py プロジェクト: aptwebapps/django-sitegate
 def schedule_email(text, to, subject):
     message_cls = get_message_type_for_app('sitegate', 'email_plain')
     schedule_messages(message_cls(subject, text), recipients('smtp', to))
コード例 #41
0
 def test_send(self):
     schedule_messages('text', recipients('telegram', '1234567'))
     send_scheduled_messages()
     assert_called_n(messenger_telegram.lib.post, 2)
コード例 #42
0
 def test_send(self):
     schedule_messages('text', recipients('twitter', 'someone'))
     send_scheduled_messages()
     messenger_twitter.api.statuses.update.assert_called_with(
         status='@someone text')
コード例 #43
0
 def test_send(self):
     schedule_messages('text', recipients('fb', ''))
     send_scheduled_messages()
     assert_called_n(messenger_fb.lib.post)
コード例 #44
0
 def test_send(self):
     schedule_messages('text', recipients('vk', '12345'))
     send_scheduled_messages()
     assert_called_n(messenger_vk.lib.post)
コード例 #45
0
 def test_send(self):
     schedule_messages('text', recipients('smtp', 'someone'))
     send_scheduled_messages()
     assert_called_n(messenger_smtp.smtp.sendmail)
コード例 #46
0
 def test_send(self):
     schedule_messages('text', recipients('twitter', 'someone'))
     send_scheduled_messages()
     messenger_twitter.api.statuses.update.assert_called_with(status='@someone text')
コード例 #47
0
 def test_send(self):
     schedule_messages('text', recipients('vk', '12345'))
     send_scheduled_messages()
     assert_called_n(messenger_vk.lib.post)
コード例 #48
0
ファイル: classic.py プロジェクト: imposeren/django-sitegate
 def schedule_email(text, to, subject):
     message_cls = get_message_type_for_app(
         'sitegate', 'email_plain')
     schedule_messages(message_cls(subject, text),
                       recipients('smtp', to))