Skip to content

Commit 6ca77bb

Browse files
committed
Deps: replace mixer with faker + model_bakery
1 parent 00d43cd commit 6ca77bb

File tree

7 files changed

+25
-43
lines changed

7 files changed

+25
-43
lines changed

{{ cookiecutter.name }}/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ dev = [
3232
"django-stubs>=5.2.0",
3333
"djangorestframework-stubs>=3.16.0",
3434
"dotenv-linter>=0.7.0",
35+
"faker>=37.8.0",
3536
"freezegun>=1.5.1",
3637
"ipython>=9.2.0",
3738
"jedi>=0.19.2",
38-
"mixer>=7.2.2",
39+
"model-bakery>=1.20.5",
3940
"mypy>=1.15.0",
4041
"pymarkdownlnt>=0.9.29",
4142
"pytest-deadfixtures>=2.2.1",
@@ -226,7 +227,6 @@ module = [
226227
"djangorestframework_camel_case.*",
227228
"drf_orjson_renderer.*",
228229
"ipware.*",
229-
"mixer.*",
230230
]
231231
ignore_missing_imports = true
232232

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
from django.core.files.uploadedfile import SimpleUploadedFile
2-
from faker import Faker
32

43
from app.testing import register
54
from app.testing.types import FactoryProtocol
65

76

8-
faker = Faker()
9-
10-
117
@register
128
def image(self: FactoryProtocol, name: str = "image.gif", content_type: str = "image/gif") -> SimpleUploadedFile:
13-
return SimpleUploadedFile(name=name, content=faker.image(), content_type=content_type)
9+
return SimpleUploadedFile(name=name, content=self.faker.image(), content_type=content_type)

{{ cookiecutter.name }}/src/app/testing/factory.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from collections.abc import Callable
22
from functools import partial
33

4-
from app.testing.mixer import mixer
4+
from faker import Faker
5+
from model_bakery import baker
56

67

78
def register(method: Callable) -> Callable:
@@ -31,7 +32,8 @@ def __getattr__(self, name: str) -> Callable:
3132

3233
class FixtureFactory:
3334
def __init__(self) -> None:
34-
self.mixer = mixer
35+
self.baker = baker # imported module
36+
self.faker = Faker()
3537
self.registry = FixtureRegistry()
3638

3739
def __getattr__(self, name: str) -> Callable:

{{ cookiecutter.name }}/src/app/testing/mixer.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

{{ cookiecutter.name }}/src/app/testing/types.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1+
from types import ModuleType
12
from typing import Protocol
23

3-
from mixer.backend.django import mixer
4+
from faker import Faker
45

56

67
class FactoryProtocol(Protocol):
7-
mixer: mixer
8+
baker: ModuleType
9+
faker: Faker
810

911

1012
__all__ = [

{{ cookiecutter.name }}/src/users/factory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
@register
99
def user(self: FactoryProtocol, **kwargs: dict) -> User:
10-
return self.mixer.blend("users.User", **kwargs)
10+
return self.baker.make("users.User", **kwargs)
1111

1212

1313
@register

{{ cookiecutter.name }}/uv.lock

Lines changed: 13 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)