當前位置: 首頁>>代碼示例>>Python>>正文


Python mock.AsyncMock方法代碼示例

本文整理匯總了Python中unittest.mock.AsyncMock方法的典型用法代碼示例。如果您正苦於以下問題:Python mock.AsyncMock方法的具體用法?Python mock.AsyncMock怎麽用?Python mock.AsyncMock使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在unittest.mock的用法示例。


在下文中一共展示了mock.AsyncMock方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_txt_file_redirect_embed_description

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_txt_file_redirect_embed_description(self):
        """A message containing a .txt file should result in the correct embed."""
        attachment = MockAttachment(filename="python.txt")
        self.message.attachments = [attachment]
        self.message.channel.send = AsyncMock()
        antimalware.TXT_EMBED_DESCRIPTION = Mock()
        antimalware.TXT_EMBED_DESCRIPTION.format.return_value = "test"

        await self.cog.on_message(self.message)
        self.message.channel.send.assert_called_once()
        args, kwargs = self.message.channel.send.call_args
        embed = kwargs.pop("embed")
        cmd_channel = self.bot.get_channel(Channels.bot_commands)

        self.assertEqual(embed.description, antimalware.TXT_EMBED_DESCRIPTION.format.return_value)
        antimalware.TXT_EMBED_DESCRIPTION.format.assert_called_with(cmd_channel_mention=cmd_channel.mention) 
開發者ID:python-discord,項目名稱:bot,代碼行數:18,代碼來源:test_antimalware.py

示例2: test_other_disallowed_extention_embed_description

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_other_disallowed_extention_embed_description(self):
        """Test the description for a non .py/.txt disallowed extension."""
        attachment = MockAttachment(filename="python.disallowed")
        self.message.attachments = [attachment]
        self.message.channel.send = AsyncMock()
        antimalware.DISALLOWED_EMBED_DESCRIPTION = Mock()
        antimalware.DISALLOWED_EMBED_DESCRIPTION.format.return_value = "test"

        await self.cog.on_message(self.message)
        self.message.channel.send.assert_called_once()
        args, kwargs = self.message.channel.send.call_args
        embed = kwargs.pop("embed")
        meta_channel = self.bot.get_channel(Channels.meta)

        self.assertEqual(embed.description, antimalware.DISALLOWED_EMBED_DESCRIPTION.format.return_value)
        antimalware.DISALLOWED_EMBED_DESCRIPTION.format.assert_called_with(
            blocked_extensions_str=".disallowed",
            meta_channel_mention=meta_channel.mention
        ) 
開發者ID:python-discord,項目名稱:bot,代碼行數:21,代碼來源:test_antimalware.py

示例3: test_relay_message_correctly_relays_content_and_attachments

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_relay_message_correctly_relays_content_and_attachments(self):
        """The `relay_message` method should correctly relay message content and attachments."""
        send_webhook_path = f"{MODULE_PATH}.DuckPond.send_webhook"
        send_attachments_path = f"{MODULE_PATH}.send_attachments"

        self.cog.webhook = helpers.MockAsyncWebhook()

        test_values = (
            (helpers.MockMessage(clean_content="", attachments=[]), False, False),
            (helpers.MockMessage(clean_content="message", attachments=[]), True, False),
            (helpers.MockMessage(clean_content="", attachments=["attachment"]), False, True),
            (helpers.MockMessage(clean_content="message", attachments=["attachment"]), True, True),
        )

        for message, expect_webhook_call, expect_attachment_call in test_values:
            with patch(send_webhook_path, new_callable=AsyncMock) as send_webhook:
                with patch(send_attachments_path, new_callable=AsyncMock) as send_attachments:
                    with self.subTest(clean_content=message.clean_content, attachments=message.attachments):
                        await self.cog.relay_message(message)

                        self.assertEqual(expect_webhook_call, send_webhook.called)
                        self.assertEqual(expect_attachment_call, send_attachments.called)

                        message.add_reaction.assert_called_once_with(self.checkmark_emoji) 
開發者ID:python-discord,項目名稱:bot,代碼行數:26,代碼來源:test_duck_pond.py

示例4: test_sync_diff_size

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_sync_diff_size(self):
        """The diff size should be correctly calculated."""
        subtests = (
            (6, _Diff({1, 2}, {3, 4}, {5, 6})),
            (5, _Diff({1, 2, 3}, None, {4, 5})),
            (0, _Diff(None, None, None)),
            (0, _Diff(set(), set(), set())),
        )

        for size, diff in subtests:
            with self.subTest(size=size, diff=diff):
                self.syncer._get_diff.reset_mock()
                self.syncer._get_diff.return_value = diff
                self.syncer._get_confirmation_result = mock.AsyncMock(return_value=(False, None))

                guild = helpers.MockGuild()
                await self.syncer.sync(guild)

                self.syncer._get_diff.assert_called_once_with(guild)
                self.syncer._get_confirmation_result.assert_called_once()
                self.assertEqual(self.syncer._get_confirmation_result.call_args[0][0], size) 
開發者ID:python-discord,項目名稱:bot,代碼行數:23,代碼來源:test_base.py

示例5: test_sync_message_edited

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_sync_message_edited(self):
        """The message should be edited if one was sent, even if the sync has an API error."""
        subtests = (
            (None, None, False),
            (helpers.MockMessage(), None, True),
            (helpers.MockMessage(), ResponseCodeError(mock.MagicMock()), True),
        )

        for message, side_effect, should_edit in subtests:
            with self.subTest(message=message, side_effect=side_effect, should_edit=should_edit):
                self.syncer._sync.side_effect = side_effect
                self.syncer._get_confirmation_result = mock.AsyncMock(
                    return_value=(True, message)
                )

                guild = helpers.MockGuild()
                await self.syncer.sync(guild)

                if should_edit:
                    message.edit.assert_called_once()
                    self.assertIn("content", message.edit.call_args[1]) 
開發者ID:python-discord,項目名稱:bot,代碼行數:23,代碼來源:test_base.py

示例6: test_confirmation_result_small_diff

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_confirmation_result_small_diff(self):
        """Should always return True and the given message if the diff size is too small."""
        author = helpers.MockMember()
        expected_message = helpers.MockMessage()

        for size in (3, 2):  # pragma: no cover
            with self.subTest(size=size):
                self.syncer._send_prompt = mock.AsyncMock()
                self.syncer._wait_for_confirmation = mock.AsyncMock()

                coro = self.syncer._get_confirmation_result(size, author, expected_message)
                result, actual_message = await coro

                self.assertTrue(result)
                self.assertEqual(actual_message, expected_message)
                self.syncer._send_prompt.assert_not_called()
                self.syncer._wait_for_confirmation.assert_not_called() 
開發者ID:python-discord,項目名稱:bot,代碼行數:19,代碼來源:test_base.py

示例7: test_apply_ban_reason_truncation

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_apply_ban_reason_truncation(self, post_infraction_mock, get_active_mock):
        """Should truncate reason for `ctx.guild.ban`."""
        get_active_mock.return_value = None
        post_infraction_mock.return_value = {"foo": "bar"}

        self.cog.apply_infraction = AsyncMock()
        self.bot.get_cog.return_value = AsyncMock()
        self.cog.mod_log.ignore = Mock()
        self.ctx.guild.ban = Mock()

        await self.cog.apply_ban(self.ctx, self.target, "foo bar" * 3000)
        self.ctx.guild.ban.assert_called_once_with(
            self.target,
            reason=textwrap.shorten("foo bar" * 3000, 512, placeholder="..."),
            delete_message_days=0
        )
        self.cog.apply_infraction.assert_awaited_once_with(
            self.ctx, {"foo": "bar"}, self.target, self.ctx.guild.ban.return_value
        ) 
開發者ID:python-discord,項目名稱:bot,代碼行數:21,代碼來源:test_infractions.py

示例8: test_upload_output

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_upload_output(self):
        """Upload the eval output to the URLs.paste_service.format(key="documents") endpoint."""
        key = "MarkDiamond"
        resp = MagicMock()
        resp.json = AsyncMock(return_value={"key": key})

        context_manager = MagicMock()
        context_manager.__aenter__.return_value = resp
        self.bot.http_session.post.return_value = context_manager

        self.assertEqual(
            await self.cog.upload_output("My awesome output"),
            constants.URLs.paste_service.format(key=key)
        )
        self.bot.http_session.post.assert_called_with(
            constants.URLs.paste_service.format(key="documents"),
            data="My awesome output",
            raise_for_status=True
        ) 
開發者ID:python-discord,項目名稱:bot,代碼行數:21,代碼來源:test_snekbox.py

示例9: test_send_eval

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_send_eval(self):
        """Test the send_eval function."""
        ctx = MockContext()
        ctx.message = MockMessage()
        ctx.send = AsyncMock()
        ctx.author.mention = '@LemonLemonishBeard#0042'

        self.cog.post_eval = AsyncMock(return_value={'stdout': '', 'returncode': 0})
        self.cog.get_results_message = MagicMock(return_value=('Return code 0', ''))
        self.cog.get_status_emoji = MagicMock(return_value=':yay!:')
        self.cog.format_output = AsyncMock(return_value=('[No output]', None))

        await self.cog.send_eval(ctx, 'MyAwesomeCode')
        ctx.send.assert_called_once_with(
            '@LemonLemonishBeard#0042 :yay!: Return code 0.\n\n```py\n[No output]\n```'
        )
        self.cog.post_eval.assert_called_once_with('MyAwesomeCode')
        self.cog.get_status_emoji.assert_called_once_with({'stdout': '', 'returncode': 0})
        self.cog.get_results_message.assert_called_once_with({'stdout': '', 'returncode': 0})
        self.cog.format_output.assert_called_once_with('') 
開發者ID:python-discord,項目名稱:bot,代碼行數:22,代碼來源:test_snekbox.py

示例10: test_send_eval_with_paste_link

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_send_eval_with_paste_link(self):
        """Test the send_eval function with a too long output that generate a paste link."""
        ctx = MockContext()
        ctx.message = MockMessage()
        ctx.send = AsyncMock()
        ctx.author.mention = '@LemonLemonishBeard#0042'

        self.cog.post_eval = AsyncMock(return_value={'stdout': 'Way too long beard', 'returncode': 0})
        self.cog.get_results_message = MagicMock(return_value=('Return code 0', ''))
        self.cog.get_status_emoji = MagicMock(return_value=':yay!:')
        self.cog.format_output = AsyncMock(return_value=('Way too long beard', 'lookatmybeard.com'))

        await self.cog.send_eval(ctx, 'MyAwesomeCode')
        ctx.send.assert_called_once_with(
            '@LemonLemonishBeard#0042 :yay!: Return code 0.'
            '\n\n```py\nWay too long beard\n```\nFull output: lookatmybeard.com'
        )
        self.cog.post_eval.assert_called_once_with('MyAwesomeCode')
        self.cog.get_status_emoji.assert_called_once_with({'stdout': 'Way too long beard', 'returncode': 0})
        self.cog.get_results_message.assert_called_once_with({'stdout': 'Way too long beard', 'returncode': 0})
        self.cog.format_output.assert_called_once_with('Way too long beard') 
開發者ID:python-discord,項目名稱:bot,代碼行數:23,代碼來源:test_snekbox.py

示例11: test_send_eval_with_non_zero_eval

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_send_eval_with_non_zero_eval(self):
        """Test the send_eval function with a code returning a non-zero code."""
        ctx = MockContext()
        ctx.message = MockMessage()
        ctx.send = AsyncMock()
        ctx.author.mention = '@LemonLemonishBeard#0042'
        self.cog.post_eval = AsyncMock(return_value={'stdout': 'ERROR', 'returncode': 127})
        self.cog.get_results_message = MagicMock(return_value=('Return code 127', 'Beard got stuck in the eval'))
        self.cog.get_status_emoji = MagicMock(return_value=':nope!:')
        self.cog.format_output = AsyncMock()  # This function isn't called

        await self.cog.send_eval(ctx, 'MyAwesomeCode')
        ctx.send.assert_called_once_with(
            '@LemonLemonishBeard#0042 :nope!: Return code 127.\n\n```py\nBeard got stuck in the eval\n```'
        )
        self.cog.post_eval.assert_called_once_with('MyAwesomeCode')
        self.cog.get_status_emoji.assert_called_once_with({'stdout': 'ERROR', 'returncode': 127})
        self.cog.get_results_message.assert_called_once_with({'stdout': 'ERROR', 'returncode': 127})
        self.cog.format_output.assert_not_called() 
開發者ID:python-discord,項目名稱:bot,代碼行數:21,代碼來源:test_snekbox.py

示例12: test_continue_eval_does_continue

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_continue_eval_does_continue(self, partial_mock):
        """Test that the continue_eval function does continue if required conditions are met."""
        ctx = MockContext(message=MockMessage(add_reaction=AsyncMock(), clear_reactions=AsyncMock()))
        response = MockMessage(delete=AsyncMock())
        new_msg = MockMessage()
        self.bot.wait_for.side_effect = ((None, new_msg), None)
        expected = "NewCode"
        self.cog.get_code = create_autospec(self.cog.get_code, spec_set=True, return_value=expected)

        actual = await self.cog.continue_eval(ctx, response)
        self.cog.get_code.assert_awaited_once_with(new_msg)
        self.assertEqual(actual, expected)
        self.bot.wait_for.assert_has_awaits(
            (
                call(
                    'message_edit',
                    check=partial_mock(snekbox.predicate_eval_message_edit, ctx),
                    timeout=snekbox.REEVAL_TIMEOUT,
                ),
                call('reaction_add', check=partial_mock(snekbox.predicate_eval_emoji_reaction, ctx), timeout=10)
            )
        )
        ctx.message.add_reaction.assert_called_once_with(snekbox.REEVAL_EMOJI)
        ctx.message.clear_reactions.assert_called_once()
        response.delete.assert_called_once() 
開發者ID:python-discord,項目名稱:bot,代碼行數:27,代碼來源:test_snekbox.py

示例13: test_protocol_handle_max_incomplete

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_protocol_handle_max_incomplete(monkeypatch: MonkeyPatch) -> None:
    config = Config()
    config.h11_max_incomplete_size = 5
    MockHTTPStream = AsyncMock()  # noqa: N806
    MockHTTPStream.return_value = AsyncMock(spec=HTTPStream)
    monkeypatch.setattr(hypercorn.protocol.h11, "HTTPStream", MockHTTPStream)
    context = Mock()
    context.event_class.return_value = AsyncMock(spec=IOEvent)
    protocol = H11Protocol(AsyncMock(), config, context, False, None, None, AsyncMock())
    await protocol.handle(RawData(data=b"GET / HTTP/1.1\r\nHost: hypercorn\r\n"))
    protocol.send.assert_called()
    assert protocol.send.call_args_list == [
        call(
            RawData(
                data=b"HTTP/1.1 400 \r\ncontent-length: 0\r\nconnection: close\r\n"
                b"date: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\n\r\n"
            )
        ),
        call(RawData(data=b"")),
        call(Closed()),
    ] 
開發者ID:pgjones,項目名稱:hypercorn,代碼行數:23,代碼來源:test_h11.py

示例14: test_pings

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def test_pings(stream: WSStream, event_loop: asyncio.AbstractEventLoop) -> None:
    stream.config.websocket_ping_interval = 0.1
    await stream.handle(
        Request(
            stream_id=1,
            http_version="2",
            headers=[(b"sec-websocket-version", b"13")],
            raw_path=b"/?a=b",
            method="GET",
        )
    )
    async with TaskGroup(event_loop) as task_group:
        stream.context = Context(task_group)
        await stream.app_send({"type": "websocket.accept"})
        stream.app_put = AsyncMock()
        await asyncio.sleep(0.15)
        assert stream.send.call_args_list == [
            call(Response(stream_id=1, headers=[], status_code=200)),
            call(Data(stream_id=1, data=b"\x89\x00")),
            call(Data(stream_id=1, data=b"\x89\x00")),
        ]
        await stream.handle(StreamClosed(stream_id=1)) 
開發者ID:pgjones,項目名稱:hypercorn,代碼行數:24,代碼來源:test_ws_stream.py

示例15: supervisor_data

# 需要導入模塊: from unittest import mock [as 別名]
# 或者: from unittest.mock import AsyncMock [as 別名]
def supervisor_data():
    supervisor = AsyncMock()
    mailbox = DefaultMailbox(None, None, None)
    local_process = ActorProcess(mailbox)
    pid_child = PID()
    pid_child.address = 'address'
    pid_child.id = 'id'
    restart_statistic = RestartStatistics(5, datetime(2017, 2, 15))

    return {
        'supervisor': supervisor,
        'mailbox': mailbox,
        'local_process': local_process,
        'pid_child': pid_child,
        'restart_statistic': restart_statistic
    } 
開發者ID:AsynkronIT,項目名稱:protoactor-python,代碼行數:18,代碼來源:test_supervision.py


注:本文中的unittest.mock.AsyncMock方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。