def assert_csv_response(self, response, status_code, expected_lines=None):
assert_that(response.headers["Content-Type"], starts_with("text/csv"))
# always validate status code
assert_that(response.status_code, is_(equal_to(status_code)))
# expect JSON data except on 204
if status_code == 204:
response_lines = None
else:
response_lines = [row for row in reader(StringIO(response.data.decode("utf-8")))]
# validate data if provided
assert_that(
response_lines,
has_length(len(expected_lines)),
)
if response_lines is not None and expected_lines is not None:
for index, line in enumerate(response_lines):
assert_that(
line,
contains(*expected_lines[index]),
)
评论列表
文章目录