From 71301feee97c67382d6f360b5a92cacee4d5f419 Mon Sep 17 00:00:00 2001 From: Tom Hu Date: Sun, 8 Feb 2026 00:21:09 +0900 Subject: [PATCH] refactor: consolidate TrialStatus to shared.plan.constants TrialStatus already existed in shared.plan.constants (used by the API). Remove the duplicate from shared.django_apps.enums and point worker imports to the canonical location, eliminating redundancy. Co-authored-by: Cursor --- .cursor/rules/pre-commit-checks.mdc | 17 +++++++++++++++++ apps/worker/database/enums.py | 2 +- apps/worker/services/tests/test_decoration.py | 3 +-- .../tasks/tests/unit/test_trial_expiration.py | 3 +-- .../tests/unit/test_trial_expiration_cron.py | 3 +-- apps/worker/tasks/trial_expiration_cron.py | 3 +-- libs/shared/shared/django_apps/enums.py | 7 ------- 7 files changed, 22 insertions(+), 16 deletions(-) create mode 100644 .cursor/rules/pre-commit-checks.mdc diff --git a/.cursor/rules/pre-commit-checks.mdc b/.cursor/rules/pre-commit-checks.mdc new file mode 100644 index 0000000000..63b9626ec4 --- /dev/null +++ b/.cursor/rules/pre-commit-checks.mdc @@ -0,0 +1,17 @@ +--- +description: Run pre-commit checks (ruff lint + format) before creating PRs or commits +alwaysApply: true +--- + +# Pre-commit Checks + +Before creating a PR or making a commit, always run the project's pre-commit hooks to catch lint and formatting issues: + +```bash +ruff check --fix . +ruff format . +``` + +If either command produces changes, stage the fixes and include them in the commit. + +This project uses `ruff` for both linting (`ruff check`) and formatting (`ruff format`), configured in `pyproject.toml` and enforced via `.pre-commit-config.yaml`. diff --git a/apps/worker/database/enums.py b/apps/worker/database/enums.py index 60db83e719..ef4e0fe2de 100644 --- a/apps/worker/database/enums.py +++ b/apps/worker/database/enums.py @@ -9,6 +9,6 @@ Notification, NotificationState, ReportType, - TrialStatus, notification_type_status_or_checks, ) +from shared.plan.constants import TrialStatus # noqa: F401 diff --git a/apps/worker/services/tests/test_decoration.py b/apps/worker/services/tests/test_decoration.py index 0c4a50a2ca..e6c85cf25f 100644 --- a/apps/worker/services/tests/test_decoration.py +++ b/apps/worker/services/tests/test_decoration.py @@ -25,13 +25,12 @@ from shared.django_apps.core.tests.factories import ( RepositoryFactory as DjangoRepositoryFactory, ) -from shared.django_apps.enums import TrialStatus from shared.django_apps.reports.models import ReportSession, ReportType from shared.django_apps.reports.tests.factories import CommitReportFactory from shared.django_apps.reports.tests.factories import ( UploadFactory as DjangoUploadFactory, ) -from shared.plan.constants import DEFAULT_FREE_PLAN +from shared.plan.constants import DEFAULT_FREE_PLAN, TrialStatus from shared.plan.service import PlanService from shared.upload.types import UploaderType from shared.upload.utils import insert_coverage_measurement diff --git a/apps/worker/tasks/tests/unit/test_trial_expiration.py b/apps/worker/tasks/tests/unit/test_trial_expiration.py index f8e27d6413..acb86674a9 100644 --- a/apps/worker/tasks/tests/unit/test_trial_expiration.py +++ b/apps/worker/tasks/tests/unit/test_trial_expiration.py @@ -5,8 +5,7 @@ PlanFactory, TierFactory, ) -from shared.django_apps.enums import TrialStatus -from shared.plan.constants import DEFAULT_FREE_PLAN, PlanName, TierName +from shared.plan.constants import DEFAULT_FREE_PLAN, PlanName, TierName, TrialStatus from tasks.trial_expiration import TrialExpirationTask diff --git a/apps/worker/tasks/tests/unit/test_trial_expiration_cron.py b/apps/worker/tasks/tests/unit/test_trial_expiration_cron.py index 5d87f6a037..007f95603e 100644 --- a/apps/worker/tasks/tests/unit/test_trial_expiration_cron.py +++ b/apps/worker/tasks/tests/unit/test_trial_expiration_cron.py @@ -3,8 +3,7 @@ from celery_config import trial_expiration_task_name from database.tests.factories.core import OwnerFactory -from shared.django_apps.enums import TrialStatus -from shared.plan.constants import DEFAULT_FREE_PLAN, PlanName +from shared.plan.constants import DEFAULT_FREE_PLAN, PlanName, TrialStatus from tasks.trial_expiration_cron import TrialExpirationCronTask diff --git a/apps/worker/tasks/trial_expiration_cron.py b/apps/worker/tasks/trial_expiration_cron.py index 712ed44cd1..2b5ff0a65e 100644 --- a/apps/worker/tasks/trial_expiration_cron.py +++ b/apps/worker/tasks/trial_expiration_cron.py @@ -4,8 +4,7 @@ from celery_config import trial_expiration_cron_task_name, trial_expiration_task_name from database.models.core import Owner from helpers.clock import get_utc_now -from shared.django_apps.enums import TrialStatus -from shared.plan.constants import PlanName +from shared.plan.constants import PlanName, TrialStatus from tasks.crontasks import CodecovCronTask log = logging.getLogger(__name__) diff --git a/libs/shared/shared/django_apps/enums.py b/libs/shared/shared/django_apps/enums.py index 42b0b92601..586d17685c 100644 --- a/libs/shared/shared/django_apps/enums.py +++ b/libs/shared/shared/django_apps/enums.py @@ -61,13 +61,6 @@ class CommitErrorTypes(Enum): REPO_BOT_INVALID = "repo_bot_invalid" -class TrialStatus(Enum): - NOT_STARTED = "not_started" - ONGOING = "ongoing" - EXPIRED = "expired" - CANNOT_TRIAL = "cannot_trial" - - class ReportType(Enum): COVERAGE = "coverage" TEST_RESULTS = "test_results"