[DEPRECATED] Use surety instead. Library to describe contracts and generate data
Project description
DEPRECATED — This package is no longer maintained. Migrate to surety:
pip install suretyReplace
from fild.sdk import ...withfrom surety import ....
FILD is a lightweight Python library for automated contract testing. FILD allows to store descriptive structure of the API and use it further for generating test data based on Faker.
The basic type for usage is Field, any other types should inherit from.
Field supports the description of the API parameter within the following:
name: key in json
required: identifies the necessity of presense of the
key in the resulting json.
allow_none: should be true if the value can be null in the
json.
default: default value to be used in regular generation.
Can either be the value or the callable to generate.
Abstract method generate_value is used to specify the rules
based on which the value should be generated. When defining
new type, inherited from Field, the method should be overriden
to describe the generation procedure.
Library supports multi-level hierarchy with Arrays and Dictionaries.
Library also provides some dict operating methods.
filter_dict: allows to apply value/callable filter to dict by values
merge_with_updates: merges two dicts with either overriding or only adding
values to the target dictionary.
normalize: sorts lists - both top level and embeded - to represent
the desired order.
Examples
Field object is used to describe data structures
from fild.sdk import Dictionary, Enum, Int, String, Uuid
class Gender(Enum):
Male = 'male'
Femail = 'female'
Other = 'other'
class Customer(Dictionary):
Id = Uuid(name='id')
Name = String(name='name', max_len=100)
Age = Int(name='age', min_val=18, max_val=120)
Gender = Gender(name='gender', required=False)
Email = String(name='email')
Based on the description the data can be generated by calling constructor with or without parameters
generated_customer = Customer()
generated_full_customer = Customer(is_full=True)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fild-0.1.11.tar.gz.
File metadata
- Download URL: fild-0.1.11.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c4926bd46fc335dc3444efb0cca81826bef1700a1dea68580fb5ee646b102b2
|
|
| MD5 |
3b5bba205e13f9be92c1ff1b685f4e27
|
|
| BLAKE2b-256 |
46b57e277f3550efa717ce2d1df243f2f3b3924f9744b4e446f5ea02ae550545
|
File details
Details for the file fild-0.1.11-py3-none-any.whl.
File metadata
- Download URL: fild-0.1.11-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbc391e512069ee6229d292ebd5fa7600484a1a5740185836c49fa7e1dc6fbc5
|
|
| MD5 |
efb359b5b2f739daf7392232cc98a63f
|
|
| BLAKE2b-256 |
337288ef1d994e1999c2bc49b17a0ea0e04a6c14c94ad562e038e2cdd6a46e8a
|