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

MemoryTest::test_profile_and_test_pages

First seen 3 weeks ago in 78a4357
CI github-actions:test 12 runs
Average
93 ms
median 103 ms
max 113 ms
Phases
Setup 0.66 ms Call 93 ms Teardown 0.20 ms
Categories
Database 59 ms App code 1 ms Test code 0.31 ms Other (Libraries, Templates, pytest, Unsampled) 33 ms

60 database queries per run

Needs 3 KB of memory (max 20 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 16 hours ago · open run
Show pytest frames
call103 ms99.1%
MemoryTest.test_profile_and_test_pagesapps/projects/tests.py:1454 response = self.client.get(self.project.url("project_profile", self.latest.number))50 ms48.6%
Client.getdjango/test/client.py:112450 ms48.6%
RequestFactory.getdjango/test/client.py:47550 ms48.6%
RequestFactory.genericdjango/test/client.py:67150 ms48.6%
Client.requestdjango/test/client.py:108250 ms48.6%
ClientHandler.__call__django/test/client.py:17331 ms29.9%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6231 ms29.9%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10431 ms29.9%
WhiteNoise.add_fileswhitenoise/base.py:10831 ms29.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1208 ms7.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1318 ms7.5%
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms3.7%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms3.7%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms3.7%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms3.7%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms3.7%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2054 ms3.7%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1842 ms1.9%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1782 ms1.9%
WhiteNoise.get_static_filewhitenoise/base.py:2084 ms3.7%
StaticFile.__init__whitenoise/responders.py:774 ms3.7%
StaticFile.get_alternativeswhitenoise/responders.py:2004 ms3.7%
__init____init__:-12 ms1.9%
Headers.__init__<stdlib>/wsgiref/headers.py:432 ms1.9%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms1.9%
ClientHandler.__call__django/test/client.py:18619 ms18.7%
BaseHandler.get_responsedjango/core/handlers/base.py:14119 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13019 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12319 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms18.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.7%
BaseHandler._get_responsedjango/core/handlers/base.py:19819 ms18.7%
project_profileapps/projects/urls.py:4746 ms5.6%
find_projectapps/projects/urls.py:49 project = get_object_or_404(4 ms3.7%
get_object_or_404django/shortcuts.py:904 ms3.7%
QuerySet.getdjango/db/models/query.py:6252 ms1.9%
QuerySet.filterdjango/db/models/query.py:15422 ms1.9%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.9%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.9%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.9%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.9%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.9%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms1.9%
BaseExpression.get_lookupdjango/db/models/expressions.py:4042 ms1.9%
QuerySet.getdjango/db/models/query.py:6352 ms1.9%
QuerySet.__len__django/db/models/query.py:3722 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms1.9%
BaseCursor._set_resultspsycopg/_cursor_base.py:5352 ms1.9%
BaseCursor._select_current_resultpsycopg/_cursor_base.py:5142 ms1.9%
find_projectapps/projects/urls.py:522 ms1.9%
can_viewapps/projects/urls.py:332 ms1.9%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:2 ms1.9%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms1.9%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms1.9%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms1.9%
get_userdjango/contrib/auth/middleware.py:202 ms1.9%
get_userdjango/contrib/auth/__init__.py:3112 ms1.9%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms1.9%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms1.9%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms1.9%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms1.9%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.getdjango/db/models/query.py:6352 ms1.9%
QuerySet.__len__django/db/models/query.py:3722 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.9%
project_profileapps/projects/urls.py:477 profile = get_object_or_404(4 ms3.7%
get_object_or_404django/shortcuts.py:904 ms3.7%
QuerySet.getdjango/db/models/query.py:6354 ms3.7%
QuerySet.__len__django/db/models/query.py:3724 ms3.7%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.7%
ModelIterable.__iter__django/db/models/query.py:954 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.9%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.9%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.9%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms1.9%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:12572 ms1.9%
Query.setup_joinsdjango/db/models/sql/query.py:19272 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_profileapps/projects/urls.py:5024 ms3.7%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms3.7%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_profileapps/projects/urls.py:498 return render(4 ms3.7%
renderdjango/shortcuts.py:254 ms3.7%
render_to_stringdjango/template/loader.py:624 ms3.7%
Template.renderdjango/template/backends/django.py:1032 ms1.9%
make_contextdjango/template/context.py:3062 ms1.9%
BaseContext.pushdjango/template/context.py:562 ms1.9%
Template.renderdjango/template/backends/django.py:1072 ms1.9%
Template.renderdjango/template/base.py:1742 ms1.9%
instrumented_test_renderdjango/test/utils.py:1142 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms1.9%
instrumented_test_renderdjango/test/utils.py:1142 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms1.9%
instrumented_test_renderdjango/test/utils.py:1142 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
BlockNode.renderdjango/template/loader_tags.py:662 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
BlockNode.renderdjango/template/loader_tags.py:662 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
IfNode.renderdjango/template/defaulttags.py:3332 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
IfNode.renderdjango/template/defaulttags.py:3322 ms1.9%
QuerySet.__bool__django/db/models/query.py:4042 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_profileapps/projects/urls.py:490 for perf in perfs:2 ms1.9%
Sequence.__iter__<frozen _collections_abc>:10202 ms1.9%
Page.__getitem__django/core/paginator.py:3302 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
MemoryTest.test_profile_and_test_pagesapps/projects/tests.py:145839 ms37.4%
Client.getdjango/test/client.py:112439 ms37.4%
RequestFactory.getdjango/test/client.py:47539 ms37.4%
RequestFactory.genericdjango/test/client.py:67139 ms37.4%
Client.requestdjango/test/client.py:108239 ms37.4%
ClientHandler.__call__django/test/client.py:18639 ms37.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14139 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13039 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12339 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30939 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3439 ms37.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5539 ms37.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19839 ms37.4%
project_testapps/projects/urls.py:3128 ms7.5%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])8 ms7.5%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)4 ms3.7%
QuerySet.__iter__django/db/models/query.py:3904 ms3.7%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.7%
ValuesListIterable.__iter__django/db/models/query.py:2384 ms3.7%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15734 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.9%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.9%
RelatedIn.as_sqldjango/db/models/fields/related_lookups.py:952 ms1.9%
In.as_sqldjango/db/models/lookups.py:5562 ms1.9%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2392 ms1.9%
In.process_rhsdjango/db/models/lookups.py:5402 ms1.9%
FieldGetDbPrepValueIterableMixin.batch_process_rhsdjango/db/models/lookups.py:3422 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms1.9%
BaseCursor._set_resultspsycopg/_cursor_base.py:5352 ms1.9%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.9%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.9%
QuerySet.getdjango/db/models/query.py:6352 ms1.9%
QuerySet.__len__django/db/models/query.py:3722 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
observations_forapps/projects/flakiness.py:189 for row in Profile.objects.filter(id__in={row[3] for row in perfs}).values_list(2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)8 ms7.5%
renderdjango/shortcuts.py:258 ms7.5%
render_to_stringdjango/template/loader.py:628 ms7.5%
Template.renderdjango/template/backends/django.py:1078 ms7.5%
Template.renderdjango/template/base.py:1748 ms7.5%
instrumented_test_renderdjango/test/utils.py:1148 ms7.5%
NodeList.renderdjango/template/base.py:10918 ms7.5%
Node.render_annotateddjango/template/base.py:10528 ms7.5%
ExtendsNode.renderdjango/template/loader_tags.py:1608 ms7.5%
instrumented_test_renderdjango/test/utils.py:1148 ms7.5%
NodeList.renderdjango/template/base.py:10918 ms7.5%
Node.render_annotateddjango/template/base.py:10528 ms7.5%
ExtendsNode.renderdjango/template/loader_tags.py:1608 ms7.5%
instrumented_test_renderdjango/test/utils.py:1148 ms7.5%
NodeList.renderdjango/template/base.py:10918 ms7.5%
Node.render_annotateddjango/template/base.py:10528 ms7.5%
BlockNode.renderdjango/template/loader_tags.py:668 ms7.5%
NodeList.renderdjango/template/base.py:10918 ms7.5%
Node.render_annotateddjango/template/base.py:10528 ms7.5%
IfNode.renderdjango/template/defaulttags.py:3334 ms3.7%
NodeList.renderdjango/template/base.py:10914 ms3.7%
Node.render_annotateddjango/template/base.py:10524 ms3.7%
ForNode.renderdjango/template/defaulttags.py:2492 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
URLNode.renderdjango/template/defaulttags.py:5112 ms1.9%
reversedjango/urls/base.py:982 ms1.9%
SimpleNode.renderdjango/template/library.py:3252 ms1.9%
heroicon_miniheroicons/templatetags/heroicons.py:182 ms1.9%
_render_iconheroicons/templatetags/heroicons.py:392 ms1.9%
_render_iconheroicons/__init__.py:632 ms1.9%
tostring<stdlib>/xml/etree/ElementTree.py:11062 ms1.9%
BlockNode.renderdjango/template/loader_tags.py:664 ms3.7%
NodeList.renderdjango/template/base.py:10914 ms3.7%
Node.render_annotateddjango/template/base.py:10524 ms3.7%
IfNode.renderdjango/template/defaulttags.py:3262 ms1.9%
TemplateLiteral.evaldjango/template/defaulttags.py:9182 ms1.9%
FilterExpression.resolvedjango/template/base.py:7882 ms1.9%
Variable.resolvedjango/template/base.py:9282 ms1.9%
Variable._resolve_lookupdjango/template/base.py:9762 ms1.9%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.9%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.9%
QuerySet.getdjango/db/models/query.py:6352 ms1.9%
QuerySet.__len__django/db/models/query.py:3722 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16622 ms1.9%
IfNode.renderdjango/template/defaulttags.py:3332 ms1.9%
NodeList.renderdjango/template/base.py:10912 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
ForNode.renderdjango/template/defaulttags.py:2492 ms1.9%
Node.render_annotateddjango/template/base.py:10522 ms1.9%
project_testapps/projects/urls.py:3116 ms5.6%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)4 ms3.7%
QuerySet.__iter__django/db/models/query.py:3904 ms3.7%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.7%
ModelIterable.__iter__django/db/models/query.py:954 ms3.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms3.7%
CursorWrapper.executedjango/db/backends/utils.py:794 ms3.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms3.7%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms3.7%
Cursor.executepsycopg/cursor.py:1134 ms3.7%
Connection.waitpsycopg/connection.py:4954 ms3.7%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:2826 ms5.6%
find_projectapps/projects/urls.py:524 ms3.7%
can_viewapps/projects/urls.py:334 ms3.7%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:2 ms1.9%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms1.9%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms1.9%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms1.9%
get_userdjango/contrib/auth/middleware.py:202 ms1.9%
get_userdjango/contrib/auth/__init__.py:3182 ms1.9%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.getdjango/db/models/query.py:6352 ms1.9%
QuerySet.__len__django/db/models/query.py:3722 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
find_projectapps/projects/urls.py:49 project = get_object_or_404(2 ms1.9%
get_object_or_404django/shortcuts.py:902 ms1.9%
QuerySet.getdjango/db/models/query.py:6252 ms1.9%
QuerySet.filterdjango/db/models/query.py:15422 ms1.9%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.9%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.9%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.9%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)6 ms5.6%
shellapps/projects/urls.py:732 ms1.9%
can_manageapps/projects/urls.py:442 ms1.9%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
filtersapps/projects/urls.py:972 ms1.9%
filters.<locals>.linkapps/projects/urls.py:86 return "?" + urlencode(query)2 ms1.9%
urlencode<stdlib>/urllib/parse.py:11692 ms1.9%
project_testapps/projects/urls.py:2952 ms1.9%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()2 ms1.9%
QuerySet.firstdjango/db/models/query.py:11452 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
project_testapps/projects/urls.py:3002 ms1.9%
latest_documentapps/projects/profiles.py:303 ).first()2 ms1.9%
QuerySet.firstdjango/db/models/query.py:11452 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
project_testapps/projects/urls.py:3152 ms1.9%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.9%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
MemoryTest.setUpapps/projects/tests.py:1413 self.client.force_login(self.user)10 ms9.3%
ClientMixin.force_logindjango/test/client.py:85510 ms9.3%
ClientMixin._logindjango/test/client.py:8764 ms3.7%
ClientMixin.sessiondjango/test/client.py:8124 ms3.7%
SessionStore.savedjango/contrib/sessions/backends/db.py:1214 ms3.7%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms1.9%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms1.9%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms1.9%
QuerySet.existsdjango/db/models/query.py:13372 ms1.9%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.9%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms1.9%
Atomic.__exit__django/db/transaction.py:2472 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.9%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
ClientMixin._logindjango/test/client.py:8814 ms3.7%
logindjango/contrib/auth/__init__.py:1872 ms1.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms1.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms1.9%
Model.savedjango/db/models/base.py:8742 ms1.9%
Model.save_basedjango/db/models/base.py:9662 ms1.9%
Model._save_tabledjango/db/models/base.py:11672 ms1.9%
Model._do_insertdjango/db/models/base.py:12182 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet._insertdjango/db/models/query.py:19182 ms1.9%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.9%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.9%
logindjango/contrib/auth/__init__.py:1972 ms1.9%
Signal.senddjango/dispatch/dispatcher.py:2092 ms1.9%
update_last_logindjango/contrib/auth/models.py:242 ms1.9%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms1.9%
Model.savedjango/db/models/base.py:8742 ms1.9%
Model.save_basedjango/db/models/base.py:9662 ms1.9%
Model._save_tabledjango/db/models/base.py:11102 ms1.9%
Model._do_updatedjango/db/models/base.py:12112 ms1.9%
QuerySet._updatedjango/db/models/query.py:13272 ms1.9%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.9%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
ClientMixin._logindjango/test/client.py:8832 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms1.9%
Atomic.__exit__django/db/transaction.py:2472 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.9%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()4 ms3.7%
TestCase._fixture_teardowndjango/test/testcases.py:14942 ms1.9%
TestCase._should_check_constraintsdjango/test/testcases.py:15032 ms1.9%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:4922 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms1.9%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.9%
Cursor.executepsycopg/cursor.py:1132 ms1.9%
Connection.waitpsycopg/connection.py:4952 ms1.9%
Estimated from 53 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/projects/tests.py:1454
response = self.client.get(self.project.url("project_profile", self.latest.number))
MemoryTest.test_profile_and_test_pages · Libraries
31 ms
apps/projects/tests.py:1413
self.client.force_login(self.user)
MemoryTest.setUp · Database
10 ms
apps/projects/urls.py:342
return render(request, "project_test.html", context)
project_test · Templates
8 ms
apps/projects/urls.py:49
project = get_object_or_404(
find_project · Database
6 ms
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test · Database
4 ms
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project · Database
4 ms
apps/projects/urls.py:477
profile = get_object_or_404(
project_profile · Database
4 ms
apps/projects/urls.py:498
return render(
project_profile · Templates
4 ms
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project · Database
4 ms
apps/projects/flakiness.py:165
test_runs = list(test_runs)
observations_for · Database
4 ms

Fixtures

Exact setup time
_dj_autoclear_mailbox function 0.05 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

60 queries · 22 ms

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

5×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."part", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects…
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
3×
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…

Biggest pieces of work

call test body
apps/projects/tests.py:1454
89 ms
call setUp
apps/projects/tests.py:1413
10 ms
call _post_teardown
django/test/testcases.py:1240
4 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 104 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 57 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 107 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 86 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 113 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 67 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 109 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 103 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 103 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 111 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 56 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 103 ms 78a4357 main Profile