我有这个非常简单的类连接到MSSQL服务器:
sql.py
import pymssql
class SQL:
def __init__(self, config_file, mode):
# I'm actually loading this from a file but have shortened it here
self.config = '{"dev": {"host": "host.com"}}'
db = pymssql.connect(**self.config)
self.cursor = db.cursor(as_dict=True)
def query(self, query):
self.cursor.execute(query)
return self.cursor.fetchall()
def rows(self):
return self.cursor.rowcount
我想添加一些所述代码的单元测试,并开始如此:
sql_test.py
import unittest
from unittest.mock import patch
class Test(unittest.TestCase):
"""Test the SQL component."""
@patch('module.sql.SQL')
def test_initialization(self, sql):
self.config = '{"dev": {"host": "host.com"}}'
self.cursor = {}
然而,运行tox会返回:
E ImportError: No module named 'pymssql'
有什么想法可以改进代码以解决问题?
编辑:我已经在我的venv中安装了pymssql:需求已经满足:/home/patrik/PycharmProjects/fin-data/venv/lib/python3.5/site-packages中的pymssql。它更可能与我无法使用Mock相关,而不是我的venv中无法使用的模块。
谢谢, 帕特里克