🤡(demo) demo generate dummy documents

The demo command will generate dummy documents
and dummy accesses.
This commit is contained in:
Anthony LC
2024-07-04 16:40:19 +02:00
committed by Anthony LC
parent e3fe647e5b
commit 7d3fd25c61
3 changed files with 33 additions and 1 deletions

View File

@@ -1,5 +1,7 @@
"""Parameters that define how the demo site will be built."""
NB_OBJECTS = {
"users": 100,
"users": 50,
"docs": 50,
"max_users_per_document": 50,
}

View File

@@ -125,6 +125,33 @@ def create_demo(stdout):
)
queue.flush()
with Timeit(stdout, "Creating documents"):
for _ in range(defaults.NB_OBJECTS["docs"]):
queue.push(
models.Document(
title=fake.sentence(nb_words=4),
is_public=random_true_with_probability(0.5),
)
)
queue.flush()
with Timeit(stdout, "Creating docs accesses"):
docs_ids = list(models.Document.objects.values_list("id", flat=True))
users_ids = list(models.User.objects.values_list("id", flat=True))
for doc_id in docs_ids:
for user_id in random.sample(
users_ids,
random.randint(1, defaults.NB_OBJECTS["max_users_per_document"]),
):
role = random.choice(models.RoleChoices.choices)
queue.push(
models.DocumentAccess(
document_id=doc_id, user_id=user_id, role=role[0]
)
)
queue.flush()
with Timeit(stdout, "Creating Template"):
with open(
file="demo/data/template/code.txt", mode="r", encoding="utf-8"

View File

@@ -16,3 +16,6 @@ def test_commands_create_demo():
call_command("create_demo")
assert models.Template.objects.count() == 1
assert models.User.objects.count() >= 50
assert models.Document.objects.count() >= 50
assert models.DocumentAccess.objects.count() > 50