위키득계정 ↗
기술

Model Bakery

Model Bakery기술
분류
Django 시험 데이터 생성기
주요 인터페이스
baker
저장 객체 생성
make
비저장 객체 준비
prepare
Model Bakery는 Django 모델의 시험용 객체를 만드는 라이브러리다. 모델 필드에 필요한 값을 생성하고 연관 객체를 구성해 시험 데이터 준비를 돕는다.

모델 기반의 값 생성

모델 클래스를 전달하거나 앱과 모델 이름을 지정해 객체를 만들 수 있다. 필드의 기본 생성값 대신 시험에 필요한 값을 명시적으로 전달할 수도 있다. 검증에 중요한 조건을 직접 지정하면 무작위 값에 따라 시험의 의미가 바뀌는 일을 줄인다.

관계의 처리

외래 키 등 관계에 필요한 객체를 함께 생성할 수 있다. 다대다 관계의 관련 객체는 기본적으로 자동 생성되지 않으므로 필요하면 설정하거나 직접 전달한다. 모델 하나를 만드는 작업이 다른 객체의 생성으로 이어질 수 있다는 점을 고려해야 한다.

저장 여부의 구분

make는 저장된 인스턴스를 만들고 prepare는 저장하지 않은 객체를 준비하는 데 사용한다. 다만 prepare에서도 외래 키나 일대일 관계에 필요한 객체는 저장될 수 있다. 비저장 객체를 요청했다고 전체 과정에 데이터베이스 쓰기가 없다고 단정해서는 안 된다.

관련 문서

Factory Boy / Polyfactory / Faker Python 라이브러리 / Pytest-mock