有沒有一種很好的方法來做到這一點。py.test針對不同結果的多個測試
@pytest.fixture(params=[
"web01-east.domain.com",
"web01-master-east.domain.com",
"web01.domain.com",
])
def patch_socket(request, monkeypatch):
def gethostname():
return request.param
monkeypatch.setattr(socket, 'gethostname', gethostname)
def test__get_pod(patch_socket):
assert __get_pod() == 'east'
眼下這會工作,但我想有最後一次測試失敗,但沒事,因爲如果在__get_pod()函數返回未知的主機名不-east。
有沒有辦法告訴py.test,我想在一個什麼樣的PARAM列表,通過考試應該等於像
[
('web01-east.domain.com', 'web')
('redis01-master-east.domain.com', 'redis-master')
('web01.domain.com', 'Unknown')
]