我正在使用 log_cli=true 运行测试。剧本:
import logging
import sys
from multiprocessing import Process
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
logger = logging.getLogger("leapp.actors.quagga_report")
class ActorContext:
def __init__(self):
self.log = logger
def run(self):
self.log.debug("Some msg")
current_actor_context = ActorContext()
def test_caplog_fails(caplog):
with caplog.at_level(logging.DEBUG, logger="leapp.actors.quagga_report"):
p = Process(target=current_actor_context.run)
p.start()
p.join()
assert "Some msg" in caplog.text
def test_caplog_passes(caplog):
with caplog.at_level(logging.DEBUG, logger="leapp.actors.quagga_report"):
current_actor_context.run()
assert "Some msg" in caplog.text
Run Code Online (Sandbox Code Playgroud)
pytest log_cli 在两个测试中显示日志消息,但是,caplog 仅看到第二个测试的消息。
第一次测试失败并出现以下回溯:
-------------------------------- live log call ---------------------------------
| 13:39:20 | 40212 | leapp.actors.quagga_report | DEBUG | test_logger_caplog_fails.py | Some msg
FAILED …Run Code Online (Sandbox Code Playgroud) 我正在为Microsoft Dynamics Business Connector .net程序集编写一个python包装器.
这是我的代码:
"""Implements wrapper for axapta bussiness connector."""
import pathlib
from msl.loadlib import LoadLibrary
import clr
DLL_PATH = pathlib.Path(__file__).parent / 'Microsoft.Dynamics.BusinessConnectorNet.dll'
def test_msl_connector():
"""Get Axapta object via msl-loadlib package."""
connectorLL = LoadLibrary(DLL_PATH, 'net')
Axapta = getattr(connectorLL.lib,
'Microsoft.Dynamics.BusinessConnectorNet').Axapta
return Axapta
def test_pure_pythonnet_connector():
"""Get Axapta object via pythonnet package."""
clr.AddReference(str(DLL_PATH))
from Microsoft.Dynamics.BusinessConnectorNet import Axapta
return Axapta
Run Code Online (Sandbox Code Playgroud)
运行pytest时这是我的错误:
============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.4.0, py-1.5.2, pluggy-0.6.0
rootdir: C:\Users\AZ\Desktop\test_bom-mcs, inifile:
collected 2 items
test_main.py FF …Run Code Online (Sandbox Code Playgroud) 我试图引用在命名空间中有点的程序集.
sys.path.append(assemblyPath)
clr.FindAssembly(r"isc.Eng.Hov")
clr.AddReference(r"isc.Eng.Hov")
print 'isc.Eng.Hov' in clr.ListAssemblies(False)
from isc.Eng.Hov import *
Run Code Online (Sandbox Code Playgroud)
口译员提出错误:
Traceback (most recent call last):
True
File "/mnt/86f8c6c8-9099-4f32-be68-486a12918546/GoogleDrive/__BACKLOG/RMK_API_LIB/rmkSuppliersDLLswrappers/scr/Hoval/__phex_hoval_dllwrapper.py", line 14, in <module>
from isc.Eng.Hov import *
ImportError: No module named isc.Eng.Hov
Run Code Online (Sandbox Code Playgroud)
如何排除故障?
我有:
@attr.s
class Example:
number = attr.ib(validator=attr.validators.instance_of(int), init=False)
def __attrs_post_init__(self):
self.number = 'string'
print('It seems, validation was running before:(')
t = Example()
Run Code Online (Sandbox Code Playgroud)
这里如何正确设置验证?我想在实例化后验证 self.number。
每次我单击点时,函数签名都会出现在单独的缓冲区中。
import sys
sys.argv # in this moment I have a separate buffer opened with sys.argv signature
Run Code Online (Sandbox Code Playgroud)
那么这个缓冲区一直存在,直到手动关闭。
我只想在按下 时才拥有它ctrl-K。或者至少当我退出插入模式时它会消失......
python ×4
.net ×2
python.net ×2
axapta ×1
fixtures ×1
pytest ×1
python-attrs ×1
python-mode ×1
vim ×1
windows ×1