Skip to content

Commit 8c84d4b

Browse files
committed
build(devex): strip out pyright and bump ruff
1 parent 3e8d28f commit 8c84d4b

File tree

5 files changed

+16
-86
lines changed

5 files changed

+16
-86
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
repos:
44

55
- repo: https://github.com/pre-commit/pre-commit-hooks
6-
rev: v4.6.0
6+
rev: v5.0.0
77
hooks:
88
- id: trailing-whitespace
99
- id: end-of-file-fixer
@@ -12,16 +12,11 @@ repos:
1212

1313
- repo: https://github.com/astral-sh/ruff-pre-commit
1414
# Ruff version.
15-
rev: v0.6.6
15+
rev: v0.7.1
1616
hooks:
1717
# Run the linter.
1818
- id: ruff
1919
exclude: ruff.xml
2020
# Run the formatter.
2121
- id: ruff-format
2222
exclude: ruff.xml
23-
24-
- repo: https://github.com/RobertCraigie/pyright-python
25-
rev: v1.1.387
26-
hooks:
27-
- id: pyright

pyproject.toml

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -61,49 +61,3 @@ version_files = [
6161
"pyproject.toml:^version",
6262
"Dockerfile:VERSION",
6363
]
64-
65-
[tool.pyright]
66-
include = ["src"]
67-
typeCheckingMode = "basic"
68-
exclude = [
69-
"**/tests",
70-
"**/migrations",
71-
"**/__pycache__",
72-
"**/node_modules",
73-
".git",
74-
]
75-
76-
# Django-specific settings
77-
reportMissingImports = true
78-
reportGeneralTypeIssues = "warning"
79-
reportMissingTypeStubs = false
80-
reportUnknownMemberType = "warning"
81-
reportUnknownParameterType = "warning"
82-
reportUnknownVariableType = "warning"
83-
reportUntypedFunctionDecorator = "warning"
84-
reportOptionalSubscript = true
85-
reportOptionalMemberAccess = true
86-
reportOptionalCall = true
87-
88-
# Important for Django
89-
reportUnknownArgumentType = "warning"
90-
reportUnusedImport = "warning"
91-
reportDuplicateImport = "error"
92-
93-
pythonVersion = "3.12"
94-
pythonPlatform = "Linux"
95-
96-
# Virtual environment settings
97-
venvPath = "."
98-
venv = ".venv"
99-
100-
# Django-specific type checking settings
101-
stubPath = "typings"
102-
103-
104-
# Additional Django settings
105-
extraPaths = ["src"]
106-
107-
[tool.django-stubs]
108-
django_settings_module = "config.settings" # Adjust this to your settings module path
109-
strict_settings = true

src/organizations/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class AcceptInviteChangePasswordForm(forms.Form):
8282
password = forms.CharField(widget=forms.PasswordInput)
8383
confirm_password = forms.CharField(widget=forms.PasswordInput)
8484

85-
def clean(self) -> dict:
85+
def clean(self) -> dict[str, str]:
8686
"""Validate that the passwords match."""
8787
cleaned_data = super().clean() or {}
8888
password = cleaned_data.get("password")

src/organizations/tests/test_forms.py

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,9 @@
1111
class OrganizationInviteFormTest(TestCase):
1212
def setUp(self):
1313
self.organization = Organization.objects.create(name="Test Org")
14-
self.owner = User.objects.create_user(
15-
username="owner", email="[email protected]", password="password"
16-
)
17-
self.admin = User.objects.create_user(
18-
username="admin", email="[email protected]", password="password"
19-
)
20-
self.member = User.objects.create_user(
21-
username="member", email="[email protected]", password="password"
22-
)
14+
self.owner = User.objects.create_user(username="owner", email="[email protected]", password="password")
15+
self.admin = User.objects.create_user(username="admin", email="[email protected]", password="password")
16+
self.member = User.objects.create_user(username="member", email="[email protected]", password="password")
2317

2418
OrganizationMember.objects.create(
2519
user=self.owner,
@@ -38,19 +32,16 @@ def setUp(self):
3832
)
3933

4034
def test_form_initialization(self):
41-
form = OrganizationInviteForm(
42-
initial={"organization": self.organization, "invited_by": self.owner}
43-
)
35+
form = OrganizationInviteForm(initial={"organization": self.organization, "invited_by": self.owner})
4436
self.assertIn("role", form.fields)
4537
self.assertEqual(len(form.fields["role"].choices), 3) # OWNER, ADMIN, MEMBER
4638

47-
form = OrganizationInviteForm(
48-
initial={"organization": self.organization, "invited_by": self.admin}
49-
)
39+
form = OrganizationInviteForm(initial={"organization": self.organization, "invited_by": self.admin})
40+
print(form.fields["role"].choices)
5041
self.assertEqual(len(form.fields["role"].choices), 2) # ADMIN, MEMBER
5142

5243
def test_clean_role(self):
53-
form_data = {
44+
form_data: dict = {
5445
"email": "[email protected]",
5546
"role": OrganizationMember.RoleChoices.OWNER,
5647
}
@@ -92,27 +83,21 @@ def test_clean(self):
9283
form.instance.organization = self.organization
9384
form.instance.invited_by = self.owner
9485
self.assertFalse(form.is_valid())
95-
self.assertIn(
96-
"User is already a member of this organization.", form.errors["__all__"]
97-
)
86+
self.assertIn("User is already a member of this organization.", form.errors["__all__"])
9887

9988
form_data = {
10089
"email": "[email protected]",
10190
"role": OrganizationMember.RoleChoices.MEMBER,
10291
}
103-
Invitation.objects.create(
104-
organization=self.organization, email="[email protected]"
105-
)
92+
Invitation.objects.create(organization=self.organization, email="[email protected]")
10693
form = OrganizationInviteForm(
10794
data=form_data,
10895
initial={"organization": self.organization, "invited_by": self.owner},
10996
)
11097
form.instance.organization = self.organization
11198
form.instance.invited_by = self.owner
11299
self.assertFalse(form.is_valid())
113-
self.assertIn(
114-
"User is already invited to this organization.", form.errors["__all__"]
115-
)
100+
self.assertIn("User is already invited to this organization.", form.errors["__all__"])
116101

117102

118103
class AcceptInviteChangePasswordFormTest(TestCase):

src/organizations/tests/views/test_organizations.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,15 @@ class OrganizationViewsTests(TestCase):
1313
def setUp(self):
1414
self.user = User.objects.create_user(username="testuser", password="password")
1515
self.client.login(username="testuser", password="password")
16-
self.organization = Organization.objects.create(
17-
name="Test Org", slug="test-org"
18-
)
16+
self.organization = Organization.objects.create(name="Test Org", slug="test-org")
1917
self.org_member = OrganizationMember.objects.create(
2018
organization=self.organization,
2119
user=self.user,
2220
role=OrganizationMember.RoleChoices.OWNER,
2321
)
2422

2523
def test_index_view_renders_correct_template(self):
26-
response = self.client.get(reverse("organizations:index"))
24+
response = self.client.get(reverse("organizations:list"))
2725
self.assertEqual(response.status_code, 200)
2826
self.assertTemplateUsed(response, "organizations/index.html")
2927

@@ -41,8 +39,6 @@ def test_create_organization_creates_new_org(self):
4139
self.assertTrue(Organization.objects.filter(name="New Org").exists())
4240

4341
def test_detail_view_renders_correct_template(self):
44-
response = self.client.get(
45-
reverse("organizations:detail", args=[self.organization.slug])
46-
)
42+
response = self.client.get(reverse("organizations:detail", args=[self.organization.slug]))
4743
self.assertEqual(response.status_code, 200)
4844
self.assertTemplateUsed(response, "organizations/detail.html")

0 commit comments

Comments
 (0)