Skip to content

Commit b3a027c

Browse files
committed
fix: adapt factories to new system
1 parent 445f22b commit b3a027c

File tree

1 file changed

+54
-45
lines changed

1 file changed

+54
-45
lines changed

app/modules/phonebook/factory_phonebook.py

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,88 @@
11
import random
22
import uuid
33

4+
from faker import Faker
45
from sqlalchemy.ext.asyncio import AsyncSession
56

67
from app.core.users import cruds_users
78
from app.core.users.factory_users import CoreUsersFactory
89
from app.core.utils.config import Settings
9-
from app.modules.phonebook import cruds_phonebook, models_phonebook
10-
from app.modules.phonebook.types_phonebook import Kinds, RoleTags
10+
from app.modules.phonebook import cruds_phonebook, schemas_phonebook
11+
from app.modules.phonebook.types_phonebook import RoleTags
1112
from app.types.factory import Factory
1213

14+
faker = Faker("fr_FR")
15+
1316

1417
class PhonebookFactory(Factory):
1518
depends_on = [CoreUsersFactory]
1619

1720
@classmethod
18-
async def create_association(cls, db: AsyncSession):
19-
association_id_1 = str(uuid.uuid4())
20-
await cruds_phonebook.create_association(
21-
association=models_phonebook.Association(
22-
id=association_id_1,
23-
name="Eclair",
24-
description="L'asso d'informatique la plus cool !",
25-
deactivated=False,
26-
kind=Kinds.section_ae,
27-
mandate_year=2025,
21+
async def create_association_groupement(cls, db: AsyncSession) -> list[uuid.UUID]:
22+
groupement_ids = [uuid.uuid4() for _ in range(3)]
23+
await cruds_phonebook.create_groupement(
24+
schemas_phonebook.AssociationGroupement(
25+
id=groupement_ids[0],
26+
name="Section AE",
2827
),
2928
db=db,
3029
)
31-
32-
await cruds_phonebook.create_membership(
33-
membership=models_phonebook.Membership(
34-
id=str(uuid.uuid4()),
35-
user_id=CoreUsersFactory.demo_users_id[0],
36-
association_id=association_id_1,
37-
mandate_year=2025,
38-
role_name="Prez",
39-
role_tags=RoleTags.president.name,
40-
member_order=1,
30+
await cruds_phonebook.create_groupement(
31+
schemas_phonebook.AssociationGroupement(
32+
id=groupement_ids[1],
33+
name="Club AE",
4134
),
4235
db=db,
4336
)
44-
45-
association_id_2 = str(uuid.uuid4())
46-
await cruds_phonebook.create_association(
47-
association=models_phonebook.Association(
48-
id=association_id_2,
49-
name="Association 2",
50-
description="Description de l'asso 2",
51-
associated_groups=[],
52-
deactivated=False,
53-
kind=Kinds.section_use,
54-
mandate_year=2025,
37+
await cruds_phonebook.create_groupement(
38+
schemas_phonebook.AssociationGroupement(
39+
id=groupement_ids[2],
40+
name="Section USE",
5541
),
5642
db=db,
5743
)
58-
users = await cruds_users.get_users(db=db)
59-
tags = list(RoleTags)
60-
for i, user in enumerate(random.sample(users, 10)):
61-
await cruds_phonebook.create_membership(
62-
membership=models_phonebook.Membership(
63-
id=str(uuid.uuid4()),
64-
user_id=user.id,
65-
association_id=association_id_2,
44+
return groupement_ids
45+
46+
@classmethod
47+
async def create_association(
48+
cls,
49+
db: AsyncSession,
50+
groupement_ids: list[uuid.UUID],
51+
):
52+
for i in range(5):
53+
association_id = str(uuid.uuid4())
54+
await cruds_phonebook.create_association(
55+
association=schemas_phonebook.AssociationComplete(
56+
id=association_id,
57+
groupement_id=groupement_ids[i % len(groupement_ids)],
58+
name=faker.company(),
59+
description="Description de l'association",
60+
associated_groups=[],
61+
deactivated=False,
6662
mandate_year=2025,
67-
role_name=f"VP {i}",
68-
role_tags=tags[i].name if i < len(tags) else "",
69-
member_order=i,
7063
),
7164
db=db,
7265
)
66+
users = await cruds_users.get_users(db=db)
67+
tags = list(RoleTags)
68+
for j, user in enumerate(random.sample(users, 10)):
69+
await cruds_phonebook.create_membership(
70+
membership=schemas_phonebook.MembershipComplete(
71+
id=str(uuid.uuid4()),
72+
user_id=user.id,
73+
association_id=association_id,
74+
mandate_year=2025,
75+
role_name=f"VP {j}",
76+
role_tags=tags[j].name if j < len(tags) else "",
77+
member_order=j,
78+
),
79+
db=db,
80+
)
7381

7482
@classmethod
7583
async def run(cls, db: AsyncSession, settings: Settings) -> None:
76-
await cls.create_association(db)
84+
groupement_ids = await cls.create_association_groupement(db=db)
85+
await cls.create_association(db, groupement_ids=groupement_ids)
7786

7887
@classmethod
7988
async def should_run(cls, db: AsyncSession):

0 commit comments

Comments
 (0)