Tests / apps/projects/tests.py
TestProjectTestPage::test_project_test_page_with_durations
First seen 2 years, 10 months ago in d87c7a8
CI
github-actions:test
12 runs
Average
76 ms
median 84 ms
max 92 ms
max 92 ms
Phases
Setup 0.70 ms
Call 74 ms
Teardown 0.79 ms
Categories
Database 49 ms
App code 0.18 ms
Other (Libraries, Templates, Unsampled, Deep copies, ...) 27 ms
52 database queries per run
Needs 102 KB of memory (max 600 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.76 ms0.9%
__init____init__:-10.76 ms0.9%
signature<stdlib>/inspect.py:33430.76 ms0.9%
Signature.from_callable<stdlib>/inspect.py:30580.76 ms0.9%
_signature_from_callable<stdlib>/inspect.py:25280.76 ms0.9%
call85 ms98.3%
TestProjectTestPage.test_project_test_page_with_durationsapps/projects/tests.py:460 response = self.client.get(self.url)55 ms63.5%
Client.getdjango/test/client.py:112455 ms63.5%
RequestFactory.getdjango/test/client.py:47555 ms63.5%
RequestFactory.genericdjango/test/client.py:67155 ms63.5%
Client.requestdjango/test/client.py:108255 ms63.5%
ClientHandler.__call__django/test/client.py:18630 ms34.8%
BaseHandler.get_responsedjango/core/handlers/base.py:14128 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms32.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13028 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30928 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms32.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12328 ms32.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5528 ms32.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3426 ms30.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms30.7%
BaseHandler._get_responsedjango/core/handlers/base.py:19826 ms30.7%
project_testapps/projects/urls.py:3119 ms10.2%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)5 ms6.1%
QuerySet.__iter__django/db/models/query.py:3905 ms6.1%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms6.1%
ModelIterable.__iter__django/db/models/query.py:955 ms6.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms4.1%
CursorWrapper.executedjango/db/backends/utils.py:794 ms4.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms4.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms2.0%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms2.0%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)4 ms4.1%
QuerySet.__iter__django/db/models/query.py:3904 ms4.1%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms4.1%
ModelIterable.__iter__django/db/models/query.py:954 ms4.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
project_testapps/projects/urls.py:2825 ms6.1%
find_projectapps/projects/urls.py:49 project = get_object_or_404(4 ms4.1%
get_object_or_404django/shortcuts.py:904 ms4.1%
QuerySet.getdjango/db/models/query.py:6252 ms2.0%
QuerySet.filterdjango/db/models/query.py:15422 ms2.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.0%
Query.build_filterdjango/db/models/sql/query.py:15512 ms2.0%
QuerySet.getdjango/db/models/query.py:6352 ms2.0%
QuerySet.__len__django/db/models/query.py:3722 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
find_projectapps/projects/urls.py:522 ms2.0%
can_viewapps/projects/urls.py:332 ms2.0%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:2 ms2.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.0%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms2.0%
get_userdjango/contrib/auth/middleware.py:202 ms2.0%
get_userdjango/contrib/auth/__init__.py:3112 ms2.0%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.getdjango/db/models/query.py:6352 ms2.0%
QuerySet.__len__django/db/models/query.py:3722 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)5 ms6.1%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms4.1%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms2.0%
QuerySet.__iter__django/db/models/query.py:3902 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.0%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.0%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.0%
org_shellapps/orgs/views.py:422 ms2.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 ms2.0%
QuerySet.existsdjango/db/models/query.py:13372 ms2.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
filtersapps/projects/urls.py:80 environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))2 ms2.0%
QuerySet.__iter__django/db/models/query.py:3902 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
project_testapps/projects/urls.py:2954 ms4.1%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()4 ms4.1%
QuerySet.firstdjango/db/models/query.py:11454 ms4.1%
QuerySet.__getitem__django/db/models/query.py:4272 ms2.0%
QuerySet.__iter__django/db/models/query.py:3902 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
project_testapps/projects/urls.py:285 test = get_object_or_404(Test, slug=test_slug, project=project)2 ms2.0%
get_object_or_404django/shortcuts.py:902 ms2.0%
QuerySet.getdjango/db/models/query.py:6252 ms2.0%
QuerySet.filterdjango/db/models/query.py:15422 ms2.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.0%
Query.build_filterdjango/db/models/sql/query.py:15772 ms2.0%
Query.setup_joinsdjango/db/models/sql/query.py:19772 ms2.0%
project_testapps/projects/urls.py:3122 ms2.0%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])2 ms2.0%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.0%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.0%
QuerySet.getdjango/db/models/query.py:6252 ms2.0%
QuerySet.filterdjango/db/models/query.py:15422 ms2.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.0%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.0%
Query.build_filterdjango/db/models/sql/query.py:15282 ms2.0%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.0%
Query.build_filterdjango/db/models/sql/query.py:16132 ms2.0%
Query.build_lookupdjango/db/models/sql/query.py:14402 ms2.0%
MiddlewareMixin.__call__django/utils/deprecation.py:3082 ms2.0%
SessionMiddleware.process_requestdjango/contrib/sessions/middleware.py:202 ms2.0%
__init____init__:-12 ms2.0%
BaseHandler.get_responsedjango/core/handlers/base.py:1402 ms2.0%
set_urlconfdjango/urls/base.py:1552 ms2.0%
Local.__setattr__asgiref/local.py:1262 ms2.0%
ClientHandler.__call__django/test/client.py:17325 ms28.7%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6223 ms26.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10416 ms18.4%
WhiteNoise.add_fileswhitenoise/base.py:10816 ms18.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12012 ms14.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13112 ms14.3%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms14.3%
StaticFile.__init__whitenoise/responders.py:737 ms8.2%
StaticFile.get_headerswhitenoise/responders.py:1674 ms4.1%
StaticFile.get_headerswhitenoise/responders.py:1784 ms4.1%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.0%
StaticFile.__init__whitenoise/responders.py:722 ms2.0%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms2.0%
__init____init__:-12 ms2.0%
FileEntry.__init__whitenoise/responders.py:2632 ms2.0%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms2.0%
StaticFile.__init__whitenoise/responders.py:762 ms2.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms2.0%
Headers.__contains__<stdlib>/wsgiref/headers.py:872 ms2.0%
StaticFile.__init__whitenoise/responders.py:772 ms2.0%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms4.1%
scantreewhitenoise/base.py:2624 ms4.1%
scantreewhitenoise/base.py:2624 ms4.1%
scantreewhitenoise/base.py:2622 ms2.0%
scantreewhitenoise/base.py:2622 ms2.0%
scantreewhitenoise/base.py:2622 ms2.0%
scantreewhitenoise/base.py:2642 ms2.0%
scantreewhitenoise/base.py:2642 ms2.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1115 ms6.1%
WhiteNoise.add_fileswhitenoise/base.py:1085 ms6.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1205 ms6.1%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1315 ms6.1%
WhiteNoise.get_static_filewhitenoise/base.py:2085 ms6.1%
StaticFile.__init__whitenoise/responders.py:734 ms4.1%
StaticFile.get_headerswhitenoise/responders.py:1782 ms2.0%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.0%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.0%
StaticFile.__init__whitenoise/responders.py:762 ms2.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms2.0%
SecurityMiddleware.__init__django/middleware/security.py:102 ms2.0%
BaseHandler.load_middlewaredjango/core/handlers/base.py:962 ms2.0%
convert_exception_to_responsedjango/core/handlers/exception.py:372 ms2.0%
iscoroutinefunction<stdlib>/inspect.py:336 return _has_code_flag(obj, CO_COROUTINE) or _has_coroutine_mark(obj)2 ms2.0%
_has_code_flag<stdlib>/inspect.py:2992 ms2.0%
isfunction<stdlib>/inspect.py:2882 ms2.0%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()16 ms18.4%
TestCase._fixture_teardowndjango/test/testcases.py:149712 ms14.3%
TestCase._rollback_atomicsdjango/test/testcases.py:140512 ms14.3%
Atomic.__exit__django/db/transaction.py:28312 ms14.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:2612 ms14.3%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:41312 ms14.3%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:37111 ms12.3%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms12.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms12.3%
CursorWrapper._executedjango/db/backends/utils.py:10311 ms12.3%
Cursor.executepsycopg/cursor.py:11311 ms12.3%
Connection.waitpsycopg/connection.py:49511 ms12.3%
TestCase._fixture_teardowndjango/test/testcases.py:14954 ms4.1%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
TestProjectTestPage.setUpapps/projects/tests.py:413 self.client.force_login(self.user)9 ms10.2%
ClientMixin.force_logindjango/test/client.py:8557 ms8.2%
ClientMixin._logindjango/test/client.py:8815 ms6.1%
logindjango/contrib/auth/__init__.py:1874 ms4.1%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms2.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms2.0%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms2.0%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms2.0%
QuerySet.existsdjango/db/models/query.py:13372 ms2.0%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.0%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.0%
Model.deletedjango/db/models/base.py:12982 ms2.0%
Collector.deletedjango/db/models/deletion.py:4522 ms2.0%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms2.0%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
logindjango/contrib/auth/__init__.py:1752 ms2.0%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.getdjango/db/models/query.py:6352 ms2.0%
QuerySet.__len__django/db/models/query.py:3722 ms2.0%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.0%
ModelIterable.__iter__django/db/models/query.py:952 ms2.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.0%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.0%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.0%
ClientMixin._logindjango/test/client.py:8762 ms2.0%
ClientMixin.sessiondjango/test/client.py:8122 ms2.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms2.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.0%
Atomic.__enter__django/db/transaction.py:2112 ms2.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.0%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.0%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
TestData.__get__django/test/testcases.py:13672 ms2.0%
deepcopy<stdlib>/copy.py:1562 ms2.0%
_reconstruct<stdlib>/copy.py:2472 ms2.0%
TestProjectTestPage.test_project_test_page_with_durationsapps/projects/tests.py:439 session=Session.objects.create(project=self.project, run=run, ingest=ingest),2 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.createdjango/db/models/query.py:6692 ms2.0%
Model.savedjango/db/models/base.py:8742 ms2.0%
Model.save_basedjango/db/models/base.py:9662 ms2.0%
Model._save_tabledjango/db/models/base.py:11672 ms2.0%
Model._do_insertdjango/db/models/base.py:12182 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet._insertdjango/db/models/query.py:19182 ms2.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
TestProjectTestPage.test_project_test_page_with_durationsapps/projects/tests.py:436 TestRun.objects.create(2 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.createdjango/db/models/query.py:6692 ms2.0%
Model.savedjango/db/models/base.py:8742 ms2.0%
Model.save_basedjango/db/models/base.py:9662 ms2.0%
Model._save_tabledjango/db/models/base.py:11672 ms2.0%
Model._do_insertdjango/db/models/base.py:12182 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet._insertdjango/db/models/query.py:19182 ms2.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
TestProjectTestPage.test_project_test_page_with_durationsapps/projects/tests.py:444 TestRun.objects.create(2 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet.createdjango/db/models/query.py:6692 ms2.0%
Model.savedjango/db/models/base.py:8742 ms2.0%
Model.save_basedjango/db/models/base.py:9662 ms2.0%
Model._save_tabledjango/db/models/base.py:11672 ms2.0%
Model._do_insertdjango/db/models/base.py:12182 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.0%
QuerySet._insertdjango/db/models/query.py:19182 ms2.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.0%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.0%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.0%
Cursor.executepsycopg/cursor.py:1132 ms2.0%
Connection.waitpsycopg/connection.py:4952 ms2.0%
Estimated from 49 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:460
response = self.client.get(self.url)
TestProjectTestPage.test_project_test_page_with_durations
· Libraries
|
28 ms |
|
apps/projects/tests.py:413
self.client.force_login(self.user)
TestProjectTestPage.setUp
· Database
|
9 ms |
|
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test
· Database
|
5 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
4 ms |
|
apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf
· Database
|
4 ms |
|
apps/projects/analytics.py:819
TestRun.objects.filter(test=test)
history_for_test
· Database
|
4 ms |
|
apps/projects/tests.py:439
session=Session.objects.create(project=self.project, run=run, ingest=ingest),
TestProjectTestPage.test_project_test_page_with_durations
· Database
|
2 ms |
|
apps/projects/tests.py:436
TestRun.objects.create(
TestProjectTestPage.test_project_test_page_with_durations
· Database
|
2 ms |
|
apps/projects/tests.py:444
TestRun.objects.create(
TestProjectTestPage.test_project_test_page_with_durations
· Database
|
2 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.07 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _django_db_marker 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
52 queries · 20 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
INSERT INTO "projects_session" ("project_id", "run_id", "status", "exit_status", "date_created", "date_finished", "ingest_id", "environment_id", "python_version", "platform", "cpu_count", "dirty", "changed_files", "tests_count", "failed_count", "skipped_count") VALUES (%s, %s, %s, %s, %s, %s, %s, %…
3×
INSERT INTO "projects_testrun" ("ingest_id", "test_id", "run_id", "session_id", "status", "duration", "failed", "passed", "skipped", "muted", "caplog", "capstderr", "capstdout", "longrepr", "keywords", "location", "date_run") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %…
3×
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…
Biggest pieces of work
|
call test body
apps/projects/tests.py:460
|
60 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
16 ms |
|
call setUp
apps/projects/tests.py:413
|
9 ms |
|
setup __init__
__init__:-1
|
0.76 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 | 86 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 49 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 78 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 69 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 92 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 51 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 86 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 85 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 87 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 91 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 53 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 84 ms | Profile |