CSV extension for the Hypothesis framework
Project description
hypothesis-csv
is an extension to the hypothesis framework. The goal of this framework is to offer a flexible tool
to perform generative-testing/property-based testing for software that accepts CSV files as an input.
Description
hypothesis-csv is designed with two main use cases in mind:
- test software that accepts a wide spectrum of CSV formats and doesn’t make assumptions on the content (i.e. CSV parsers)
- test software that accepts very specific CSV formats and makes assumption on the content, types and header fields.
It provides two strategies, data_rows
and csv
, to pursue this goal, both contained in the strategies module.
Please refer to their documentation and the examples for more details.
Examples
Generate arbitrary, non-empty CSV
from hypothesis_csv.strategies import csv @given(csv=csv()) def test_my_csv_parse(csv): parsed_csv=my_csv_parser(csv) assert ...
Generate CSV of a given size (5 columns x 20 rows)
from hypothesis_csv.strategies import csv @given(csv=csv(lines=20,header=5)) def test_my_csv_parse(csv): parsed_csv=my_csv_parser(csv) assert parsed_csv.num_columns == 5 assert parsed_csv.num_rows == 20
Generate CSV with a header
from hypothesis_csv.strategies import csv @given(csv=csv(header=["timestamp","val_1","val_2"])) def test_my_csv_parse(csv): parsed_csv=my_csv_parser(csv) assert parsed_csv.num_columns == 3
Generate CSV with columns of a given type
from hypothesis_csv.strategies import csv @given(csv=csv(columns=[text(),int(),float()])) def test_my_csv_parse(csv): parsed_csv=my_csv_parser(csv) assert parsed_csv.num_columns == 3
Generate CSV with a given dialect
from hypothesis_csv.strategies import csv @given(csv=csv(columns=[text(),int(),float()], dialect="excel-tab")) def test_my_csv_parse(csv): ...
Generate CSV with drawns dialects
from hypothesis_csv.strategies import csv @given(csv=csv(columns=[text(),int(),float()], dialect=None)) def test_my_csv_parse(csv): ...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hypothesis-csv-0.3.4.tar.gz
(17.2 kB
view hashes)