当前位置: 首页>>代码示例>>Python>>正文


Python MagicMock.reset_mock方法代码示例

本文整理汇总了Python中tests.functional.MagicMock.reset_mock方法的典型用法代码示例。如果您正苦于以下问题:Python MagicMock.reset_mock方法的具体用法?Python MagicMock.reset_mock怎么用?Python MagicMock.reset_mock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tests.functional.MagicMock的用法示例。


在下文中一共展示了MagicMock.reset_mock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TestBSExtract

# 需要导入模块: from tests.functional import MagicMock [as 别名]
# 或者: from tests.functional.MagicMock import reset_mock [as 别名]
class TestBSExtract(TestCase):
    """
    Test the BSExtractClass
    """
    # TODO: Items left to test
    #   BSExtract
    #       __init__
    #       get_bible_chapter
    #       get_books_from_http
    #       _get_application
    def setUp(self):
        self.get_soup_for_bible_ref_patcher = patch('openlp.plugins.bibles.lib.http.get_soup_for_bible_ref')
        self.log_patcher = patch('openlp.plugins.bibles.lib.http.log')
        self.send_error_message_patcher = patch('openlp.plugins.bibles.lib.http.send_error_message')
        self.socket_patcher = patch('openlp.plugins.bibles.lib.http.socket')
        self.urllib_patcher = patch('openlp.plugins.bibles.lib.http.urllib')

        self.mock_get_soup_for_bible_ref = self.get_soup_for_bible_ref_patcher.start()
        self.mock_log = self.log_patcher.start()
        self.mock_send_error_message = self.send_error_message_patcher.start()
        self.mock_socket = self.socket_patcher.start()
        self.mock_soup = MagicMock()
        self.mock_urllib = self.urllib_patcher.start()

    def tearDown(self):
        self.get_soup_for_bible_ref_patcher.stop()
        self.log_patcher.stop()
        self.send_error_message_patcher.stop()
        self.socket_patcher.stop()
        self.urllib_patcher.stop()

    def get_books_from_http_no_soup_test(self):
        """
        Test the get_books_from_http method when get_soup_for_bible_ref returns a falsey value
        """
        # GIVEN: An instance of BSExtract, and reset log, urllib & get_soup_for_bible_ref mocks
        instance = BSExtract()
        self.mock_log.debug.reset_mock()
        self.mock_urllib.reset_mock()
        self.mock_get_soup_for_bible_ref.reset_mock()

        # WHEN: get_books_from_http is called with 'NIV' and get_soup_for_bible_ref returns a None value
        self.mock_urllib.parse.quote.return_value = 'NIV'
        self.mock_get_soup_for_bible_ref.return_value = None
        result = instance.get_books_from_http('NIV')

        # THEN: The rest mocks should be called with known values and get_books_from_http should return None
        self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("%s")', 'NIV')
        self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')
        self.mock_get_soup_for_bible_ref.assert_called_once_with(
            'http://m.bibleserver.com/overlay/selectBook?translation=NIV')
        self.assertIsNone(result,
                          'BSExtract.get_books_from_http should return None when get_soup_for_bible_ref returns a '
                          'false value')

    def get_books_from_http_no_content_test(self):
        """
        Test the get_books_from_http method when the specified element cannot be found in the tag object returned from
        get_soup_for_bible_ref
        """
        # GIVEN: An instance of BSExtract, and reset log, urllib, get_soup_for_bible_ref & soup mocks
        instance = BSExtract()
        self.mock_log.reset_mock()
        self.mock_urllib.reset_mock()
        self.mock_get_soup_for_bible_ref.reset_mock()
        self.mock_soup.reset_mock()

        # WHEN: get_books_from_http is called with 'NIV', get_soup_for_bible_ref returns a mocked_soup object and
        #       mocked_soup.find returns None
        self.mock_urllib.parse.quote.return_value = 'NIV'
        self.mock_soup.find.return_value = None
        self.mock_get_soup_for_bible_ref.return_value = self.mock_soup
        result = instance.get_books_from_http('NIV')

        # THEN: The rest mocks should be called with known values and get_books_from_http should return None
        self.mock_log.debug.assert_called_once_with('BSExtract.get_books_from_http("%s")', 'NIV')
        self.mock_urllib.parse.quote.assert_called_once_with(b'NIV')
        self.mock_get_soup_for_bible_ref.assert_called_once_with(
            'http://m.bibleserver.com/overlay/selectBook?translation=NIV')
        self.mock_soup.find.assert_called_once_with('ul')
        self.mock_log.error.assert_called_once_with('No books found in the Bibleserver response.')
        self.mock_send_error_message.assert_called_once_with('parse')
        self.assertIsNone(result,
                          'BSExtract.get_books_from_http should return None when get_soup_for_bible_ref returns a '
                          'false value')

    def get_books_from_http_content_test(self):
        """
        Test the get_books_from_http method with sample HTML
        Also a regression test for bug #1184869. (The anchor tag in the second list item is empty)
        """
        # GIVEN: An instance of BSExtract, and reset log, urllib & get_soup_for_bible_ref mocks and sample HTML data
        self.test_html = '<ul><li><a href="/overlay/selectChapter?tocBook=1">Genesis</a></li>' \
            '<li><a href="/overlay/selectChapter?tocBook=2"></a></li>' \
            '<li><a href="/overlay/selectChapter?tocBook=3">Leviticus</a></li></ul>'
        self.test_soup = BeautifulSoup(self.test_html)
        instance = BSExtract()
        self.mock_log.reset_mock()
        self.mock_urllib.reset_mock()
        self.mock_get_soup_for_bible_ref.reset_mock()
#.........这里部分代码省略.........
开发者ID:crossroadchurch,项目名称:paul,代码行数:103,代码来源:test_http.py


注:本文中的tests.functional.MagicMock.reset_mock方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。