Skip to main content

[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 surety

Replace from fild.sdk import ... with from surety import ....

Downloads Python Versions License Build Status

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)

Install from PyPI

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

fild-0.1.11.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fild-0.1.11-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

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

Hashes for fild-0.1.11.tar.gz
Algorithm Hash digest
SHA256 7c4926bd46fc335dc3444efb0cca81826bef1700a1dea68580fb5ee646b102b2
MD5 3b5bba205e13f9be92c1ff1b685f4e27
BLAKE2b-256 46b57e277f3550efa717ce2d1df243f2f3b3924f9744b4e446f5ea02ae550545

See more details on using hashes here.

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

Hashes for fild-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 bbc391e512069ee6229d292ebd5fa7600484a1a5740185836c49fa7e1dc6fbc5
MD5 efb359b5b2f739daf7392232cc98a63f
BLAKE2b-256 337288ef1d994e1999c2bc49b17a0ea0e04a6c14c94ad562e038e2cdd6a46e8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page