file
这是从数据库中查找值的基本代码。如果存在值,则Malware = True,否则为False
我正在使用Mock库编写单元测试并模拟Mysql连接,但无法为恶意软件返回值True或False bool。
def m():
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
cnx.database = database_name
cursor.execute('''SELECT COUNT(1) FROM URLlookup where malicious = '{0}' '''.format(new_URL))
Malware = cursor.fetchone()[0]
if Malware:
do something
else:
do something
在“恶意软件”之后如何返回True或False以便IF else语句可以相应地执行?
答案 0 :(得分:0)
您需要模拟cursor.fetchone
以返回单个数字的元组。
然后拨打m()
,然后检查预期的事情是否发生。
with patch ('mysql.connector.connect') as mock_db:
connection = mock_db.return_value
cursor = connection.cursor.return_value
cursor.fetchone.return_value = (1,) # or (0,) # <-----
# TODO call m()
# TODO assert that something is done or not