Tests / ft/tests.py
TestProjectsHome::test_user_logged_in_with_multiple_projects
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
53 ms
median 57 ms
max 78 ms
max 78 ms
Phases
Setup 0.71 ms
Call 52 ms
Teardown 0.15 ms
Categories
Database 29 ms
Password hashing 0.17 ms
Other (Libraries, pytest, Unsampled) 23 ms
37 database queries per run
Needs 49 KB of memory (max 432 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call52 ms98.3%
TestProjectsHome.test_user_logged_in_with_multiple_projectsft/tests.py:52 response = self.client.get(reverse("projects"))25 ms46.8%
Client.getdjango/test/client.py:112425 ms46.8%
RequestFactory.getdjango/test/client.py:47525 ms46.8%
RequestFactory.genericdjango/test/client.py:67125 ms46.8%
Client.requestdjango/test/client.py:108225 ms46.8%
ClientHandler.__call__django/test/client.py:17317 ms32.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6217 ms32.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10417 ms32.8%
WhiteNoise.add_fileswhitenoise/base.py:10817 ms32.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12015 ms28.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13115 ms28.1%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms23.4%
StaticFile.__init__whitenoise/responders.py:725 ms9.4%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms4.7%
__init____init__:-12 ms4.7%
FileEntry.__init__whitenoise/responders.py:2632 ms4.7%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms4.7%
<GC>~2 ms4.7%
StaticFile.get_file_statswhitenoise/responders.py:1572 ms4.7%
StaticFile.__init__whitenoise/responders.py:765 ms9.4%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1885 ms9.4%
Headers.__contains__<stdlib>/wsgiref/headers.py:875 ms9.4%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms4.7%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms4.7%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms4.7%
StaticFile.__init__whitenoise/responders.py:772 ms4.7%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms4.7%
__init____init__:-12 ms4.7%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms4.7%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms4.7%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms4.7%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms4.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2642 ms4.7%
ClientHandler.__call__django/test/client.py:1867 ms14.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms14.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms14.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms14.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms14.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms14.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms14.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms14.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms14.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms14.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms14.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:345 ms9.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms9.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1985 ms9.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms4.7%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms4.7%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms4.7%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms4.7%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms4.7%
get_userdjango/contrib/auth/middleware.py:202 ms4.7%
get_userdjango/contrib/auth/__init__.py:3182 ms4.7%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.getdjango/db/models/query.py:6252 ms4.7%
QuerySet.filterdjango/db/models/query.py:15422 ms4.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms4.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms4.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms4.7%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:592 ms4.7%
homeapps/orgs/views.py:722 ms4.7%
current_organizationapps/orgs/views.py:54 return ensure_organization(request.user)2 ms4.7%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()2 ms4.7%
QuerySet.firstdjango/db/models/query.py:11452 ms4.7%
QuerySet.__iter__django/db/models/query.py:3902 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms4.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms4.7%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms4.7%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms4.7%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms4.7%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms4.7%
Col.as_sqldjango/db/models/expressions.py:13252 ms4.7%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms4.7%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5612 ms4.7%
MiddlewareMixin.__call__django/utils/deprecation.py:3082 ms4.7%
CommonMiddleware.process_requestdjango/middleware/common.py:482 ms4.7%
HttpRequest.get_hostdjango/http/request.py:1942 ms4.7%
split_domain_portdjango/http/request.py:8192 ms4.7%
TestProjectsHome.test_user_logged_in_with_multiple_projectsft/tests.py:51 self.client.force_login(user)12 ms23.4%
ClientMixin.force_logindjango/test/client.py:85512 ms23.4%
ClientMixin._logindjango/test/client.py:8817 ms14.0%
logindjango/contrib/auth/__init__.py:1875 ms9.4%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4345 ms9.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms4.7%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms4.7%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.filterdjango/db/models/query.py:15422 ms4.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms4.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms4.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms4.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms4.7%
Query.build_filterdjango/db/models/sql/query.py:16132 ms4.7%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms4.7%
BaseExpression.get_lookupdjango/db/models/expressions.py:4042 ms4.7%
RegisterLookupMixin.get_lookupdjango/db/models/query_utils.py:3312 ms4.7%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms4.7%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11672 ms4.7%
Model._do_insertdjango/db/models/base.py:12182 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet._insertdjango/db/models/query.py:19182 ms4.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
logindjango/contrib/auth/__init__.py:1972 ms4.7%
Signal.senddjango/dispatch/dispatcher.py:2092 ms4.7%
update_last_logindjango/contrib/auth/models.py:242 ms4.7%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11102 ms4.7%
Model._do_updatedjango/db/models/base.py:12112 ms4.7%
QuerySet._updatedjango/db/models/query.py:13272 ms4.7%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms4.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
ClientMixin._logindjango/test/client.py:8765 ms9.4%
ClientMixin.sessiondjango/test/client.py:8125 ms9.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1215 ms9.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:745 ms9.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1265 ms9.4%
Atomic.__enter__django/db/transaction.py:2112 ms4.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms4.7%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms4.7%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
Atomic.__exit__django/db/transaction.py:2472 ms4.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms4.7%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms4.7%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms4.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms4.7%
TestProjectsHome.test_user_logged_in_with_multiple_projectsft/tests.py:495 ms9.4%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(5 ms9.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:875 ms9.4%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms4.7%
QuerySet.createdjango/db/models/query.py:6692 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11672 ms4.7%
Model._do_insertdjango/db/models/base.py:12182 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet._insertdjango/db/models/query.py:19182 ms4.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
TestProjectsHome.test_user_logged_in_with_multiple_projectsft/tests.py:505 ms9.4%
make_projectapps/projects/testing.py:67 slug=unique_slug(name, organization.project_set.all(), fallback="project", reserved=RESERVED_PROJECT_SLUGS),2 ms4.7%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms4.7%
QuerySet.existsdjango/db/models/query.py:13372 ms4.7%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms4.7%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
make_projectapps/projects/testing.py:64 project = Project.objects.create(2 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.createdjango/db/models/query.py:6692 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11672 ms4.7%
Model._do_insertdjango/db/models/base.py:12182 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet._insertdjango/db/models/query.py:19182 ms4.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
TestProjectsHome.test_user_logged_in_with_multiple_projectsft/tests.py:48 project1 = make_project("Test Project")2 ms4.7%
make_projectapps/projects/testing.py:61 organization = Organization.objects.create(2 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.createdjango/db/models/query.py:6692 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11672 ms4.7%
Model._do_insertdjango/db/models/base.py:12182 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet._insertdjango/db/models/query.py:19182 ms4.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms4.7%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms4.7%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms4.7%
Atomic.__exit__django/db/transaction.py:2862 ms4.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms4.7%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms4.7%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
Estimated from 21 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
ft/tests.py:52
response = self.client.get(reverse("projects"))
TestProjectsHome.test_user_logged_in_with_multiple_projects
· Libraries
|
22 ms |
|
ft/tests.py:51
self.client.force_login(user)
TestProjectsHome.test_user_logged_in_with_multiple_projects
· Database
|
12 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
5 ms |
|
apps/projects/testing.py:61
organization = Organization.objects.create(
make_project
· Database
|
2 ms |
|
apps/orgs/models.py:46
while slug in reserved or taken.filter(slug=slug).exists():
unique_slug
· Database
|
2 ms |
|
apps/projects/testing.py:64
project = Project.objects.create(
make_project
· Database
|
2 ms |
|
apps/orgs/models.py:126
membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()
ensure_organization
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.07 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
37 queries · 10 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT %s AS "a" FROM "projects_project" WHERE ("projects_project"."organization_id" = %s AND "projects_project"."slug" = %s) LIMIT ?
Biggest pieces of work
|
call test body
ft/tests.py:48
|
50 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 53 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 29 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 61 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 61 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 78 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 31 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 56 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 62 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 28 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 56 ms | Profile |