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
File details
Details for the file hypothesis-csv-0.3.4.tar.gz
.
File metadata
- Download URL: hypothesis-csv-0.3.4.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8716d10a93a22edce2c78544624056b412bd6083bde9e5a1166a02be57d55e6e |
|
MD5 | d066b5df1329719442696247a763fbe2 |
|
BLAKE2b-256 | af4bb97ce73a2d0f638d8af8e11631bfd0aa6bfe3e4057b49f94a198f5e1216b |