flakytest.dev anze3db flakytest
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
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
Show pytest frames
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 failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
16 hours ago CI github-actions:test passed 71 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 36 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 92 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 50 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 92 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 46 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 69 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 69 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 69 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 73 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 36 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 68 ms 78a4357 main Profile