def test_csv_instances(mocker):
mock_open = mocker.patch("%s.open" % builtin_mock, mock.mock_open(read_data=DATA))
mock_csv_reader = mocker.patch("csv.DictReader")
# for whatever reason mock_open is not sufficent since the DictReader will return nothing
# so mocking the csv reader is necessary
ret = []
for line in DATA.split("\n"):
ret.append(dict(zip(['name','address','random'], line.split("|"))))
mock_csv_reader.return_value = ret
csv_obj = CsvInventory('/tmp/dummy/path', ' name,address, random ', ' | ')
instances = csv_obj.instances()
print(instances)
expected_instances = [Instance(name='devenv-pubsrv', address='13.14.15.16', source='csv'),
Instance(name='testenv-pubsrv', address='1.2.3.4', source='csv'),
Instance(name='devenv-pubsrv', address='9.10.11.12', source='csv'),
Instance(name='testenv-pubsrv', address='5.6.7.8', source='csv'),
Instance(name='testenv-formsvc', address='17.18.19.20', source='csv')]
assert set(instances) == set(expected_instances)
评论列表
文章目录