Tests / apps/projects/tests.py
ProjectPagesTest::test_dashboard_without_profiles
First seen 9 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
90 ms
median 96 ms
max 114 ms
max 114 ms
Phases
Setup 0.74 ms
Call 90 ms
Teardown 0.17 ms
Categories
Database 62 ms
App code 0.80 ms
Factories 0.34 ms
Other (Libraries, Templates, Unsampled, pytest, ...) 28 ms
65 database queries per run
Needs 0 KB of memory (max 0 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 2 hours ago ·
open run
setup0.89 ms0.9%
CallInfo.from_call_pytest/runner.py:3530.89 ms0.9%
call_and_report.<locals>.<lambda>_pytest/runner.py:2450.89 ms0.9%
HookCaller.__call__pluggy/_hooks.py:5120.89 ms0.9%
PluginManager._hookexecpluggy/_manager.py:1200.89 ms0.9%
_multicallpluggy/_callers.py:1210.89 ms0.9%
pytest_runtest_setup_pytest/runner.py:1650.89 ms0.9%
SetupState.setup_pytest/runner.py:5230.89 ms0.9%
TestCaseFunction.setup_pytest/unittest.py:2270.89 ms0.9%
Function.setup_pytest/python.py:17230.89 ms0.9%
TopRequest._fillfixtures_pytest/fixtures.py:7070.89 ms0.9%
FixtureRequest.getfixturevalue_pytest/fixtures.py:5390.89 ms0.9%
FixtureRequest._get_active_fixturedef_pytest/fixtures.py:6270.89 ms0.9%
call95 ms98.9%
CallInfo.from_call_pytest/runner.py:35395 ms98.9%
call_and_report.<locals>.<lambda>_pytest/runner.py:24595 ms98.9%
HookCaller.__call__pluggy/_hooks.py:51295 ms98.9%
PluginManager._hookexecpluggy/_manager.py:12095 ms98.9%
_multicallpluggy/_callers.py:12195 ms98.9%
pytest_runtest_call_pytest/runner.py:17995 ms98.9%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57395 ms98.9%
SimpleTestCase.__call__django/test/testcases.py:31395 ms98.9%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36887 ms91.1%
TestCase.__call__<stdlib>/unittest/case.py:74787 ms91.1%
TestCase.run<stdlib>/unittest/case.py:69176 ms79.5%
TestCase._callTestMethod<stdlib>/unittest/case.py:63776 ms79.5%
ProjectPagesTest.test_dashboard_without_profilesapps/projects/tests.py:1006 response = self.client.get(project.url("project_dashboard"))65 ms67.9%
Client.getdjango/test/client.py:112465 ms67.9%
RequestFactory.getdjango/test/client.py:47565 ms67.9%
RequestFactory.genericdjango/test/client.py:67165 ms67.9%
Client.requestdjango/test/client.py:108265 ms67.9%
ClientHandler.__call__django/test/client.py:18648 ms50.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14148 ms50.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms50.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13048 ms50.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms50.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30948 ms50.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms50.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12348 ms50.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5548 ms50.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30945 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3445 ms46.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5545 ms46.5%
BaseHandler._get_responsedjango/core/handlers/base.py:19845 ms46.5%
project_dashboardapps/projects/urls.py:1429 ms9.7%
flaky_reportapps/projects/flakiness.py:2537 ms7.8%
compute_flaky_reportapps/projects/flakiness.py:2686 ms5.8%
failing_test_idsapps/projects/flakiness.py:203 TestRun.objects.filter(2 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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:15282 ms1.9%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.9%
Query.build_filterdjango/db/models/sql/query.py:15282 ms1.9%
failing_test_idsapps/projects/flakiness.py:202 ids = set(2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
failing_test_idsapps/projects/flakiness.py:212 ids |= set(2 ms1.9%
QuerySet.__iter__django/db/models/query.py:3902 ms1.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.9%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
compute_flaky_reportapps/projects/flakiness.py:2722 ms1.9%
observations_forapps/projects/flakiness.py:163 .values_list("test_id", "date_run", "status", "failed", "session_id")2 ms1.9%
QuerySet.values_listdjango/db/models/query.py:14582 ms1.9%
QuerySet._valuesdjango/db/models/query.py:14002 ms1.9%
QuerySet._chaindjango/db/models/query.py:19732 ms1.9%
QuerySet._clonedjango/db/models/query.py:19862 ms1.9%
Query.chaindjango/db/models/sql/query.py:4332 ms1.9%
Query.clonedjango/db/models/sql/query.py:4252 ms1.9%
flaky_reportapps/projects/flakiness.py:2502 ms1.9%
data_versionapps/projects/flakiness.py:229 profile = Profile.objects.filter(project=project).aggregate(latest=Max("date_processed"))["latest"]2 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.filterdjango/db/models/query.py:15422 ms1.9%
QuerySet._filter_or_excludedjango/db/models/query.py:15552 ms1.9%
project_dashboardapps/projects/urls.py:1549 ms9.7%
overviewapps/projects/analytics.py:291 stats = profiles.aggregate(2 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
overviewapps/projects/analytics.py:300 ).aggregate(wall=Avg("duration"), test_time=Avg("test_time"))2 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: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%
overviewapps/projects/analytics.py:3022 ms1.9%
result_countsapps/projects/analytics.py:2832 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: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%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms1.9%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms1.9%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms1.9%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms1.9%
overviewapps/projects/analytics.py:3182 ms1.9%
QuerySet.countdjango/db/models/query.py:6102 ms1.9%
Query.get_countdjango/db/models/sql/query.py:6512 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
overviewapps/projects/analytics.py:324 "environments": len({p.environment_id for p in profiles.only("environment_id")}),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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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_dashboardapps/projects/urls.py:1356 ms5.8%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms3.9%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))2 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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:15512 ms1.9%
org_shellapps/orgs/views.py:422 ms1.9%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()2 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.9%
QuerySet.filterdjango/db/models/query.py:15412 ms1.9%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:20742 ms1.9%
QuerySet.querydjango/db/models/query.py:3062 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:15992 ms1.9%
Query.trim_joinsdjango/db/models/sql/query.py:20122 ms1.9%
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%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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:15882 ms1.9%
project_dashboardapps/projects/urls.py:1324 ms3.9%
find_projectapps/projects/urls.py:49 project = get_object_or_404(4 ms3.9%
get_object_or_404django/shortcuts.py:904 ms3.9%
QuerySet.getdjango/db/models/query.py:6354 ms3.9%
QuerySet.__len__django/db/models/query.py:3724 ms3.9%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.9%
ModelIterable.__iter__django/db/models/query.py:952 ms1.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms1.9%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
DatabaseWrapper.create_cursordjango/db/backends/postgresql/base.py:4302 ms1.9%
Connection.cursorpsycopg/connection.py:2592 ms1.9%
ModelIterable.__iter__django/db/models/query.py:1272 ms1.9%
get_related_populatorsdjango/db/models/query.py:27802 ms1.9%
__init____init__:-12 ms1.9%
RelatedPopulator.__init__django/db/models/query.py:27552 ms1.9%
project_dashboardapps/projects/urls.py:136 has_profiles = Profile.objects.filter(project=project).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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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_dashboardapps/projects/urls.py:137 if not has_profiles and not Run.objects.filter(project=project).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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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_dashboardapps/projects/urls.py:1402 ms1.9%
filtersapps/projects/urls.py:80 environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms1.9%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms1.9%
normalize_sqlflakytest/profiling/dbtrack.py:232 ms1.9%
project_dashboardapps/projects/urls.py:1442 ms1.9%
ci_vs_localapps/projects/analytics.py:735 local = list(Environment.objects.filter(project=project, kind=Environment.Kind.LOCAL))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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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_dashboardapps/projects/urls.py:1452 ms1.9%
category_breakdownapps/projects/analytics.py:3582 ms1.9%
Scope.scoped_environmentsapps/projects/analytics.py:185 return list(Environment.objects.filter(project=self.project))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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms1.9%
project_dashboardapps/projects/urls.py:1562 ms1.9%
suite_trendapps/projects/analytics.py:338 for env_id, name, kind, started_at, duration, test_time, number in rows: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:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms1.9%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms1.9%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.9%
Join.as_sqldjango/db/models/sql/datastructures.py:1312 ms1.9%
project_dashboardapps/projects/urls.py:1642 ms1.9%
memory_testsapps/projects/analytics.py:518 scope.perf()2 ms1.9%
Scope.perfapps/projects/analytics.py:1672 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 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:16052 ms1.9%
project_dashboardapps/projects/urls.py:1652 ms1.9%
fix_nextapps/projects/analytics.py:5442 ms1.9%
latest_profilesapps/projects/analytics.py:2632 ms1.9%
Scope.scoped_environmentsapps/projects/analytics.py:185 return list(Environment.objects.filter(project=self.project))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:16112 ms1.9%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.9%
project_dashboardapps/projects/urls.py:173 return render(request, "project_dashboard.html", context)2 ms1.9%
renderdjango/shortcuts.py:252 ms1.9%
render_to_stringdjango/template/loader.py:622 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%
StaticNode.renderdjango/templatetags/static.py:1162 ms1.9%
StaticNode.urldjango/templatetags/static.py:1132 ms1.9%
StaticNode.handle_simpledjango/templatetags/static.py:1292 ms1.9%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms1.9%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms1.9%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms1.9%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms1.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3114 ms3.9%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:594 ms3.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms1.9%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1022 ms1.9%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1262 ms1.9%
dumpsdjango/core/signing.py:1512 ms1.9%
Signer.sign_objectdjango/core/signing.py:2262 ms1.9%
JSONSerializer.dumpsdjango/core/signing.py:1262 ms1.9%
dumps<stdlib>/json/__init__.py:2412 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: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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
ClientHandler.__call__django/test/client.py:17317 ms17.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6217 ms17.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10417 ms17.4%
WhiteNoise.add_fileswhitenoise/base.py:10817 ms17.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12013 ms13.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13113 ms13.6%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms9.7%
StaticFile.__init__whitenoise/responders.py:774 ms3.9%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms1.9%
__init____init__:-12 ms1.9%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms1.9%
StaticFile.__init__whitenoise/responders.py:732 ms1.9%
StaticFile.get_headerswhitenoise/responders.py:1782 ms1.9%
StaticFile.__init__whitenoise/responders.py:722 ms1.9%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.9%
__init____init__:-12 ms1.9%
FileEntry.__init__whitenoise/responders.py:2632 ms1.9%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms1.9%
<GC>~2 ms1.9%
StaticFile.__init__whitenoise/responders.py:742 ms1.9%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms1.9%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms1.9%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms1.9%
WhiteNoise.get_static_filewhitenoise/base.py:2022 ms1.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms3.9%
scantreewhitenoise/base.py:2612 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2622 ms1.9%
scantreewhitenoise/base.py:2642 ms1.9%
ProjectPagesTest.test_dashboard_without_profilesapps/projects/tests.py:1002 project = baker.make(Project)4 ms3.9%
makemodel_bakery/baker.py:1474 ms3.9%
Baker.makemodel_bakery/baker.py:4064 ms3.9%
Baker._makemodel_bakery/baker.py:4422 ms1.9%
Baker.get_fieldsmodel_bakery/baker.py:4242 ms1.9%
ForeignObjectRel.__hash__django/db/models/fields/reverse_related.py:1582 ms1.9%
ManyToOneRel.identitydjango/db/models/fields/reverse_related.py:2942 ms1.9%
Baker._makemodel_bakery/baker.py:4822 ms1.9%
Baker.instancemodel_bakery/baker.py:5352 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:10672 ms1.9%
Model._is_pk_setdjango/db/models/base.py:6892 ms1.9%
ProjectPagesTest.test_dashboard_without_profilesapps/projects/tests.py:10034 ms3.9%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(4 ms3.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.9%
QuerySet.get_or_createdjango/db/models/query.py:9872 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:16222 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.9%
QuerySet.createdjango/db/models/query.py:6692 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
ProjectPagesTest.test_dashboard_without_profilesapps/projects/tests.py:1004 ingest = baker.make("api.Ingest", project=project, data={})2 ms1.9%
makemodel_bakery/baker.py:1472 ms1.9%
Baker.makemodel_bakery/baker.py:4062 ms1.9%
Baker._makemodel_bakery/baker.py:4822 ms1.9%
Baker.instancemodel_bakery/baker.py:5352 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
ProjectPagesTest.test_dashboard_without_profilesapps/projects/tests.py:10052 ms1.9%
makemodel_bakery/baker.py:1472 ms1.9%
Baker.makemodel_bakery/baker.py:4062 ms1.9%
Baker._makemodel_bakery/baker.py:4822 ms1.9%
Baker.instancemodel_bakery/baker.py:5352 ms1.9%
Run.saveapps/projects/models.py:188 super().save(*args, **kwargs)2 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
TestCase.run<stdlib>/unittest/case.py:68711 ms11.6%
TestCase._callSetUp<stdlib>/unittest/case.py:63411 ms11.6%
ProjectPagesTest.setUpapps/projects/tests.py:953 self.client.force_login(self.user)11 ms11.6%
ClientMixin.force_logindjango/test/client.py:85511 ms11.6%
ClientMixin._logindjango/test/client.py:8817 ms7.8%
logindjango/contrib/auth/__init__.py:1874 ms3.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%
SQLInsertCompiler.as_sql.<locals>.<genexpr>django/db/models/sql/compiler.py:19052 ms1.9%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms1.9%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 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%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
logindjango/contrib/auth/__init__.py:1732 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:11882 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%
ClientMixin._logindjango/test/client.py:8762 ms1.9%
ClientMixin.sessiondjango/test/client.py:8122 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms1.9%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms1.9%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms1.9%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1002 ms1.9%
Model.__init__django/db/models/base.py:5162 ms1.9%
ClientMixin._logindjango/test/client.py:8832 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: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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3717 ms7.8%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()7 ms7.8%
TestCase._fixture_teardowndjango/test/testcases.py:14956 ms5.8%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4836 ms5.8%
CursorWrapper.executedjango/db/backends/utils.py:796 ms5.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:926 ms5.8%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1006 ms5.8%
CursorWrapper._executedjango/db/backends/utils.py:1036 ms5.8%
Cursor.executepsycopg/cursor.py:1136 ms5.8%
Connection.waitpsycopg/connection.py:4956 ms5.8%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms1.9%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms1.9%
Atomic.__exit__django/db/transaction.py:2832 ms1.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.9%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4132 ms1.9%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3712 ms1.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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 52 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/projects/tests.py:1006
response = self.client.get(project.url("project_dashboard"))
ProjectPagesTest.test_dashboard_without_profiles
· Libraries
|
20 ms |
|
apps/projects/tests.py:953
self.client.force_login(self.user)
ProjectPagesTest.setUp
· Database
|
11 ms |
|
apps/projects/tests.py:1002
project = baker.make(Project)
ProjectPagesTest.test_dashboard_without_profiles
· Database
|
4 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
4 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
4 ms |
|
apps/projects/analytics.py:185
return list(Environment.objects.filter(project=self.project))
Scope.scoped_environments
· Database
|
4 ms |
|
apps/projects/tests.py:1004
ingest = baker.make("api.Ingest", project=project, data={})
ProjectPagesTest.test_dashboard_without_profiles
· Database
|
2 ms |
|
apps/projects/models.py:188
super().save(*args, **kwargs)
Run.save
· 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 |
|
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.11 ms |
| _dj_autoclear_mailbox function | 0.06 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.03 ms |
Database
65 queries · 25 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
7×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
Biggest pieces of work
|
call test body
apps/projects/tests.py:1002
|
76 ms |
|
call setUp
apps/projects/tests.py:953
|
11 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
7 ms |
| setup pytest internals | 0.89 ms |
Reliability
5 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 5 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 2 hours ago | CI github-actions:test | passed | 96 ms | Profile |
| 2 hours ago | CI github-actions:test | passed | 94 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 114 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 52 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 97 ms | Profile |