Tests / apps/projects/tests.py
ProjectRunsPage::test_project_with_runs
First seen 2 years, 10 months ago in b9e98d9
CI
github-actions:test
12 runs
Average
66 ms
median 70 ms
max 89 ms
max 89 ms
Phases
Setup 0.70 ms
Call 64 ms
Teardown 0.66 ms
Categories
Database 45 ms
App code 0.35 ms
Other (Libraries, Templates, pytest, Unsampled, ...) 20 ms
41 database queries per run
Needs 459 KB of memory (max 900 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call65 ms97.9%
ProjectRunsPage.test_project_with_runsapps/projects/tests.py:290 response = self.client.get(self.project.url("project_runs"))49 ms74.2%
Client.getdjango/test/client.py:112449 ms74.2%
RequestFactory.getdjango/test/client.py:47549 ms74.2%
RequestFactory.genericdjango/test/client.py:67149 ms74.2%
Client.requestdjango/test/client.py:108249 ms74.2%
ClientHandler.__call__django/test/client.py:18632 ms47.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14132 ms47.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms47.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13032 ms47.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms47.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms47.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5530 ms44.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12330 ms44.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5530 ms44.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3428 ms41.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms41.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19828 ms41.6%
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())8 ms11.9%
QuerySet.__iter__django/db/models/query.py:3906 ms8.9%
QuerySet._fetch_alldjango/db/models/query.py:20006 ms8.9%
ModelIterable.__iter__django/db/models/query.py:956 ms8.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms5.9%
CursorWrapper.executedjango/db/backends/utils.py:794 ms5.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms5.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms3.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms3.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms3.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms3.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms3.0%
Col.as_sqldjango/db/models/expressions.py:13252 ms3.0%
Sequence.__iter__<frozen _collections_abc>:10202 ms3.0%
Page.__getitem__django/core/paginator.py:3302 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:1272 ms3.0%
project_runsapps/projects/urls.py:3876 ms8.9%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms5.9%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms3.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms3.0%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms3.0%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms3.0%
org_shellapps/orgs/views.py:422 ms3.0%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms3.0%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms3.0%
shellapps/projects/urls.py:732 ms3.0%
can_manageapps/projects/urls.py:442 ms3.0%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_runsapps/projects/urls.py:3464 ms5.9%
find_projectapps/projects/urls.py:49 project = get_object_or_404(4 ms5.9%
get_object_or_404django/shortcuts.py:904 ms5.9%
QuerySet.getdjango/db/models/query.py:6252 ms3.0%
QuerySet.filterdjango/db/models/query.py:15422 ms3.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms3.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms3.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.0%
Query.build_filterdjango/db/models/sql/query.py:15732 ms3.0%
Query.get_initial_aliasdjango/db/models/sql/query.py:11162 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_runsapps/projects/urls.py:383 return render(4 ms5.9%
renderdjango/shortcuts.py:254 ms5.9%
render_to_stringdjango/template/loader.py:624 ms5.9%
Template.renderdjango/template/backends/django.py:1074 ms5.9%
Template.renderdjango/template/base.py:1744 ms5.9%
instrumented_test_renderdjango/test/utils.py:1144 ms5.9%
NodeList.renderdjango/template/base.py:10914 ms5.9%
Node.render_annotateddjango/template/base.py:10524 ms5.9%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.9%
instrumented_test_renderdjango/test/utils.py:1144 ms5.9%
NodeList.renderdjango/template/base.py:10914 ms5.9%
Node.render_annotateddjango/template/base.py:10524 ms5.9%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms5.9%
instrumented_test_renderdjango/test/utils.py:1144 ms5.9%
NodeList.renderdjango/template/base.py:10914 ms5.9%
Node.render_annotateddjango/template/base.py:10524 ms5.9%
BlockNode.renderdjango/template/loader_tags.py:664 ms5.9%
NodeList.renderdjango/template/base.py:10914 ms5.9%
Node.render_annotateddjango/template/base.py:10524 ms5.9%
IfNode.renderdjango/template/defaulttags.py:3332 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
IfNode.renderdjango/template/defaulttags.py:3332 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
ForNode.renderdjango/template/defaulttags.py:2122 ms3.0%
BlockNode.renderdjango/template/loader_tags.py:662 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
IfNode.renderdjango/template/defaulttags.py:3332 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
ForNode.renderdjango/template/defaulttags.py:2492 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
IncludeNode.renderdjango/template/loader_tags.py:2112 ms3.0%
Template.renderdjango/template/base.py:1762 ms3.0%
instrumented_test_renderdjango/test/utils.py:1142 ms3.0%
NodeList.renderdjango/template/base.py:10912 ms3.0%
Node.render_annotateddjango/template/base.py:10522 ms3.0%
SimpleNode.renderdjango/template/library.py:3252 ms3.0%
purlft/templatetags/helpers.py:302 ms3.0%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms3.0%
reversedjango/urls/base.py:982 ms3.0%
URLResolver._reverse_with_prefixdjango/urls/resolvers.py:8032 ms3.0%
search<stdlib>/re/__init__.py:1792 ms3.0%
_compile<stdlib>/re/__init__.py:3522 ms3.0%
compile<stdlib>/re/_compiler.py:7622 ms3.0%
parse<stdlib>/re/_parser.py:9722 ms3.0%
_parse_sub<stdlib>/re/_parser.py:4592 ms3.0%
_parse<stdlib>/re/_parser.py:8482 ms3.0%
State.opengroup<stdlib>/re/_parser.py:882 ms3.0%
project_runsapps/projects/urls.py:351 last_run = Run.objects.filter(project=project).order_by("-date_created").first() if has_runs else None2 ms3.0%
QuerySet.firstdjango/db/models/query.py:11452 ms3.0%
QuerySet.__iter__django/db/models/query.py:3902 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
project_runsapps/projects/urls.py:360 run_statistics = runs.aggregate(2 ms3.0%
QuerySet.aggregatedjango/db/models/query.py:5942 ms3.0%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms3.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms3.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms3.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms3.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms3.0%
Aggregate.as_sqldjango/db/models/aggregates.py:1932 ms3.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms3.0%
AggregateFilter.as_sqldjango/db/models/aggregates.py:472 ms3.0%
project_runsapps/projects/urls.py:367 page_obj = paginator.get_page(request.GET.get("page"))2 ms3.0%
Paginator.get_pagedjango/core/paginator.py:1682 ms3.0%
Paginator.validate_numberdjango/core/paginator.py:1602 ms3.0%
cached_property.__get__django/utils/functional.py:472 ms3.0%
Paginator.num_pagesdjango/core/paginator.py:1952 ms3.0%
cached_property.__get__django/utils/functional.py:472 ms3.0%
Paginator.countdjango/core/paginator.py:1892 ms3.0%
QuerySet.countdjango/db/models/query.py:6102 ms3.0%
Query.get_countdjango/db/models/sql/query.py:6512 ms3.0%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms3.0%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.0%
Atomic.__enter__django/db/transaction.py:2112 ms3.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.0%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms3.0%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
ClientHandler.__call__django/test/client.py:17316 ms23.7%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6214 ms20.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10414 ms20.8%
WhiteNoise.add_fileswhitenoise/base.py:10814 ms20.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12010 ms14.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13110 ms14.8%
WhiteNoise.get_static_filewhitenoise/base.py:2086 ms8.9%
StaticFile.__init__whitenoise/responders.py:742 ms3.0%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.0%
StaticFile.__init__whitenoise/responders.py:732 ms3.0%
StaticFile.get_headerswhitenoise/responders.py:1702 ms3.0%
StaticFile.__init__whitenoise/responders.py:772 ms3.0%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms3.0%
WhiteNoise.get_static_filewhitenoise/base.py:2024 ms5.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms5.9%
scantreewhitenoise/base.py:2624 ms5.9%
scantreewhitenoise/base.py:2624 ms5.9%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2622 ms3.0%
scantreewhitenoise/base.py:2602 ms3.0%
scantreewhitenoise/base.py:2642 ms3.0%
BaseHandler.load_middlewaredjango/core/handlers/base.py:962 ms3.0%
ClientHandler.__call__django/test/client.py:1762 ms3.0%
Signal.senddjango/dispatch/dispatcher.py:2092 ms3.0%
reset_queriesdjango/db/__init__.py:482 ms3.0%
ProjectRunsPage.setUpapps/projects/tests.py:269 self.client.force_login(self.user)12 ms17.8%
ClientMixin.force_logindjango/test/client.py:85510 ms14.8%
ClientMixin._logindjango/test/client.py:8816 ms8.9%
logindjango/contrib/auth/__init__.py:1874 ms5.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms3.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms3.0%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms3.0%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms3.0%
QuerySet.existsdjango/db/models/query.py:13372 ms3.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16462 ms3.0%
CursorWrapper.__getattr__django/db/backends/utils.py:312 ms3.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms3.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6252 ms3.0%
QuerySet.filterdjango/db/models/query.py:15422 ms3.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms3.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms3.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.0%
Query.build_filterdjango/db/models/sql/query.py:15992 ms3.0%
logindjango/contrib/auth/__init__.py:1752 ms3.0%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms3.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.getdjango/db/models/query.py:6352 ms3.0%
QuerySet.__len__django/db/models/query.py:3722 ms3.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.0%
ModelIterable.__iter__django/db/models/query.py:952 ms3.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms3.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms3.0%
ClientMixin._logindjango/test/client.py:8762 ms3.0%
ClientMixin.sessiondjango/test/client.py:8122 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms3.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
ClientMixin._logindjango/test/client.py:8832 ms3.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9202 ms3.0%
TestData.__get__django/test/testcases.py:13672 ms3.0%
deepcopy<stdlib>/copy.py:1562 ms3.0%
_reconstruct<stdlib>/copy.py:2542 ms3.0%
deepcopy<stdlib>/copy.py:1302 ms3.0%
_deepcopy_dict<stdlib>/copy.py:2012 ms3.0%
deepcopy<stdlib>/copy.py:1562 ms3.0%
ProjectRunsPage.test_project_with_runsapps/projects/tests.py:2892 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet.createdjango/db/models/query.py:6692 ms3.0%
Run.saveapps/projects/models.py:188 super().save(*args, **kwargs)2 ms3.0%
Model.savedjango/db/models/base.py:8742 ms3.0%
Model.save_basedjango/db/models/base.py:9662 ms3.0%
Model._save_tabledjango/db/models/base.py:11672 ms3.0%
Model._do_insertdjango/db/models/base.py:12182 ms3.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.0%
QuerySet._insertdjango/db/models/query.py:19182 ms3.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms3.0%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms3.0%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms3.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.0%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.0%
Cursor.executepsycopg/cursor.py:1132 ms3.0%
Connection.waitpsycopg/connection.py:4952 ms3.0%
teardown0.64 ms1.0%
Estimated from 34 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:290
response = self.client.get(self.project.url("project_runs"))
ProjectRunsPage.test_project_with_runs
· Libraries
|
22 ms |
|
apps/projects/tests.py:269
self.client.force_login(self.user)
ProjectRunsPage.setUp
· Database
|
12 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
|
8 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
4 ms |
|
apps/projects/models.py:188
super().save(*args, **kwargs)
Run.save
· Database
|
2 ms |
|
apps/projects/urls.py:351
last_run = Run.objects.filter(project=project).order_by("-date_created").first() if has_runs else None
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/orgs/views.py:40
"org_projects": list(organization.project_set.order_by("name")) if member else [],
org_shell
· Database
|
2 ms |
|
apps/orgs/models.py:65
return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()
Organization.is_owner
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
41 queries · 13 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/projects/tests.py:290
|
51 ms |
|
call setUp
apps/projects/tests.py:269
|
12 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
| teardown pytest internals | 0.64 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 | 66 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 37 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 80 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 60 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 89 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 47 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 | 70 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 71 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 82 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 38 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 73 ms | Profile |