小编Jim*_*rng的帖子

为什么正则表达式的"非捕获"组不起作用

在下面的代码片段中,匹配结果中应忽略非捕获组"(?:aaa)",因此结果应该"_bbb"只是.

但是,我得到"aaa_bbb"了匹配的结果; 只有当我指定组(2)时才会显示"_bbb".

>>> import re
>>> s = "aaa_bbb"
>>> print(re.match(r"(?:aaa)(_bbb)", s).group())

aaa_bbb
Run Code Online (Sandbox Code Playgroud)

python regex

44
推荐指数
2
解决办法
4万
查看次数

如何使用模拟框架模拟龙卷风协程功能进行单元测试?

标题简单描述了我的问题.我想用特定的返回值来模拟"_func_inner_1".谢谢你的任何建议:)

被测代码:

from tornado.gen import coroutine, Return
from tornado.testing import gen_test
from tornado.testing import AsyncTestCase

import mock

@coroutine
def _func_inner_1():
    raise Return(1)

@coroutine
def _func_under_test_1():
    temp = yield _func_inner_1()
    raise Return(temp + 1)
Run Code Online (Sandbox Code Playgroud)

但是,这种直观的解决方案无效

class Test123(AsyncTestCase):

    @gen_test
    @mock.patch(__name__ + '._func_inner_1')
    def test_1(self, mock_func_inner_1):
        mock_func_inner_1.side_effect = Return(9)
        result_1 = yield _func_inner_1()
        print 'result_1', result_1
        result = yield _func_under_test_1()
        self.assertEqual(10, result, result)
Run Code Online (Sandbox Code Playgroud)

如果出现以下错误,似乎_func_inner_1没有修补,因为它具有协同性质

AssertionError: 2
Run Code Online (Sandbox Code Playgroud)

如果我添加coroutine补丁返回模拟功能

@gen_test
@mock.patch(__name__ + '._func_inner_1')
def test_1(self, mock_func_inner_1):
    mock_func_inner_1.side_effect = Return(9)
    mock_func_inner_1 = coroutine(mock_func_inner_1)
    result_1 = yield …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking tornado

18
推荐指数
1
解决办法
6172
查看次数

标签 统计

python ×2

mocking ×1

regex ×1

tornado ×1

unit-testing ×1