Skip to content

Add terminate selected tasks action in admin #449

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

caoqianming
Copy link

No description provided.

@Nusnus Nusnus requested a review from auvipy October 19, 2024 21:21
Copy link
Member

@auvipy auvipy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please elaborate the change a bit more? can you also verify the change?

@caoqianming
Copy link
Author

When a long task is in running state, I may need to terminate it for various reasons. So adding this action in admin is useful. I added the code and tested it and it works fine. In the beginning I was terminating tasks one by one in a for loop, later I realized that I could pass in a list, so I made some changes.

@caoqianming caoqianming requested a review from auvipy October 21, 2024 09:54
Copy link
Member

@auvipy auvipy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add tests to verify this? and do not introduce any regression?

@caoqianming
Copy link
Author

Okay, I'll try.

@caoqianming
Copy link
Author

can you add tests to verify this? and do not introduce any regression?您能否添加测试来验证这一点?并且不引入任何回归?

Sorry, I have no idea to write this UNIT test. And i run python manage.py test with some errors in the picture. can you help me or give some suggestion, thank you
image

@AllexVeldman
Copy link
Contributor

@caoqianming unittests are run using pytest.

install a virtualenv with the test dependencies, make sure you are on python 3.11:

python -m venv .venv
. .venv/bin/activate
pip install -r requirements/default.txt -r requirements/test.txt -r requirements/test-django.txt
pytest

This requires a postgres database to be available on localhost with USER postgres PASSWORD postgres and a database with the name postgres. I normally use a docker image I already have running, or just run the plain docker image: https://hub.docker.com/_/postgres

Currently there are no tests testing the admin pages since there was very little functionality there, so you'll have to add a test_admin.py yourself.
If you run into issues creating the tests, ping me here and I'll see if I can spend some time on this.

@caoqianming
Copy link
Author

Hello. I add some test @AllexVeldman

@auvipy auvipy requested a review from Copilot May 12, 2025 07:22
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new action to the Django admin interface allowing administrators to terminate selected tasks, along with corresponding unit tests.

  • Introduces terminate_task action in TaskResultAdmin which terminates tasks and reports success or error messages.
  • Adds unit tests in t/unit/test_admin.py covering both successful termination and failure scenarios.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
t/unit/test_admin.py Adds tests for the new terminate_task action
django_celery_results/admin.py Implements the terminate_task action in the admin
Comments suppressed due to low confidence (1)

t/unit/test_admin.py:27

  • [nitpick] The variable name 'id' shadows the built-in function id(). Consider renaming it to 'task_id' or similar to avoid potential confusion.
id = uuid()

@auvipy
Copy link
Member

auvipy commented May 12, 2025

my concern is while this intorduce any unintended stuff? or it too risky?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants