Unit testing conn() с использованием mock:
app.py
import mysql.connector
import os,urlparse
def conn():
if 'DATABASE_URL' in os.environ:
url=urlparse(os.environ['DATABASE_URL'])
g.db = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname,database=url.path[1:])
else mysql.connector.error.Errors as err:
return "Error
test.py
def test_conn(self):
with patch(app.mysql.connector) as mock_mysql:
with patch(app.os.environ) as mock_environ
con()
mock_mysql.connect.assert_callled_with("credentials")
Ошибка: утверждение mock_mysql.connect.assert_called_with
не вызывается.
который я считаю, потому что "Database_url" не находится в моем исправленном os.environ, и из-за этого тестовый вызов не выполняется в mysql_mock.connect.
Вопросы:
1 Какие изменения мне нужно сделать, чтобы этот тестовый код работал?
2. Мне также нужно исправить "urlparse"?