CI
github-actions:test
12 runs
Average
62 ms
median 69 ms
max 78 ms
max 78 ms
Phases
Setup 10 ms
Call 53 ms
Teardown 0.18 ms
Categories
Database 42 ms
Other (Libraries, pytest, Unsampled, Imports) 20 ms
35 database queries per run
Needs 18 KB of memory (max 88 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup9 ms13.3%
TestCase.setUpClassdjango/test/testcases.py:1423 cls.cls_atomics = cls._enter_atomics()9 ms13.3%
TestCase._enter_atomicsdjango/test/testcases.py:13969 ms13.3%
Atomic.__enter__django/db/transaction.py:1989 ms13.3%
BaseDatabaseWrapper.get_autocommitdjango/db/backends/base/base.py:4549 ms13.3%
SimpleTestCase.ensure_connection_patch_method.<locals>.patched_ensure_connectiondjango/test/testcases.py:3039 ms13.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms13.3%
BaseDatabaseWrapper.ensure_connectiondjango/db/backends/base/base.py:2799 ms13.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:269 ms13.3%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2568 ms11.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:268 ms11.9%
DatabaseWrapper.get_new_connectiondjango/db/backends/postgresql/base.py:3338 ms11.9%
Connection.connectpsycopg/connection.py:1098 ms11.9%
wait_connpsycopg/waiting.py:1414 ms5.3%
EpollSelector.select<stdlib>/selectors.py:4524 ms5.3%
wait_connpsycopg/waiting.py:1453 ms4.0%
BaseConnection._connect_genpsycopg/_connection_base.py:4393 ms4.0%
wait_connpsycopg/waiting.py:1360.92 ms1.3%
BaseConnection._connect_genpsycopg/_connection_base.py:4390.92 ms1.3%
wait_connpsycopg/waiting.py:1370.92 ms1.3%
BaseDatabaseWrapper.connectdjango/db/backends/base/base.py:2580.92 ms1.3%
DatabaseWrapper.init_connection_statedjango/db/backends/postgresql/base.py:4020.92 ms1.3%
DatabaseWrapper._configure_connectiondjango/db/backends/postgresql/base.py:3740.92 ms1.3%
DatabaseWrapper._configure_timezonedjango/db/backends/postgresql/base.py:3570.92 ms1.3%
Cursor.executepsycopg/cursor.py:1130.92 ms1.3%
Connection.waitpsycopg/connection.py:4950.92 ms1.3%
call60 ms86.5%
TestProjectsHome.test_user_logged_inft/tests.py:42 response = self.client.get(reverse("projects"))41 ms58.4%
Client.getdjango/test/client.py:112441 ms58.4%
RequestFactory.getdjango/test/client.py:47541 ms58.4%
RequestFactory.genericdjango/test/client.py:67141 ms58.4%
Client.requestdjango/test/client.py:108241 ms58.4%
ClientHandler.__call__django/test/client.py:18632 ms45.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14132 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13032 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12332 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30932 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3432 ms45.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5532 ms45.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19832 ms45.4%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:5624 ms34.6%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:7924 ms34.6%
new_method_proxy.<locals>.innerdjango/utils/functional.py:25124 ms34.6%
SimpleLazyObject._setupdjango/utils/functional.py:40424 ms34.6%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:4024 ms34.6%
get_userdjango/contrib/auth/middleware.py:2024 ms34.6%
get_userdjango/contrib/auth/__init__.py:31123 ms32.4%
_get_user_session_keydjango/contrib/auth/__init__.py:9523 ms32.4%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:5523 ms32.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:25123 ms32.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:5523 ms32.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:3423 ms32.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8723 ms32.4%
QuerySet.getdjango/db/models/query.py:63523 ms32.4%
QuerySet.__len__django/db/models/query.py:37223 ms32.4%
QuerySet._fetch_alldjango/db/models/query.py:200023 ms32.4%
ModelIterable.__iter__django/db/models/query.py:9523 ms32.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162421 ms30.3%
CursorWrapper.executedjango/db/backends/utils.py:7921 ms30.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9221 ms30.3%
CursorWrapper._executedjango/db/backends/utils.py:10521 ms30.3%
Cursor.executepsycopg/cursor.py:11321 ms30.3%
Connection.waitpsycopg/connection.py:49521 ms30.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:20621 ms30.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28621 ms30.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7821 ms30.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms2.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.2%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms2.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.2%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms2.2%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms2.2%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms2.2%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms2.2%
BaseExpression.copydjango/db/models/expressions.py:4442 ms2.2%
copy<stdlib>/copy.py:1002 ms2.2%
_reconstruct<stdlib>/copy.py:2632 ms2.2%
get_userdjango/contrib/auth/__init__.py:3182 ms2.2%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:922 ms2.2%
Query.get_compilerdjango/db/models/sql/query.py:3692 ms2.2%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:598 ms10.8%
homeapps/orgs/views.py:723 ms4.3%
current_organizationapps/orgs/views.py:54 return ensure_organization(request.user)3 ms4.3%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()3 ms4.3%
QuerySet.firstdjango/db/models/query.py:11453 ms4.3%
QuerySet.__iter__django/db/models/query.py:3903 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms4.3%
ModelIterable.__iter__django/db/models/query.py:953 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.2%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.2%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.2%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
homeapps/orgs/views.py:74 if not projects.exists():2 ms2.2%
QuerySet.existsdjango/db/models/query.py:13372 ms2.2%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
homeapps/orgs/views.py:77 if in_organization.count() == 1:2 ms2.2%
QuerySet.countdjango/db/models/query.py:6102 ms2.2%
Query.get_countdjango/db/models/sql/query.py:6512 ms2.2%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
homeapps/orgs/views.py:78 return redirect(in_organization.select_related("organization").get().url())2 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ClientHandler.__call__django/test/client.py:1739 ms13.0%
BaseHandler.load_middlewaredjango/core/handlers/base.py:629 ms13.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1049 ms13.0%
WhiteNoise.add_fileswhitenoise/base.py:1089 ms13.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1206 ms8.6%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:1315 ms6.5%
WhiteNoise.get_static_filewhitenoise/base.py:2085 ms6.5%
StaticFile.__init__whitenoise/responders.py:762 ms2.2%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.2%
<GC>~2 ms2.2%
StaticFile.__init__whitenoise/responders.py:772 ms2.2%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1153 ms4.3%
scantreewhitenoise/base.py:2623 ms4.3%
scantreewhitenoise/base.py:2623 ms4.3%
scantreewhitenoise/base.py:2623 ms4.3%
scantreewhitenoise/base.py:2622 ms2.2%
TestProjectsHome.test_user_logged_inft/tests.py:39 self.client.force_login(user)9 ms13.0%
ClientMixin.force_logindjango/test/client.py:8559 ms13.0%
ClientMixin._logindjango/test/client.py:8815 ms6.5%
logindjango/contrib/auth/__init__.py:1873 ms4.3%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4342 ms2.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms2.2%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1022 ms2.2%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1262 ms2.2%
dumpsdjango/core/signing.py:1512 ms2.2%
Signer.sign_objectdjango/core/signing.py:2392 ms2.2%
TimestampSigner.signdjango/core/signing.py:2612 ms2.2%
Signer.signdjango/core/signing.py:2052 ms2.2%
Signer.signaturedjango/core/signing.py:2022 ms2.2%
base64_hmacdjango/core/signing.py:1002 ms2.2%
b64_encodedjango/core/signing.py:912 ms2.2%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.2%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.2%
Model.deletedjango/db/models/base.py:12982 ms2.2%
Collector.deletedjango/db/models/deletion.py:4522 ms2.2%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:432 ms2.2%
DeleteQuery.do_querydjango/db/models/sql/subqueries.py:252 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
logindjango/contrib/auth/__init__.py:1752 ms2.2%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms2.2%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.2%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.2%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ClientMixin._logindjango/test/client.py:8763 ms4.3%
ClientMixin.sessiondjango/test/client.py:8123 ms4.3%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms4.3%
SessionStore.createdjango/contrib/sessions/backends/db.py:703 ms4.3%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1983 ms4.3%
SessionStore.existsdjango/contrib/sessions/backends/db.py:633 ms4.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.filterdjango/db/models/query.py:15422 ms2.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15552 ms2.2%
QuerySet._chaindjango/db/models/query.py:19732 ms2.2%
QuerySet._clonedjango/db/models/query.py:19862 ms2.2%
Query.chaindjango/db/models/sql/query.py:4332 ms2.2%
Query.clonedjango/db/models/sql/query.py:3972 ms2.2%
QuerySet.existsdjango/db/models/query.py:13372 ms2.2%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ClientMixin._logindjango/test/client.py:8832 ms2.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.2%
Atomic.__exit__django/db/transaction.py:2472 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.2%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.2%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
TestProjectsHome.test_user_logged_inft/tests.py:405 ms6.5%
make_projectapps/projects/testing.py:61 organization = Organization.objects.create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11562 ms2.2%
make_projectapps/projects/testing.py:67 slug=unique_slug(name, organization.project_set.all(), fallback="project", reserved=RESERVED_PROJECT_SLUGS),2 ms2.2%
unique_slugapps/orgs/models.py:46 while slug in reserved or taken.filter(slug=slug).exists():2 ms2.2%
QuerySet.existsdjango/db/models/query.py:13372 ms2.2%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.2%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
make_projectapps/projects/testing.py:64 project = Project.objects.create(2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11672 ms2.2%
Model._do_insertdjango/db/models/base.py:12182 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
TestProjectsHome.test_user_logged_inft/tests.py:413 ms4.3%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(3 ms4.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms4.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms2.2%
QuerySet.getdjango/db/models/query.py:6352 ms2.2%
QuerySet.__len__django/db/models/query.py:3722 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.2%
ModelIterable.__iter__django/db/models/query.py:952 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms2.2%
QuerySet.createdjango/db/models/query.py:6692 ms2.2%
Model.savedjango/db/models/base.py:8742 ms2.2%
Model.save_basedjango/db/models/base.py:9662 ms2.2%
Model._save_tabledjango/db/models/base.py:11672 ms2.2%
Model._do_insertdjango/db/models/base.py:12182 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:19182 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms4.3%
TestCase._fixture_teardowndjango/test/testcases.py:14942 ms2.2%
TestCase._should_check_constraintsdjango/test/testcases.py:15032 ms2.2%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:4922 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2072 ms2.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms2.2%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms2.2%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms2.2%
Atomic.__exit__django/db/transaction.py:2862 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.2%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.2%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
Estimated from 50 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
ft/tests.py:42
response = self.client.get(reverse("projects"))
TestProjectsHome.test_user_logged_in
· Database
|
33 ms |
|
ft/tests.py:39
self.client.force_login(user)
TestProjectsHome.test_user_logged_in
· Database
|
9 ms |
|
apps/projects/testing.py:76
membership, _ = Membership.objects.get_or_create(
add_member
· Database
|
3 ms |
|
apps/orgs/models.py:126
membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()
ensure_organization
· Database
|
3 ms |
|
apps/projects/testing.py:61
organization = Organization.objects.create(
make_project
· Database
|
2 ms |
|
apps/orgs/models.py:46
while slug in reserved or taken.filter(slug=slug).exists():
unique_slug
· Database
|
2 ms |
|
apps/projects/testing.py:64
project = Project.objects.create(
make_project
· Database
|
2 ms |
|
apps/orgs/views.py:74
if not projects.exists():
home
· Database
|
2 ms |
|
apps/orgs/views.py:77
if in_organization.count() == 1:
home
· Database
|
2 ms |
|
apps/orgs/views.py:78
return redirect(in_organization.select_related("organization").get().url())
home
· Database
|
2 ms |
Fixtures
Exact setup time| _unittest_setUpClass_fixture_TestProjectsHome class | 8 ms |
| _django_setup_unittest class | 0.26 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _live_server_helper function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
35 queries · 13 msNo repeated queries.
Biggest pieces of work
|
call test body
ft/tests.py:42
|
57 ms |
|
setup setUpClass
django/test/testcases.py:1423
|
9 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 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 | 70 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 36 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 67 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 | 78 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 40 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 78 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 71 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 69 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 76 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 37 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 69 ms | Profile |