flakytest.dev anze3db flakytest
Tests / apps/projects/tests.py

ProjectEditPage::test_slug_unique_in_organization

First seen 8 hours ago in 78a4357
CI github-actions:test 5 runs
Average
72 ms
median 76 ms
max 86 ms
Phases
Setup 0.95 ms Call 70 ms Teardown 0.98 ms
Categories
Database 35 ms Test code 0.88 ms Other (Libraries, Templates, pytest, Unsampled) 35 ms

50 database queries per run

Needs 0 KB of memory (max 0 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 46 minutes ago · open run
Show pytest frames
call74 ms97.9%
ProjectEditPage.test_slug_unique_in_organizationapps/projects/tests.py:174 response = self.client.post(self.project.url("project_edit"), {"name": "Test Project", "slug": "taken"})38 ms50.2%
Client.postdjango/test/client.py:115338 ms50.2%
RequestFactory.postdjango/test/client.py:49938 ms50.2%
RequestFactory.genericdjango/test/client.py:67138 ms50.2%
Client.requestdjango/test/client.py:108238 ms50.2%
ClientHandler.__call__django/test/client.py:17319 ms25.1%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6219 ms25.1%
__init____init__:-119 ms25.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10413 ms17.6%
WhiteNoise.add_fileswhitenoise/base.py:10813 ms17.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12013 ms17.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13113 ms17.6%
WhiteNoise.get_static_filewhitenoise/base.py:2088 ms10.0%
StaticFile.__init__whitenoise/responders.py:722 ms2.5%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms2.5%
StaticFile.__init__whitenoise/responders.py:732 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.5%
formatdate<stdlib>/email/utils.py:2662 ms2.5%
StaticFile.__init__whitenoise/responders.py:742 ms2.5%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.5%
StaticFile.__init__whitenoise/responders.py:772 ms2.5%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms5.0%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms5.0%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms5.0%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms5.0%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2022 ms2.5%
WhiteNoise.add_mime_headerswhitenoise/base.py:2212 ms2.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:934 ms5.0%
LazySettings.__getattr__django/conf/__init__.py:772 ms2.5%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms2.5%
scantreewhitenoise/base.py:2622 ms2.5%
scantreewhitenoise/base.py:2622 ms2.5%
scantreewhitenoise/base.py:2642 ms2.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1112 ms2.5%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms2.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1202 ms2.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1312 ms2.5%
WhiteNoise.get_static_filewhitenoise/base.py:2082 ms2.5%
StaticFile.__init__whitenoise/responders.py:732 ms2.5%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.5%
ClientHandler.__call__django/test/client.py:18619 ms25.1%
BaseHandler.get_responsedjango/core/handlers/base.py:14119 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13019 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12319 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30917 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3417 ms22.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5517 ms22.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19817 ms22.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5913 ms17.6%
project_editapps/projects/urls.py:649 return render(request, "project.html", {**shell(request, project, "settings"), "form": form})8 ms10.0%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms5.0%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.5%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.5%
QuerySet.__iter__django/db/models/query.py:3902 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
renderdjango/shortcuts.py:254 ms5.0%
render_to_stringdjango/template/loader.py:624 ms5.0%
Template.renderdjango/template/backends/django.py:1074 ms5.0%
Template.renderdjango/template/base.py:1744 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
BlockNode.renderdjango/template/loader_tags.py:664 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
IncludeNode.renderdjango/template/loader_tags.py:2112 ms2.5%
Template.renderdjango/template/base.py:1762 ms2.5%
instrumented_test_renderdjango/test/utils.py:1142 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
URLNode.renderdjango/template/defaulttags.py:5112 ms2.5%
reversedjango/urls/base.py:982 ms2.5%
BlockNode.renderdjango/template/loader_tags.py:662 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
VariableNode.renderdjango/template/base.py:11502 ms2.5%
FilterExpression.resolvedjango/template/base.py:7882 ms2.5%
Variable.resolvedjango/template/base.py:9282 ms2.5%
Variable._resolve_lookupdjango/template/base.py:10002 ms2.5%
RenderableFormMixin.as_divdjango/forms/utils.py:992 ms2.5%
RenderableMixin.renderdjango/forms/utils.py:552 ms2.5%
BaseRenderer.renderdjango/forms/renderers.py:292 ms2.5%
Template.renderdjango/template/backends/django.py:1072 ms2.5%
Template.renderdjango/template/base.py:1742 ms2.5%
instrumented_test_renderdjango/test/utils.py:1142 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
ForNode.renderdjango/template/defaulttags.py:2492 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
VariableNode.renderdjango/template/base.py:11502 ms2.5%
FilterExpression.resolvedjango/template/base.py:7882 ms2.5%
Variable.resolvedjango/template/base.py:9282 ms2.5%
Variable._resolve_lookupdjango/template/base.py:10002 ms2.5%
RenderableFieldMixin.as_field_groupdjango/forms/utils.py:632 ms2.5%
RenderableMixin.renderdjango/forms/utils.py:552 ms2.5%
BaseRenderer.renderdjango/forms/renderers.py:292 ms2.5%
Template.renderdjango/template/backends/django.py:1072 ms2.5%
Template.renderdjango/template/base.py:1742 ms2.5%
instrumented_test_renderdjango/test/utils.py:1142 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
VariableNode.renderdjango/template/base.py:11562 ms2.5%
render_value_in_contextdjango/template/base.py:11332 ms2.5%
project_editapps/projects/urls.py:6434 ms5.0%
managed_projectapps/projects/urls.py:61 project = get_object_or_404(2 ms2.5%
get_object_or_404django/shortcuts.py:902 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
managed_projectapps/projects/urls.py:642 ms2.5%
can_manageapps/projects/urls.py:442 ms2.5%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.5%
QuerySet.existsdjango/db/models/query.py:13372 ms2.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
project_editapps/projects/urls.py:648 project.refresh_from_db() # an invalid form changed it in memory2 ms2.5%
Model.refresh_from_dbdjango/db/models/base.py:7582 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:564 ms5.0%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:794 ms5.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2514 ms5.0%
SimpleLazyObject._setupdjango/utils/functional.py:4044 ms5.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:404 ms5.0%
get_userdjango/contrib/auth/middleware.py:204 ms5.0%
get_userdjango/contrib/auth/__init__.py:3112 ms2.5%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.5%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
get_userdjango/contrib/auth/__init__.py:3182 ms2.5%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms2.5%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.5%
Model.savedjango/db/models/base.py:8742 ms2.5%
Model.save_basedjango/db/models/base.py:9662 ms2.5%
Model._save_tabledjango/db/models/base.py:11102 ms2.5%
Model._do_updatedjango/db/models/base.py:12112 ms2.5%
QuerySet._updatedjango/db/models/query.py:13272 ms2.5%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.5%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
ProjectEditPage.test_slug_unique_in_organizationapps/projects/tests.py:176 response = self.client.post(self.project.url("project_edit"), {"name": "Test Project", "slug": "settings"})21 ms27.6%
Client.postdjango/test/client.py:115321 ms27.6%
RequestFactory.postdjango/test/client.py:49921 ms27.6%
RequestFactory.genericdjango/test/client.py:67121 ms27.6%
Client.requestdjango/test/client.py:108221 ms27.6%
ClientHandler.__call__django/test/client.py:18621 ms27.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14121 ms27.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms27.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13021 ms27.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms27.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30921 ms27.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms27.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12321 ms27.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5521 ms27.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms25.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms25.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19819 ms25.1%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5919 ms25.1%
project_editapps/projects/urls.py:649 return render(request, "project.html", {**shell(request, project, "settings"), "form": form})11 ms15.1%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {6 ms7.5%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms2.5%
QuerySet.__iter__django/db/models/query.py:3902 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.5%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.5%
QuerySet.__iter__django/db/models/query.py:3902 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.5%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.5%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.5%
org_shellapps/orgs/views.py:422 ms2.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 ms2.5%
QuerySet.existsdjango/db/models/query.py:13372 ms2.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
renderdjango/shortcuts.py:254 ms5.0%
render_to_stringdjango/template/loader.py:624 ms5.0%
Template.renderdjango/template/backends/django.py:1074 ms5.0%
Template.renderdjango/template/base.py:1744 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.0%
instrumented_test_renderdjango/test/utils.py:1144 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
BlockNode.renderdjango/template/loader_tags.py:664 ms5.0%
NodeList.renderdjango/template/base.py:10914 ms5.0%
Node.render_annotateddjango/template/base.py:10524 ms5.0%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
ForNode.renderdjango/template/defaulttags.py:2492 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
SimpleNode.renderdjango/template/library.py:3252 ms2.5%
purlft/templatetags/helpers.py:292 ms2.5%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms2.5%
reversedjango/urls/base.py:982 ms2.5%
URLResolver._reverse_with_prefixdjango/urls/resolvers.py:8082 ms2.5%
quote<stdlib>/urllib/parse.py:10722 ms2.5%
quote_from_bytes<stdlib>/urllib/parse.py:11122 ms2.5%
BlockNode.renderdjango/template/loader_tags.py:662 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
VariableNode.renderdjango/template/base.py:11502 ms2.5%
FilterExpression.resolvedjango/template/base.py:7882 ms2.5%
Variable.resolvedjango/template/base.py:9282 ms2.5%
Variable._resolve_lookupdjango/template/base.py:10002 ms2.5%
RenderableFormMixin.as_divdjango/forms/utils.py:992 ms2.5%
RenderableMixin.renderdjango/forms/utils.py:552 ms2.5%
BaseRenderer.renderdjango/forms/renderers.py:292 ms2.5%
Template.renderdjango/template/backends/django.py:1072 ms2.5%
Template.renderdjango/template/base.py:1742 ms2.5%
instrumented_test_renderdjango/test/utils.py:1142 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
ForNode.renderdjango/template/defaulttags.py:2492 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
VariableNode.renderdjango/template/base.py:11502 ms2.5%
FilterExpression.resolvedjango/template/base.py:7882 ms2.5%
Variable.resolvedjango/template/base.py:9282 ms2.5%
Variable._resolve_lookupdjango/template/base.py:10002 ms2.5%
RenderableFieldMixin.as_field_groupdjango/forms/utils.py:632 ms2.5%
RenderableMixin.renderdjango/forms/utils.py:552 ms2.5%
BaseRenderer.renderdjango/forms/renderers.py:292 ms2.5%
Template.renderdjango/template/backends/django.py:1072 ms2.5%
Template.renderdjango/template/base.py:1742 ms2.5%
instrumented_test_renderdjango/test/utils.py:1142 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
Node.render_annotateddjango/template/base.py:10522 ms2.5%
IfNode.renderdjango/template/defaulttags.py:3332 ms2.5%
NodeList.renderdjango/template/base.py:10912 ms2.5%
shellapps/projects/urls.py:732 ms2.5%
can_manageapps/projects/urls.py:442 ms2.5%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.5%
QuerySet.existsdjango/db/models/query.py:13372 ms2.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
project_editapps/projects/urls.py:6434 ms5.0%
managed_projectapps/projects/urls.py:61 project = get_object_or_404(2 ms2.5%
get_object_or_404django/shortcuts.py:902 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
managed_projectapps/projects/urls.py:642 ms2.5%
can_manageapps/projects/urls.py:442 ms2.5%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.filterdjango/db/models/query.py:15422 ms2.5%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.5%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.5%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.5%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.5%
Query.build_filterdjango/db/models/sql/query.py:15602 ms2.5%
Query.resolve_lookup_valuedjango/db/models/sql/query.py:13232 ms2.5%
<GC>~2 ms2.5%
project_editapps/projects/urls.py:645 if request.method == "POST" and form.is_valid():4 ms5.0%
BaseForm.is_validdjango/forms/forms.py:2064 ms5.0%
BaseForm.errorsdjango/forms/forms.py:2014 ms5.0%
BaseForm.full_cleandjango/forms/forms.py:3394 ms5.0%
BaseModelForm._post_cleandjango/forms/models.py:5114 ms5.0%
BaseModelForm.validate_uniquedjango/forms/models.py:5224 ms5.0%
Model.validate_uniquedjango/db/models/base.py:14304 ms5.0%
Model._get_unique_checksdjango/db/models/base.py:14912 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.5%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.5%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.5%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.5%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms2.5%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms2.5%
ForeignKey.get_coldjango/db/models/fields/related.py:12542 ms2.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms2.5%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.5%
Atomic.__enter__django/db/transaction.py:2112 ms2.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.5%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.5%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
ProjectEditPage.setUpapps/projects/tests.py:142 self.client.force_login(self.user)11 ms15.1%
ClientMixin.force_logindjango/test/client.py:85511 ms15.1%
ClientMixin._logindjango/test/client.py:8816 ms7.5%
logindjango/contrib/auth/__init__.py:1874 ms5.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms2.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms2.5%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1022 ms2.5%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1262 ms2.5%
dumpsdjango/core/signing.py:1512 ms2.5%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.5%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.5%
Model.deletedjango/db/models/base.py:12982 ms2.5%
Collector.deletedjango/db/models/deletion.py:4522 ms2.5%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms2.5%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
logindjango/contrib/auth/__init__.py:1752 ms2.5%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.5%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.5%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.5%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.getdjango/db/models/query.py:6352 ms2.5%
QuerySet.__len__django/db/models/query.py:3722 ms2.5%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.5%
ModelIterable.__iter__django/db/models/query.py:952 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
ClientMixin._logindjango/test/client.py:8764 ms5.0%
ClientMixin.sessiondjango/test/client.py:8124 ms5.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms5.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.5%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.5%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms2.5%
QuerySet.existsdjango/db/models/query.py:13372 ms2.5%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.5%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.5%
Model.savedjango/db/models/base.py:8742 ms2.5%
Model.save_basedjango/db/models/base.py:9662 ms2.5%
Model._save_tabledjango/db/models/base.py:11672 ms2.5%
Model._do_insertdjango/db/models/base.py:12182 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet._insertdjango/db/models/query.py:19182 ms2.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
ClientMixin._logindjango/test/client.py:8832 ms2.5%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.5%
Atomic.__exit__django/db/transaction.py:2472 ms2.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.5%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.5%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
ProjectEditPage.test_slug_unique_in_organizationapps/projects/tests.py:173 make_project("Taken", organization=self.project.organization)2 ms2.5%
make_projectapps/projects/testing.py:64 project = Project.objects.create(2 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet.createdjango/db/models/query.py:6692 ms2.5%
Model.savedjango/db/models/base.py:8742 ms2.5%
Model.save_basedjango/db/models/base.py:9662 ms2.5%
Model._save_tabledjango/db/models/base.py:11672 ms2.5%
Model._do_insertdjango/db/models/base.py:12182 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.5%
QuerySet._insertdjango/db/models/query.py:19182 ms2.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.5%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.5%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.5%
Cursor.executepsycopg/cursor.py:1132 ms2.5%
Connection.waitpsycopg/connection.py:4952 ms2.5%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.5%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms2.5%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms2.5%
Atomic.__exit__django/db/transaction.py:2832 ms2.5%
teardown0.75 ms1.0%
TestCase.tearDownClassdjango/test/testcases.py:1453 cls._rollback_atomics(cls.cls_atomics)0.75 ms1.0%
TestCase._rollback_atomicsdjango/test/testcases.py:14050.75 ms1.0%
Atomic.__exit__django/db/transaction.py:2950.75 ms1.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:260.75 ms1.0%
BaseDatabaseWrapper.rollbackdjango/db/backends/base/base.py:3370.75 ms1.0%
BaseDatabaseWrapper._rollbackdjango/db/backends/base/base.py:3080.75 ms1.0%
Connection.rollbackpsycopg/connection.py:3140.75 ms1.0%
Connection.waitpsycopg/connection.py:4950.75 ms1.0%
BaseConnection._rollback_genpsycopg/_connection_base.py:6170.75 ms1.0%
Estimated from 40 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/projects/tests.py:174
response = self.client.post(self.project.url("project_edit"), {"name": "Test Project", "slug": "taken"})
ProjectEditPage.test_slug_unique_in_organization · Libraries
25 ms
apps/projects/tests.py:142
self.client.force_login(self.user)
ProjectEditPage.setUp · Database
11 ms
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project · Database
6 ms
apps/projects/urls.py:649
return render(request, "project.html", {**shell(request, project, "settings"), "form": form})
project_edit · Templates
6 ms
apps/projects/urls.py:61
project = get_object_or_404(
managed_project · Database
4 ms
apps/orgs/views.py:40
"org_projects": list(organization.project_set.order_by("name")) if member else [],
org_shell · Database
4 ms
apps/projects/urls.py:645
if request.method == "POST" and form.is_valid():
project_edit · Database
4 ms
apps/projects/testing.py:64
project = Project.objects.create(
make_project · Database
2 ms
apps/projects/urls.py:648
project.refresh_from_db() # an invalid form changed it in memory
project_edit · Database
2 ms
apps/projects/urls.py:71
return org_shell(request, project.organization if project else None, section) | {
shell · Database
2 ms

Fixtures

Exact setup time
_django_clear_site_cache function 0.06 ms
_django_set_urlconf function 0.06 ms
_django_db_marker function 0.05 ms
_dj_autoclear_mailbox function 0.05 ms
_live_server_helper function 0.05 ms
_template_string_if_invalid_marker function 0.04 ms
monkeypatch function 0.02 ms

Database

50 queries · 16 ms

Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).

6×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
4×
SELECT %s AS "a" FROM "orgs_membership" WHERE ("orgs_membership"."organization_id" = %s AND "orgs_membership"."user_id" = %s) LIMIT ?
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 ?
3×
UPDATE "django_session" SET "session_data" = %s, "expire_date" = %s WHERE "django_session"."session_key" = %s

Biggest pieces of work

call test body
apps/projects/tests.py:173
60 ms
call setUp
apps/projects/tests.py:142
11 ms
call _post_teardown
django/test/testcases.py:1240
2 ms
teardown tearDownClass
django/test/testcases.py:1453
0.75 ms

Reliability

5 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 5 results, oldest first in the strip
When Environment Outcome Duration Commit
46 minutes ago CI github-actions:test passed 75 ms 9caa567 main Profile
an hour ago CI github-actions:test passed 76 ms ec75501 main Profile
7 hours ago CI github-actions:test passed 86 ms d2c12e5 main Profile
8 hours ago CI github-actions:test passed 43 ms 0b902f6 main Profile
8 hours ago CI github-actions:test passed 78 ms 78a4357 main Profile