Tests / apps/projects/tests.py
ProjectsPageTest::test_project
First seen 2 years, 10 months ago in b9e98d9
CI
github-actions:test
12 runs
Average
64 ms
median 69 ms
max 92 ms
max 92 ms
Phases
Setup 0.74 ms
Call 63 ms
Teardown 0.72 ms
Categories
Database 32 ms
App code 0.15 ms
Other (Libraries, Templates, Unsampled, pytest) 32 ms
48 database queries per run
Needs 41 KB of memory (max 488 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call69 ms98.2%
ProjectsPageTest.test_projectapps/projects/tests.py:124 response = self.client.get("/projects/", follow=True)50 ms70.1%
Client.getdjango/test/client.py:112435 ms49.1%
RequestFactory.getdjango/test/client.py:47535 ms49.1%
RequestFactory.genericdjango/test/client.py:67135 ms49.1%
Client.requestdjango/test/client.py:108235 ms49.1%
ClientHandler.__call__django/test/client.py:17330 ms42.1%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6230 ms42.1%
__init____init__:-130 ms42.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10430 ms42.1%
WhiteNoise.add_fileswhitenoise/base.py:10830 ms42.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12025 ms35.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13125 ms35.1%
WhiteNoise.get_static_filewhitenoise/base.py:20820 ms28.1%
StaticFile.__init__whitenoise/responders.py:777 ms10.5%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms3.5%
StaticFile.get_alternatives.<locals>.<lambda>whitenoise/responders.py:1982 ms3.5%
<GC>~2 ms3.5%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms3.5%
StaticFile.get_alternativeswhitenoise/responders.py:2032 ms3.5%
StaticFile.__init__whitenoise/responders.py:735 ms7.0%
StaticFile.get_headerswhitenoise/responders.py:1782 ms3.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.5%
StaticFile.__init__whitenoise/responders.py:765 ms7.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1885 ms7.0%
Headers.__contains__<stdlib>/wsgiref/headers.py:872 ms3.5%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms3.5%
StaticFile.__init__whitenoise/responders.py:742 ms3.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.5%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms3.5%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms3.5%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms3.5%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms3.5%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms3.5%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms3.5%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms3.5%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms3.5%
WhiteNoise.get_static_filewhitenoise/base.py:2022 ms3.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms3.5%
scantreewhitenoise/base.py:2622 ms3.5%
scantreewhitenoise/base.py:2622 ms3.5%
scantreewhitenoise/base.py:2642 ms3.5%
ClientHandler.__call__django/test/client.py:1865 ms7.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1415 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1305 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1235 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3095 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:345 ms7.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms7.0%
BaseHandler._get_responsedjango/core/handlers/base.py:1985 ms7.0%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:595 ms7.0%
homeapps/orgs/views.py:74 if not projects.exists():2 ms3.5%
QuerySet.existsdjango/db/models/query.py:13372 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms3.5%
homeapps/orgs/views.py:78 return redirect(in_organization.select_related("organization").get().url())2 ms3.5%
QuerySet.getdjango/db/models/query.py:6252 ms3.5%
QuerySet.filterdjango/db/models/query.py:15422 ms3.5%
QuerySet._filter_or_excludedjango/db/models/query.py:15552 ms3.5%
QuerySet._chaindjango/db/models/query.py:19732 ms3.5%
QuerySet._clonedjango/db/models/query.py:19862 ms3.5%
Query.chaindjango/db/models/sql/query.py:4332 ms3.5%
Query.clonedjango/db/models/sql/query.py:4192 ms3.5%
Client.getdjango/test/client.py:113315 ms21.0%
Client._handle_redirectsdjango/test/client.py:138415 ms21.0%
ClientMixin._follow_redirectdjango/test/client.py:100215 ms21.0%
Client.getdjango/test/client.py:112415 ms21.0%
RequestFactory.getdjango/test/client.py:47515 ms21.0%
RequestFactory.genericdjango/test/client.py:67115 ms21.0%
Client.requestdjango/test/client.py:108215 ms21.0%
ClientHandler.__call__django/test/client.py:18615 ms21.0%
BaseHandler.get_responsedjango/core/handlers/base.py:14115 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13015 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12315 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30915 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3415 ms21.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5515 ms21.0%
BaseHandler._get_responsedjango/core/handlers/base.py:19815 ms21.0%
project_dashboardapps/projects/urls.py:1327 ms10.5%
find_projectapps/projects/urls.py:525 ms7.0%
can_viewapps/projects/urls.py:335 ms7.0%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:5 ms7.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2515 ms7.0%
SimpleLazyObject._setupdjango/utils/functional.py:4045 ms7.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:405 ms7.0%
get_userdjango/contrib/auth/middleware.py:205 ms7.0%
get_userdjango/contrib/auth/__init__.py:3112 ms3.5%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.5%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
QuerySet.getdjango/db/models/query.py:6352 ms3.5%
QuerySet.__len__django/db/models/query.py:3722 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.5%
ModelIterable.__iter__django/db/models/query.py:952 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
get_userdjango/contrib/auth/__init__.py:3182 ms3.5%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
QuerySet.getdjango/db/models/query.py:6352 ms3.5%
QuerySet.__len__django/db/models/query.py:3722 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.5%
ModelIterable.__iter__django/db/models/query.py:1272 ms3.5%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms3.5%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms3.5%
Col.get_db_convertersdjango/db/models/expressions.py:13392 ms3.5%
find_projectapps/projects/urls.py:49 project = get_object_or_404(2 ms3.5%
get_object_or_404django/shortcuts.py:902 ms3.5%
QuerySet.getdjango/db/models/query.py:6352 ms3.5%
QuerySet.__len__django/db/models/query.py:3722 ms3.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.5%
ModelIterable.__iter__django/db/models/query.py:952 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms3.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms3.5%
project_dashboardapps/projects/urls.py:1352 ms3.5%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {2 ms3.5%
org_shellapps/orgs/views.py:422 ms3.5%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.5%
QuerySet.existsdjango/db/models/query.py:13372 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms3.5%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms3.5%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms3.5%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms3.5%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms3.5%
project_dashboardapps/projects/urls.py:137 if not has_profiles and not Run.objects.filter(project=project).exists():2 ms3.5%
QuerySet.existsdjango/db/models/query.py:13372 ms3.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
project_dashboardapps/projects/urls.py:138 return render(request, "project_setup.html", context)2 ms3.5%
renderdjango/shortcuts.py:252 ms3.5%
render_to_stringdjango/template/loader.py:622 ms3.5%
Template.renderdjango/template/backends/django.py:1072 ms3.5%
Template.renderdjango/template/base.py:1742 ms3.5%
instrumented_test_renderdjango/test/utils.py:1142 ms3.5%
NodeList.renderdjango/template/base.py:10912 ms3.5%
Node.render_annotateddjango/template/base.py:10522 ms3.5%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.5%
instrumented_test_renderdjango/test/utils.py:1142 ms3.5%
NodeList.renderdjango/template/base.py:10912 ms3.5%
Node.render_annotateddjango/template/base.py:10522 ms3.5%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.5%
instrumented_test_renderdjango/test/utils.py:1142 ms3.5%
NodeList.renderdjango/template/base.py:10912 ms3.5%
Node.render_annotateddjango/template/base.py:10522 ms3.5%
BlockNode.renderdjango/template/loader_tags.py:662 ms3.5%
NodeList.renderdjango/template/base.py:10912 ms3.5%
Node.render_annotateddjango/template/base.py:10522 ms3.5%
IncludeNode.renderdjango/template/loader_tags.py:2112 ms3.5%
Template.renderdjango/template/base.py:1762 ms3.5%
instrumented_test_renderdjango/test/utils.py:1132 ms3.5%
ProjectsPageTest.setUpapps/projects/tests.py:101 self.client.force_login(self.user)12 ms17.5%
ClientMixin.force_logindjango/test/client.py:85512 ms17.5%
ClientMixin._logindjango/test/client.py:88110 ms14.0%
logindjango/contrib/auth/__init__.py:18710 ms14.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:43710 ms14.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:17510 ms14.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8710 ms14.0%
QuerySet.getdjango/db/models/query.py:6357 ms10.5%
QuerySet.__len__django/db/models/query.py:3727 ms10.5%
QuerySet._fetch_alldjango/db/models/query.py:20007 ms10.5%
ModelIterable.__iter__django/db/models/query.py:957 ms10.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16245 ms7.0%
CursorWrapper.executedjango/db/backends/utils.py:795 ms7.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms7.0%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms7.0%
Cursor.executepsycopg/cursor.py:1135 ms7.0%
Connection.waitpsycopg/connection.py:4955 ms7.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2065 ms7.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2865 ms7.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:785 ms7.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms3.5%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms3.5%
QuerySet.getdjango/db/models/query.py:6252 ms3.5%
QuerySet.filterdjango/db/models/query.py:15422 ms3.5%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms3.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms3.5%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.5%
Query._add_qdjango/db/models/sql/query.py:16992 ms3.5%
ClientMixin._logindjango/test/client.py:8832 ms3.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.5%
Model.savedjango/db/models/base.py:8742 ms3.5%
Model.save_basedjango/db/models/base.py:9662 ms3.5%
Model._save_tabledjango/db/models/base.py:10862 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
ProjectsPageTest.test_projectapps/projects/tests.py:123 project = make_project("Test Project", members=[self.user])5 ms7.0%
make_projectapps/projects/testing.py:64 project = Project.objects.create(2 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
QuerySet.createdjango/db/models/query.py:6692 ms3.5%
Model.savedjango/db/models/base.py:8742 ms3.5%
Model.save_basedjango/db/models/base.py:9662 ms3.5%
Model._save_tabledjango/db/models/base.py:11672 ms3.5%
Model._do_insertdjango/db/models/base.py:12182 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
QuerySet._insertdjango/db/models/query.py:19182 ms3.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.5%
Cursor.executepsycopg/cursor.py:1132 ms3.5%
Connection.waitpsycopg/connection.py:4952 ms3.5%
make_projectapps/projects/testing.py:712 ms3.5%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(2 ms3.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.5%
QuerySet.get_or_createdjango/db/models/query.py:9922 ms3.5%
Atomic.__enter__django/db/transaction.py:2112 ms3.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.5%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms3.5%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms3.5%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms3.5%
TestCase._rollback_atomicsdjango/test/testcases.py:14042 ms3.5%
Estimated from 28 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:124
response = self.client.get("/projects/", follow=True)
ProjectsPageTest.test_project
· Libraries
|
30 ms |
|
apps/projects/tests.py:101
self.client.force_login(self.user)
ProjectsPageTest.setUp
· Database
|
12 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
5 ms |
|
apps/projects/testing.py:64
project = Project.objects.create(
make_project
· Database
|
2 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
2 ms |
|
apps/orgs/views.py:74
if not projects.exists():
home
· Database
|
2 ms |
|
apps/orgs/views.py:78
return redirect(in_organization.select_related("organization").get().url())
home
· Database
|
2 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
2 ms |
|
apps/orgs/models.py:65
return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()
Organization.is_owner
· Database
|
2 ms |
|
apps/projects/urls.py:137
if not has_profiles and not Run.objects.filter(project=project).exists():
project_dashboard
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
48 queries · 17 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > %s AND "django_session"."session_key" = %s) LIMIT ?
Biggest pieces of work
|
call test body
apps/projects/tests.py:123
|
55 ms |
|
call setUp
apps/projects/tests.py:101
|
12 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 | 71 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 36 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 92 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 50 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 92 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 46 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 69 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 69 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 69 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 73 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 36 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 68 ms | Profile |