与How do I mock part of a python constructor just for testing?类似,但明确地try 让pymysqlpool.ConnectionPool
正常工作/
class DbTests(TestCase):
@mock.patch('pymysqlpool.ConnectionPool', autospec=True)
@mock.patch.dict(
os.environ,
{
"DATASOURCES_0_SERVERID": "server1",
"DATASOURCES_0_HOST": "non-existent",
"DATASOURCES_0_PORT": "3307",
"DATASOURCES_0_DATABASE": "lj_ca1",
"DATASOURCES_0_USERNAME": "sampleuser",
"DATASOURCES_0_PASSWORD": "password1",
"DATASOURCES_0_TIMEZONE": "Americas/Toronto",
},
)
def test_load(self, connection_pool_mock: mock.Mock):
ConnectionPool(
size=2, maxsize=3, pre_create_num=2, host=os.environ["DATASOURCES_0_HOST"]
)
我希望代码能够简单地工作,但我得到了
Pymysql.err.OperationalError:(2003年,"无法连接到‘不存在’上的MySQL服务器([Errno 11001]getaddrinfo失败)")