Usage Examples

Build your own annotation

Using another CSV format? The same data_casts methods each time? There is only one name for a test ID column? You can easily build your own annotation. Just create a method that contains your common stuff:

from pytest_csv_params.decorator import csv_params

def my_csv_params(data_file: str, **kwargs):
    kwargs.setdefault("base_dir", "/var/test-data")
    kwargs.setdefault("id_col", "Test Case ID")
    kwargs.setdefault("header_renames", {
        "Order #": "order_number",
        "Price Total": "total_price",
    kwargs.setdefault("data_casts", {
        "total_price": float,
    return csv_params(data_file, **kwargs)

When you now write a test, you can decorate it with @my_csv_params("test-file-1.csv"). You can override any of your default settings by just adding it as a keyword argument: @my_csv_params("test-file-1.csv", id_col="Test ID").