johnnoone / genuine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Genuine

Genuine makes it easy to create test data and associations. It is inspired by ruby factory-bot.

It has a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, and attribute mappings), and support for multiple factories for the same class.

Installation

pip install genuine

Usage

from genuine import build
from dataclasses import dataclass

@dataclass
class User:
    name: str
    age: int
    admin: bool = False

instance = build(User)
assert isinstance(instance, User)

With a factory

from genuine import define_factory

with define_factory(User) as factory:
    factory.set("name", "John")

instance = build(User)
assert instance.name == "John"

Nested model objects

@dataclass
class Comment:
    body: str
    commenter: User


with define_factory(Comment) as factory:
    factory.set("body", "awesome")
    factory.association("commenter", User)

assert build(Comment).commenter.name == "John"

Doc

more example are located here https://johnnoone.github.io/genuine/

About

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%