From 7d3fd25c61a74c30402430fc9a22f8a64cc55df9 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Thu, 4 Jul 2024 16:40:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=A1(demo)=20demo=20generate=20dummy=20?= =?UTF-8?q?documents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The demo command will generate dummy documents and dummy accesses. --- src/backend/demo/defaults.py | 4 ++- .../demo/management/commands/create_demo.py | 27 +++++++++++++++++++ .../demo/tests/test_commands_create_demo.py | 3 +++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/backend/demo/defaults.py b/src/backend/demo/defaults.py index 5c4a4b45..c7d17451 100644 --- a/src/backend/demo/defaults.py +++ b/src/backend/demo/defaults.py @@ -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, } diff --git a/src/backend/demo/management/commands/create_demo.py b/src/backend/demo/management/commands/create_demo.py index 3d7b7c71..9229e442 100644 --- a/src/backend/demo/management/commands/create_demo.py +++ b/src/backend/demo/management/commands/create_demo.py @@ -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" diff --git a/src/backend/demo/tests/test_commands_create_demo.py b/src/backend/demo/tests/test_commands_create_demo.py index 057b57e3..631f2fea 100644 --- a/src/backend/demo/tests/test_commands_create_demo.py +++ b/src/backend/demo/tests/test_commands_create_demo.py @@ -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