Skip to content

Commit 0c78045

Browse files
committed
fixed pytests speed
1 parent 72f5866 commit 0c78045

File tree

179 files changed

+11759
-11442
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+11759
-11442
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ exp.py
2121
!app_cert.pem
2222
!app_key.pem
2323

24-
# PyTest / Coverage / Lint
24+
# PyTest / Coverage / Lint / Profiling
25+
prof
26+
_profiles.md
2527
htmlcov
2628
coverage.xml
2729
.pytest_cache

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ repos:
77
hooks:
88
- id: format-code
99
name: format-code
10-
entry: ./scripts/ruff-check.sh
10+
entry: ./scripts/ruff-format.sh
1111
language: script
1212
pass_filenames: false
1313
- repo: local

app/api/endpoints_v1.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from fastapi import APIRouter, Depends
1+
from fastapi import APIRouter
22

33
from app.entities.core_organization.router import router as organization_router
44
from app.entities.core_user.router import router as users_router
@@ -13,11 +13,8 @@
1313
from app.entities.website_pagespeedinsight.router import (
1414
router as web_pagespeedinsights_router,
1515
)
16-
from app.services.auth0 import auth_controller
1716

18-
router_v1 = APIRouter(
19-
prefix="/v1", dependencies=[Depends(auth_controller.implicit_scheme)]
20-
)
17+
router_v1 = APIRouter(prefix="/v1")
2118

2219

2320
# Public routes

app/api/exceptions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from app.entities.core_organization.exceptions import configure_organization_exceptions
55
from app.entities.core_user.exceptions import configure_user_exceptions
66
from app.entities.website.exceptions import configure_website_exceptions
7-
from app.services.auth0 import configure_authorization_exceptions
7+
from app.services.clerk import configure_clerk_authorization_exceptions
88
from app.services.csrf import configure_csrf_exceptions
99
from app.services.encryption import configure_encryption_exceptions
1010
from app.services.permission import configure_permissions_exceptions
@@ -16,6 +16,6 @@ def configure_exceptions(app: FastAPI) -> None:
1616
configure_organization_exceptions(app)
1717
configure_website_exceptions(app)
1818
configure_permissions_exceptions(app)
19-
configure_authorization_exceptions(app)
19+
configure_clerk_authorization_exceptions(app)
2020
configure_csrf_exceptions(app)
2121
configure_encryption_exceptions(app)

app/db/commands.py

Lines changed: 66 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
from app.entities.platform.crud import PlatformRepository
2424
from app.entities.platform.model import Platform
2525
from app.entities.platform.schemas import PlatformCreate
26-
from app.services.auth0 import auth_settings
27-
from app.services.permission import AclPrivilege
26+
from app.services.clerk.settings import clerk_settings
27+
from app.services.permission.schemas import AclPrivilege
2828

2929
max_tries = 60 * 5 # 5 minutes
3030
wait_seconds = 3
@@ -83,8 +83,8 @@ async def create_init_data() -> int: # pragma: no cover
8383
admin1: User | None
8484
manager1: User | None
8585
employee1: User | None
86-
organization_a: User | None
87-
organization_b: User | None
86+
user_client_a: User | None
87+
user_client_b: User | None
8888
user_verified: User | None
8989
user_unverified: User | None
9090
c1: Organization | None
@@ -102,17 +102,19 @@ async def create_init_data() -> int: # pragma: no cover
102102
platform_repo: PlatformRepository
103103
organization_platform_repo: OrganizationPlatformRepository
104104

105-
# first admin
105+
# first users
106106
async with async_session() as session:
107107
user_repo = UserRepository(session)
108-
admin1 = await user_repo.read_by("auth_id", auth_settings.first_admin_auth_id)
108+
109+
# first admin
110+
admin1 = await user_repo.read_by("auth_id", clerk_settings.first_admin_auth_id)
109111
if not admin1:
110112
admin1 = await user_repo.create(
111113
UserCreate(
112-
username=auth_settings.first_admin,
113-
email=auth_settings.first_admin,
114-
auth_id=auth_settings.first_admin_auth_id,
115-
picture=auth_settings.first_admin_picture,
114+
username=clerk_settings.first_admin,
115+
email=clerk_settings.first_admin,
116+
auth_id=clerk_settings.first_admin_auth_id,
117+
picture=clerk_settings.first_admin_picture,
116118
is_active=True,
117119
is_verified=True,
118120
is_superuser=True,
@@ -125,19 +127,17 @@ async def create_init_data() -> int: # pragma: no cover
125127
)
126128
i_count += 1
127129

128-
# first manager
129-
async with async_session() as session:
130-
user_repo = UserRepository(session)
130+
# first manager
131131
manager1 = await user_repo.read_by(
132-
"auth_id", auth_settings.first_manager_auth_id
132+
"auth_id", clerk_settings.first_manager_auth_id
133133
)
134134
if not manager1:
135135
manager1 = await user_repo.create(
136136
UserCreate(
137-
username=auth_settings.first_manager,
138-
email=auth_settings.first_manager,
139-
auth_id=auth_settings.first_manager_auth_id,
140-
picture=auth_settings.first_manager_picture,
137+
username=clerk_settings.first_manager,
138+
email=clerk_settings.first_manager,
139+
auth_id=clerk_settings.first_manager_auth_id,
140+
picture=clerk_settings.first_manager_picture,
141141
is_active=True,
142142
is_verified=True,
143143
is_superuser=False,
@@ -150,40 +150,39 @@ async def create_init_data() -> int: # pragma: no cover
150150
)
151151
i_count += 1
152152

153-
# first employee
154-
async with async_session() as session:
155-
user_repo = UserRepository(session)
153+
# first employee
156154
employee1 = await user_repo.read_by(
157-
"auth_id", auth_settings.first_employee_auth_id
155+
"auth_id", clerk_settings.first_employee_auth_id
158156
)
159157
if not employee1:
160158
employee1 = await user_repo.create(
161159
UserCreate(
162-
username=auth_settings.first_employee,
163-
email=auth_settings.first_employee,
164-
auth_id=auth_settings.first_employee_auth_id,
165-
picture=auth_settings.first_employee_picture,
160+
username=clerk_settings.first_employee,
161+
email=clerk_settings.first_employee,
162+
auth_id=clerk_settings.first_employee_auth_id,
163+
picture=clerk_settings.first_employee_picture,
166164
is_active=True,
167165
is_verified=True,
168166
is_superuser=False,
169-
scopes=[AclPrivilege("role:user"), AclPrivilege("role:employee")],
167+
scopes=[
168+
AclPrivilege("role:user"),
169+
AclPrivilege("role:employee"),
170+
],
170171
)
171172
)
172173
i_count += 1
173174

174-
# first users that is a business organization
175-
async with async_session() as session:
176-
user_repo = UserRepository(session)
177-
organization_a = await user_repo.read_by(
178-
"auth_id", auth_settings.first_client_a_auth_id
175+
# first users that is a business organization
176+
user_client_a = await user_repo.read_by(
177+
"auth_id", clerk_settings.first_client_a_auth_id
179178
)
180-
if not organization_a:
181-
organization_a = await user_repo.create(
179+
if not user_client_a:
180+
user_client_a = await user_repo.create(
182181
UserCreate(
183-
username=auth_settings.first_client_a,
184-
email=auth_settings.first_client_a,
185-
auth_id=auth_settings.first_client_a_auth_id,
186-
picture=auth_settings.first_client_a_picture,
182+
username=clerk_settings.first_client_a,
183+
email=clerk_settings.first_client_a,
184+
auth_id=clerk_settings.first_client_a_auth_id,
185+
picture=clerk_settings.first_client_a_picture,
187186
is_active=True,
188187
is_verified=True,
189188
is_superuser=False,
@@ -195,16 +194,16 @@ async def create_init_data() -> int: # pragma: no cover
195194
)
196195
i_count += 1
197196

198-
organization_b = await user_repo.read_by(
199-
"auth_id", auth_settings.first_client_b_auth_id
197+
user_client_b = await user_repo.read_by(
198+
"auth_id", clerk_settings.first_client_b_auth_id
200199
)
201-
if not organization_b:
202-
organization_b = await user_repo.create(
200+
if not user_client_b:
201+
user_client_b = await user_repo.create(
203202
UserCreate(
204-
username=auth_settings.first_client_b,
205-
email=auth_settings.first_client_b,
206-
auth_id=auth_settings.first_client_b_auth_id,
207-
picture=auth_settings.first_client_b_picture,
203+
username=clerk_settings.first_client_b,
204+
email=clerk_settings.first_client_b,
205+
auth_id=clerk_settings.first_client_b_auth_id,
206+
picture=clerk_settings.first_client_b_picture,
208207
is_active=True,
209208
is_verified=True,
210209
is_superuser=False,
@@ -216,44 +215,44 @@ async def create_init_data() -> int: # pragma: no cover
216215
)
217216
i_count += 1
218217

219-
# first user verified
220-
async with async_session() as session:
221-
user_repo = UserRepository(session)
218+
# first user verified
222219
user_verified = await user_repo.read_by(
223-
"auth_id", auth_settings.first_user_verified_auth_id
220+
"auth_id", clerk_settings.first_user_verified_auth_id
224221
)
225222
if not user_verified:
226223
user_verified = await user_repo.create(
227224
UserCreate(
228-
username=auth_settings.first_user_verified,
229-
email=auth_settings.first_user_verified,
230-
auth_id=auth_settings.first_user_verified_auth_id,
225+
username=clerk_settings.first_user_verified,
226+
email=clerk_settings.first_user_verified,
227+
auth_id=clerk_settings.first_user_verified_auth_id,
231228
picture=DB_STR_USER_PICTURE_DEFAULT,
232229
is_active=True,
233230
is_verified=True,
234231
is_superuser=False,
235-
scopes=[AclPrivilege("role:user")],
232+
scopes=[
233+
AclPrivilege("role:user"),
234+
],
236235
)
237236
)
238237
i_count += 1
239238

240-
# first user unverified
241-
async with async_session() as session:
242-
user_repo = UserRepository(session)
239+
# first user unverified
243240
user_unverified = await user_repo.read_by(
244-
"auth_id", auth_settings.first_user_unverified_auth_id
241+
"auth_id", clerk_settings.first_user_unverified_auth_id
245242
)
246243
if not user_unverified:
247244
user_unverified = await user_repo.create(
248245
UserCreate(
249-
username=auth_settings.first_user_unverified,
250-
email=auth_settings.first_user_unverified,
251-
auth_id=auth_settings.first_user_unverified_auth_id,
246+
username=clerk_settings.first_user_unverified,
247+
email=clerk_settings.first_user_unverified,
248+
auth_id=clerk_settings.first_user_unverified_auth_id,
252249
picture=DB_STR_USER_PICTURE_DEFAULT,
253250
is_active=True,
254251
is_verified=False,
255252
is_superuser=False,
256-
scopes=[AclPrivilege("role:user")],
253+
scopes=[
254+
AclPrivilege("role:user"),
255+
],
257256
)
258257
)
259258
i_count += 1
@@ -275,8 +274,6 @@ async def create_init_data() -> int: # pragma: no cover
275274
)
276275
i_count += 1
277276

278-
# assign users to organization1: admin1
279-
async with async_session() as session:
280277
user_organization_repo = UserOrganizationRepository(session)
281278
c1_admin1 = await user_organization_repo.exists_by_fields(
282279
{"user_id": admin1.id, "organization_id": c1.id}
@@ -327,11 +324,12 @@ async def create_init_data() -> int: # pragma: no cover
327324
)
328325
i_count += 1
329326

330-
for slug, title in MASTER_PLATFORM_INDEX.items():
331-
async with async_session() as session:
332-
platform_repo = PlatformRepository(session)
327+
# create platforms
328+
async with async_session() as session:
329+
platform_repo = PlatformRepository(session)
330+
for slug, title in MASTER_PLATFORM_INDEX.items():
333331
p1 = await platform_repo.exists_by_fields({"slug": slug, "title": title})
334-
if not p1:
332+
if p1 is None:
335333
p1 = await platform_repo.create(PlatformCreate(slug=slug, title=title))
336334
i_count += 1
337335

app/db/constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444
"ga4": "Google Analytics 4",
4545
"gsc": "Google Search Console",
4646
"gads": "Google Ads",
47-
"spsp": "SharpSpring",
4847
"bdx": "BDX: Builder Digital Experience",
49-
"email": "Internal Email",
48+
# "spsp": "SharpSpring by Constant Contact",
49+
# "email": "Internal Email",
5050
# "bdxads": "BDX Ads",
5151
# "bdxxml": "BDX XML Pricing Data",
5252
# "hseofe": "House of Eblast",

app/db/custom_types/longtext.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def __init__(self, length: int = DB_STR_LONGTEXT_MAXLEN_STORED):
1515
self.length = length
1616

1717
def get_col_spec(self, **kw: dict) -> str:
18-
return "LONGBLOB"
18+
return "TEXT"
1919

2020
def bind_processor(
2121
self, dialect: Dialect

0 commit comments

Comments
 (0)