使用unixODBC,您可以使用名为"isql"的简单命令行实用程序来测试某些查询的连接和权限.无需编写额外的代码或安装libs或膨胀的程序,有没有一种简单的方法来打开X数据源发送一些sql命令并完成它?
在命令行上执行此操作将更可取.
难以理解如何模拟一个类,并能够断言它的'方法是用一些参数调用的.当我断言调用时,我得到一个"未调用"断言但是,我可以在mock_calls属性中看到方法调用.
sandbox/module.py
class Subject(object):
def __init__(self):
pass
def run(self, *args, **kwargs):
reference = Reference(*args, **kwargs)
reference.method_a(*args)
class Reference(object):
def __init__(self, *args, **kwargs):
pass
def method_a(self, *args):
pass
Run Code Online (Sandbox Code Playgroud)
test.py
import unittest
from unittest import mock
from sandbox.module import Subject
class TestSandbox(unittest.TestCase):
@mock.patch('sandbox.module.Reference')
def test_method_calls(self, mock_reference):
subject = Subject()
subject.run(1, 2, 3, x=44, y=55, z=66)
mock_reference.assert_called_with(1, 2, 3, x=44, y=55, z=66)
mock_reference.method_a.assert_called_with(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
结果是
AssertionError: Expected call: method_a(1, 2, 3)
Not called
Run Code Online (Sandbox Code Playgroud)
价值mock_reference.mock_calls是
[
call(1, 2, 3, …Run Code Online (Sandbox Code Playgroud)