CI
github-actions:test
12 runs
Average
63 ms
median 68 ms
max 82 ms
max 82 ms
Phases
Setup 0.72 ms
Call 62 ms
Teardown 0.20 ms
Categories
Database 37 ms
App code 0.38 ms
Other (Libraries, Templates, Unsampled, pytest, ...) 25 ms
38 database queries per run
Needs 182 KB of memory (max 448 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.68 ms1.1%
__init____init__:-10.68 ms1.1%
call59 ms98.5%
ProjectPagesTest.test_runs_pageapps/projects/tests.py:1077 response = self.client.get(self.project.url("project_runs"))43 ms71.4%
Client.getdjango/test/client.py:112443 ms71.4%
RequestFactory.getdjango/test/client.py:47543 ms71.4%
RequestFactory.genericdjango/test/client.py:67143 ms71.4%
Client.requestdjango/test/client.py:108243 ms71.4%
ClientHandler.__call__django/test/client.py:18628 ms47.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14128 ms47.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms47.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13028 ms47.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms47.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms47.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms47.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12328 ms47.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms47.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3426 ms44.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms44.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19824 ms40.8%
project_runsapps/projects/urls.py:377 for session in sessions:6 ms10.2%
QuerySet.__iter__django/db/models/query.py:3906 ms10.2%
QuerySet._fetch_alldjango/db/models/query.py:20024 ms6.8%
QuerySet._prefetch_related_objectsdjango/db/models/query.py:13694 ms6.8%
prefetch_related_objectsdjango/db/models/query.py:24514 ms6.8%
prefetch_one_leveldjango/db/models/query.py:26074 ms6.8%
create_reverse_many_to_one_manager.<locals>.RelatedManager.get_prefetch_querysetsdjango/db/models/fields/related_descriptors.py:7732 ms3.4%
_filter_prefetch_querysetdjango/db/models/fields/related_descriptors.py:1162 ms3.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.4%
Query.build_filterdjango/db/models/sql/query.py:15772 ms3.4%
Query.setup_joinsdjango/db/models/sql/query.py:19272 ms3.4%
create_reverse_many_to_one_manager.<locals>.RelatedManager.get_prefetch_querysetsdjango/db/models/fields/related_descriptors.py:7772 ms3.4%
QuerySet.__iter__django/db/models/query.py:3902 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:1072 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms3.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms3.4%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms3.4%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:4742 ms3.4%
project_runsapps/projects/urls.py:368 page_runs = list(Run.objects.select_related("commit").filter(id__in=[p.id for p in page_obj]).annotate_counts())4 ms6.8%
RunQueryset.annotate_countsapps/projects/models.py:136 models.When(testrun__status=TestRun.StatusTypes.PASS, then=1), output_field=models.IntegerField()2 ms3.4%
Field.__init__django/db/models/fields/__init__.py:2282 ms3.4%
QuerySet.__iter__django/db/models/query.py:3902 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
project_runsapps/projects/urls.py:3874 ms6.8%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {2 ms3.4%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms3.4%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms3.4%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms3.4%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms3.4%
get_userdjango/contrib/auth/middleware.py:202 ms3.4%
get_userdjango/contrib/auth/__init__.py:3112 ms3.4%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms3.4%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms3.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.4%
QuerySet.getdjango/db/models/query.py:6352 ms3.4%
QuerySet.__len__django/db/models/query.py:3722 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
shellapps/projects/urls.py:732 ms3.4%
can_manageapps/projects/urls.py:442 ms3.4%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms3.4%
QuerySet.existsdjango/db/models/query.py:13372 ms3.4%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms3.4%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms3.4%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms3.4%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms3.4%
project_runsapps/projects/urls.py:3462 ms3.4%
find_projectapps/projects/urls.py:49 project = get_object_or_404(2 ms3.4%
get_object_or_404django/shortcuts.py:902 ms3.4%
QuerySet.getdjango/db/models/query.py:6352 ms3.4%
QuerySet.__len__django/db/models/query.py:3722 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
project_runsapps/projects/urls.py:350 has_runs = Run.objects.filter(project=project).exists()2 ms3.4%
QuerySet.existsdjango/db/models/query.py:13372 ms3.4%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
project_runsapps/projects/urls.py:360 run_statistics = runs.aggregate(2 ms3.4%
QuerySet.aggregatedjango/db/models/query.py:5942 ms3.4%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
project_runsapps/projects/urls.py:367 page_obj = paginator.get_page(request.GET.get("page"))2 ms3.4%
Paginator.get_pagedjango/core/paginator.py:1682 ms3.4%
Paginator.validate_numberdjango/core/paginator.py:1602 ms3.4%
cached_property.__get__django/utils/functional.py:472 ms3.4%
Paginator.num_pagesdjango/core/paginator.py:1952 ms3.4%
cached_property.__get__django/utils/functional.py:472 ms3.4%
Paginator.countdjango/core/paginator.py:1892 ms3.4%
QuerySet.countdjango/db/models/query.py:6102 ms3.4%
Query.get_countdjango/db/models/sql/query.py:6512 ms3.4%
Query.get_aggregationdjango/db/models/sql/query.py:6382 ms3.4%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms3.4%
project_runsapps/projects/urls.py:383 return render(2 ms3.4%
renderdjango/shortcuts.py:252 ms3.4%
render_to_stringdjango/template/loader.py:622 ms3.4%
Template.renderdjango/template/backends/django.py:1072 ms3.4%
Template.renderdjango/template/base.py:1742 ms3.4%
instrumented_test_renderdjango/test/utils.py:1142 ms3.4%
NodeList.renderdjango/template/base.py:10912 ms3.4%
Node.render_annotateddjango/template/base.py:10522 ms3.4%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.4%
instrumented_test_renderdjango/test/utils.py:1142 ms3.4%
NodeList.renderdjango/template/base.py:10912 ms3.4%
Node.render_annotateddjango/template/base.py:10522 ms3.4%
ExtendsNode.renderdjango/template/loader_tags.py:1602 ms3.4%
instrumented_test_renderdjango/test/utils.py:1142 ms3.4%
NodeList.renderdjango/template/base.py:10912 ms3.4%
Node.render_annotateddjango/template/base.py:10522 ms3.4%
BlockNode.renderdjango/template/loader_tags.py:662 ms3.4%
NodeList.renderdjango/template/base.py:10912 ms3.4%
Node.render_annotateddjango/template/base.py:10522 ms3.4%
IfNode.renderdjango/template/defaulttags.py:3332 ms3.4%
NodeList.renderdjango/template/base.py:10912 ms3.4%
Node.render_annotateddjango/template/base.py:10522 ms3.4%
SimpleNode.renderdjango/template/library.py:3252 ms3.4%
heroicon_miniheroicons/templatetags/heroicons.py:182 ms3.4%
_render_iconheroicons/templatetags/heroicons.py:392 ms3.4%
_render_iconheroicons/__init__.py:452 ms3.4%
deepcopy<stdlib>/copy.py:1372 ms3.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms3.4%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms3.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.4%
Model.savedjango/db/models/base.py:8742 ms3.4%
Model.save_basedjango/db/models/base.py:9662 ms3.4%
Model._save_tabledjango/db/models/base.py:11102 ms3.4%
Model._do_updatedjango/db/models/base.py:12112 ms3.4%
QuerySet._updatedjango/db/models/query.py:13272 ms3.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms3.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
ClientHandler.__call__django/test/client.py:17314 ms23.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6214 ms23.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10414 ms23.8%
WhiteNoise.add_fileswhitenoise/base.py:10814 ms23.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12010 ms17.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13110 ms17.0%
WhiteNoise.get_static_filewhitenoise/base.py:20810 ms17.0%
StaticFile.__init__whitenoise/responders.py:776 ms10.2%
StaticFile.get_alternativeswhitenoise/responders.py:2034 ms6.8%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms3.4%
Headers.__init__<stdlib>/wsgiref/headers.py:442 ms3.4%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms3.4%
__init____init__:-12 ms3.4%
StaticFile.__init__whitenoise/responders.py:762 ms3.4%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms3.4%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms3.4%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms3.4%
StaticFile.__init__whitenoise/responders.py:732 ms3.4%
StaticFile.get_headerswhitenoise/responders.py:1762 ms3.4%
formatdate<stdlib>/email/utils.py:2662 ms3.4%
format_datetime<stdlib>/email/utils.py:2842 ms3.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms6.8%
scantreewhitenoise/base.py:2624 ms6.8%
scantreewhitenoise/base.py:2624 ms6.8%
scantreewhitenoise/base.py:2642 ms3.4%
ProjectPagesTest.setUpapps/projects/tests.py:954 self.client.force_login(self.user)10 ms17.0%
ClientMixin.force_logindjango/test/client.py:85510 ms17.0%
ClientMixin._logindjango/test/client.py:8816 ms10.2%
logindjango/contrib/auth/__init__.py:1874 ms6.8%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms3.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.4%
Atomic.__enter__django/db/transaction.py:2112 ms3.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.4%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms3.4%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms3.4%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms3.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.4%
QuerySet.getdjango/db/models/query.py:6352 ms3.4%
QuerySet.__len__django/db/models/query.py:3722 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
logindjango/contrib/auth/__init__.py:1752 ms3.4%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms3.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.4%
QuerySet.getdjango/db/models/query.py:6352 ms3.4%
QuerySet.__len__django/db/models/query.py:3722 ms3.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.4%
ModelIterable.__iter__django/db/models/query.py:952 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
ClientMixin._logindjango/test/client.py:8762 ms3.4%
ClientMixin.sessiondjango/test/client.py:8122 ms3.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms3.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.4%
Model.savedjango/db/models/base.py:8742 ms3.4%
Model.save_basedjango/db/models/base.py:9662 ms3.4%
Model._save_tabledjango/db/models/base.py:11672 ms3.4%
Model._do_insertdjango/db/models/base.py:12182 ms3.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.4%
QuerySet._insertdjango/db/models/query.py:19182 ms3.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
ClientMixin._logindjango/test/client.py:8832 ms3.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.4%
Model.savedjango/db/models/base.py:8742 ms3.4%
Model.save_basedjango/db/models/base.py:9662 ms3.4%
Model._save_tabledjango/db/models/base.py:11102 ms3.4%
Model._do_updatedjango/db/models/base.py:12112 ms3.4%
QuerySet._updatedjango/db/models/query.py:13272 ms3.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms3.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms3.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.4%
Cursor.executepsycopg/cursor.py:1132 ms3.4%
Connection.waitpsycopg/connection.py:4952 ms3.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()6 ms10.2%
TestCase._fixture_teardowndjango/test/testcases.py:14954 ms6.8%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4834 ms6.8%
CursorWrapper.executedjango/db/backends/utils.py:794 ms6.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms6.8%
CursorWrapper._executedjango/db/backends/utils.py:1034 ms6.8%
Cursor.executepsycopg/cursor.py:1134 ms6.8%
Connection.waitpsycopg/connection.py:4954 ms6.8%
TestCase._fixture_teardowndjango/test/testcases.py:14902 ms3.4%
TestCase._databases_support_transactionsdjango/test/testcases.py:14092 ms3.4%
Estimated from 30 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:1077
response = self.client.get(self.project.url("project_runs"))
ProjectPagesTest.test_runs_page
· Libraries
|
18 ms |
|
apps/projects/tests.py:954
self.client.force_login(self.user)
ProjectPagesTest.setUp
· Database
|
10 ms |
|
apps/projects/urls.py:377
for session in sessions:
project_runs
· Database
|
6 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
2 ms |
|
apps/projects/urls.py:350
has_runs = Run.objects.filter(project=project).exists()
project_runs
· Database
|
2 ms |
|
apps/projects/urls.py:360
run_statistics = runs.aggregate(
project_runs
· Database
|
2 ms |
|
apps/projects/urls.py:367
page_obj = paginator.get_page(request.GET.get("page"))
project_runs
· Database
|
2 ms |
|
apps/projects/models.py:136
models.When(testrun__status=TestRun.StatusTypes.PASS, then=1), output_field=models.IntegerField()
RunQueryset.annotate_counts
· Database
|
2 ms |
|
apps/projects/urls.py:368
page_runs = list(Run.objects.select_related("commit").filter(id__in=[p.id for p in page_obj]).annotate_counts())
project_runs
· Database
|
2 ms |
|
apps/orgs/views.py:33
organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))
org_shell
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_set_urlconf 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
38 queries · 13 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/projects/tests.py:1077
|
43 ms |
|
call setUp
apps/projects/tests.py:954
|
10 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
6 ms |
|
setup __init__
__init__:-1
|
0.68 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 60 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 38 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 70 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 82 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 54 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 73 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 69 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 68 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 74 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 39 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 68 ms | Profile |