Fix: name generation by not using words but word
This commit is contained in:
parent
dfd0bb2b81
commit
7d908775a9
@ -1,53 +1,65 @@
|
|||||||
from random import choice, randint
|
from random import choice, randint
|
||||||
|
|
||||||
from faker import Faker
|
from faker import Faker
|
||||||
|
from faker.providers import DynamicProvider
|
||||||
|
|
||||||
from backend.model.assessment import Assessment, Domain, Exercise, Question, Skill
|
from backend.model.assessment import Assessment, Domain, Exercise, Question, Skill
|
||||||
|
from backend.model.student import Student
|
||||||
from backend.model.tribe import Tribe
|
from backend.model.tribe import Tribe
|
||||||
from backend.repository.abstract_repository import AbstractRepository
|
from backend.repository.abstract_repository import AbstractRepository
|
||||||
|
|
||||||
faker = Faker()
|
level_provider = DynamicProvider(
|
||||||
|
provider_name="level",
|
||||||
|
elements=["2nd", "1ST", "SNT", "1G", "TG", "EnsSci"],
|
||||||
|
)
|
||||||
|
|
||||||
|
faker = Faker("fr_FR")
|
||||||
|
faker.add_provider(level_provider)
|
||||||
|
|
||||||
|
|
||||||
def build_tribes(quantity: int = 1):
|
def build_tribes(quantity: int = 1) -> list[Tribe]:
|
||||||
return [Tribe(name=faker.words(5), level=faker.words(5)) for _ in range(quantity)]
|
return [Tribe(name=faker.word(), level=faker.level()) for _ in range(quantity)]
|
||||||
|
|
||||||
|
|
||||||
def build_assessments(tribes: list[Tribe], assessment_per_tribe: int = 1):
|
def build_assessments(
|
||||||
|
tribes: list[Tribe], assessment_per_tribe: int = 1
|
||||||
|
) -> list[Assessment]:
|
||||||
|
|
||||||
assessments = []
|
assessments = []
|
||||||
for t in tribes:
|
for t in tribes:
|
||||||
assessments += [
|
assessments += [
|
||||||
Assessment("faker.words(5)", t, randint(1, 3))
|
Assessment("faker.word()", t, randint(1, 3))
|
||||||
for _ in range(assessment_per_tribe)
|
for _ in range(assessment_per_tribe)
|
||||||
]
|
]
|
||||||
|
|
||||||
return assessments
|
return assessments
|
||||||
|
|
||||||
|
|
||||||
def build_exercises(assessments: list[Assessment], exercise_per_assessment=1):
|
def build_exercises(
|
||||||
|
assessments: list[Assessment], exercise_per_assessment=1
|
||||||
|
) -> list[Exercise]:
|
||||||
exercises = []
|
exercises = []
|
||||||
for assessment in assessments:
|
for assessment in assessments:
|
||||||
exercises += [
|
exercises += [
|
||||||
Exercise("faker.words(4)", assessment, "today")
|
Exercise("faker.word()", assessment, "today")
|
||||||
for _ in range(exercise_per_assessment)
|
for _ in range(exercise_per_assessment)
|
||||||
]
|
]
|
||||||
|
|
||||||
return exercises
|
return exercises
|
||||||
|
|
||||||
|
|
||||||
def build_skills(quantity=1):
|
def build_skills(quantity=1) -> list[Skill]:
|
||||||
return [Skill(faker.words(6), faker.text()) for _ in range(quantity)]
|
return [Skill(faker.word(), faker.text()) for _ in range(quantity)]
|
||||||
|
|
||||||
|
|
||||||
def build_domains(quantity=1):
|
def build_domains(quantity=1) -> list[Domain]:
|
||||||
return [Domain(faker.words(6), faker.text()) for _ in range(quantity)]
|
return [Domain(faker.word(), faker.text()) for _ in range(quantity)]
|
||||||
|
|
||||||
|
|
||||||
def build_questions(
|
def build_questions(
|
||||||
exercises: list[Exercise],
|
exercises: list[Exercise],
|
||||||
question_per_exercise=1,
|
question_per_exercise=1,
|
||||||
):
|
) -> list[Question]:
|
||||||
skills = build_skills()
|
skills = build_skills()
|
||||||
domains = build_domains()
|
domains = build_domains()
|
||||||
|
|
||||||
@ -55,7 +67,7 @@ def build_questions(
|
|||||||
for exercise in exercises:
|
for exercise in exercises:
|
||||||
questions += [
|
questions += [
|
||||||
Question(
|
Question(
|
||||||
faker.words(2),
|
faker.word(),
|
||||||
exercise,
|
exercise,
|
||||||
description="desc",
|
description="desc",
|
||||||
skill=choice(skills),
|
skill=choice(skills),
|
||||||
@ -69,6 +81,18 @@ def build_questions(
|
|||||||
return questions
|
return questions
|
||||||
|
|
||||||
|
|
||||||
|
def build_student(
|
||||||
|
tribes: list[Tribe],
|
||||||
|
students_per_tribe=1,
|
||||||
|
) -> list[Student]:
|
||||||
|
students = []
|
||||||
|
for tribe in tribes:
|
||||||
|
students += [
|
||||||
|
Student(name=faker.name(), tribe=tribe) for _ in range(students_per_tribe)
|
||||||
|
]
|
||||||
|
return students
|
||||||
|
|
||||||
|
|
||||||
class FakeTribeRepository(AbstractRepository):
|
class FakeTribeRepository(AbstractRepository):
|
||||||
def __init__(self, tribes):
|
def __init__(self, tribes):
|
||||||
self._tribes = {t.name: t for t in tribes}
|
self._tribes = {t.name: t for t in tribes}
|
||||||
|
Loading…
Reference in New Issue
Block a user