From 03b5a6b5e4ee2fc775cdda64c1b7d1a7cce9eba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=C3=90dettlaff?= Date: Thu, 23 Mar 2023 20:49:30 +0300 Subject: [PATCH] fix: percentage --- dump.rdb | Bin 0 -> 88 bytes selfprivacy_api/jobs/nix_collect_garbage.py | 12 ++--- setup.py | 0 shell.nix | 45 ++---------------- .../test_graphql/test_nix_collect_garbage.py | 29 +++++------ 5 files changed, 23 insertions(+), 63 deletions(-) create mode 100644 dump.rdb mode change 100755 => 100644 setup.py diff --git a/dump.rdb b/dump.rdb new file mode 100644 index 0000000000000000000000000000000000000000..2f3b490816640dcfd897e08c8eb137f27ec5a6e2 GIT binary patch literal 88 zcmWG?b@2=~FfcUu#aWb^l3A=uO-d|IJ;3n)^rLMb4lXTO2>_mAByj)$ literal 0 HcmV?d00001 diff --git a/selfprivacy_api/jobs/nix_collect_garbage.py b/selfprivacy_api/jobs/nix_collect_garbage.py index 587da65..3d13382 100644 --- a/selfprivacy_api/jobs/nix_collect_garbage.py +++ b/selfprivacy_api/jobs/nix_collect_garbage.py @@ -61,19 +61,19 @@ def parse_line(line): def stream_process( stream, - package_equal_to_percent, + total_dead_packages, set_job_status, ): - percent = 0 + completed_packages = 0 for line in stream: if "deleting '/nix/store/" in line: - percent += package_equal_to_percent + completed_packages += 1 + percent = int((completed_packages / total_dead_packages) * 100) set_job_status( status=JobStatus.RUNNING, - progress=int(percent), - progress=int(percent), + progress=percent, status_text="Сleaning...", ) @@ -95,7 +95,7 @@ def get_dead_packages(output): return dead, percent -@huey.task() +# @huey.task() # ломает все к фигам def nix_collect_garbage( job, jobs=Jobs, diff --git a/setup.py b/setup.py old mode 100755 new mode 100644 diff --git a/shell.nix b/shell.nix index 668da69..b620ee2 100644 --- a/shell.nix +++ b/shell.nix @@ -1,6 +1,6 @@ -{ pkgs ? import { } }: +{ pkgs ? import { } }: let - sp-python = pkgs.python39.withPackages (p: with p; [ + sp-python = pkgs.python310.withPackages (p: with p; [ setuptools portalocker pytz @@ -19,45 +19,7 @@ let fastapi uvicorn redis - (buildPythonPackage rec { - pname = "strawberry-graphql"; - version = "0.123.0"; - format = "pyproject"; - patches = [ - ./strawberry-graphql.patch - ]; - propagatedBuildInputs = [ - typing-extensions - python-multipart - python-dateutil - # flask - pydantic - pygments - poetry - # flask-cors - (buildPythonPackage rec { - pname = "graphql-core"; - version = "3.2.0"; - format = "setuptools"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-huKgvgCL/eGe94OI3opyWh2UKpGQykMcJKYIN5c4A84="; - }; - checkInputs = [ - pytest-asyncio - pytest-benchmark - pytestCheckHook - ]; - pythonImportsCheck = [ - "graphql" - ]; - }) - ]; - src = fetchPypi { - inherit pname version; - sha256 = "KsmZ5Xv8tUg6yBxieAEtvoKoRG60VS+iVGV0X6oCExo="; - }; - }) + strawberry-graphql ]); in pkgs.mkShell { @@ -65,6 +27,7 @@ pkgs.mkShell { sp-python pkgs.black pkgs.redis + pkgs.restic ]; shellHook = '' PYTHONPATH=${sp-python}/${sp-python.sitePackages} diff --git a/tests/test_graphql/test_nix_collect_garbage.py b/tests/test_graphql/test_nix_collect_garbage.py index 4305f5c..0db620a 100644 --- a/tests/test_graphql/test_nix_collect_garbage.py +++ b/tests/test_graphql/test_nix_collect_garbage.py @@ -96,26 +96,21 @@ def test_stream_process(): def set_job_status(status, progress, status_text, result=""): log_event.append((status, progress, status_text, result)) - stream_process(output_collect_garbage.split("\n"), 20.0, set_job_status) + stream_process(output_collect_garbage.split("\n"), 5, set_job_status) assert log_event == reference def test_nix_collect_garbage(): log_event = [] reference = [ - (JobStatus.RUNNING, 0, "Сalculate the number of dead packages...", ""), - (JobStatus.RUNNING, 0, "Found 5 packages to remove!", ""), - (JobStatus.RUNNING, 20, "Сleaning...", ""), - (JobStatus.RUNNING, 40, "Сleaning...", ""), - (JobStatus.RUNNING, 60, "Сleaning...", ""), - (JobStatus.RUNNING, 80, "Сleaning...", ""), - (JobStatus.RUNNING, 100, "Сleaning...", ""), - ( - JobStatus.FINISHED, - 100, - "Сleaning completed.", - "425.51 MiB have been cleared", - ), + (JobStatus.RUNNING, 0, 'Сalculate the number of dead packages...', ''), + (JobStatus.RUNNING, 0, 'Found 5 packages to remove!', ''), + (JobStatus.RUNNING, 5, 'Сleaning...', ''), + (JobStatus.RUNNING, 10, 'Сleaning...', ''), + (JobStatus.RUNNING, 15, 'Сleaning...', ''), + (JobStatus.RUNNING, 20, 'Сleaning...', ''), + (JobStatus.RUNNING, 25, 'Сleaning...', ''), + (JobStatus.FINISHED, 100, 'Сleaning completed.', '425.51 MiB have been cleared'), ] def set_job_status(status="", progress="", status_text="", result=""): @@ -128,6 +123,8 @@ def test_nix_collect_garbage(): lambda: output_collect_garbage.split("\n"), set_job_status, ) + print("log_event:", log_event) + print("reference:", reference) assert log_event == reference @@ -152,7 +149,7 @@ def test_nix_collect_garbage_zero_trash(): assert log_event == reference - +# андр констракнш @pytest.mark.asyncio async def test_graphql_nix_collect_garbage(): query = """ @@ -166,6 +163,6 @@ async def test_graphql_nix_collect_garbage(): ) sub = await schema_for_garbage.subscribe(query) - for result in sub: + async for result in sub: assert not result.errors assert result.data == {}