CI
github-actions:test
5 runs
Average
59 ms
median 60 ms
max 63 ms
max 63 ms
Phases
Setup 0.70 ms
Call 58 ms
Teardown 0.19 ms
Categories
Database 22 ms
Other (Libraries, Imports, Logging, Unsampled, ...) 36 ms
32 database queries per run
Needs 426 KB of memory (max 752 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 19 minutes ago ·
open run
setup0.82 ms1.3%
__init____init__:-10.82 ms1.3%
signature<stdlib>/inspect.py:33400.82 ms1.3%
Signature.from_callable<stdlib>/inspect.py:30550.82 ms1.3%
_signature_from_callable<stdlib>/inspect.py:25250.82 ms1.3%
_signature_from_function<stdlib>/inspect.py:23830.82 ms1.3%
call61 ms98.4%
AccessTest.test_others_dontapps/orgs/tests.py:70 self.assertEqual(self.client.get(self.project.url()).status_code, 404)40 ms64.7%
Client.getdjango/test/client.py:112440 ms64.7%
RequestFactory.getdjango/test/client.py:47540 ms64.7%
RequestFactory.genericdjango/test/client.py:67140 ms64.7%
Client.requestdjango/test/client.py:108240 ms64.7%
ClientHandler.__call__django/test/client.py:17331 ms50.6%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6231 ms50.6%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10431 ms50.6%
WhiteNoise.add_fileswhitenoise/base.py:10831 ms50.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12026 ms42.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13126 ms42.2%
WhiteNoise.get_static_filewhitenoise/base.py:20823 ms36.6%
StaticFile.__init__whitenoise/responders.py:7210 ms16.9%
StaticFile.get_file_statswhitenoise/responders.py:16310 ms16.9%
<GC>~10 ms16.9%
StaticFile.__init__whitenoise/responders.py:737 ms11.2%
StaticFile.get_headerswhitenoise/responders.py:1673 ms5.6%
StaticFile.get_headerswhitenoise/responders.py:1712 ms2.8%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.8%
formatdate<stdlib>/email/utils.py:2662 ms2.8%
StaticFile.__init__whitenoise/responders.py:772 ms2.8%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms2.8%
StaticFile.__init__whitenoise/responders.py:762 ms2.8%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.8%
StaticFile.__init__whitenoise/responders.py:742 ms2.8%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.8%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms2.8%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms2.8%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms2.8%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms2.8%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.8%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.8%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1782 ms2.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1155 ms8.4%
scantreewhitenoise/base.py:2623 ms5.6%
scantreewhitenoise/base.py:2623 ms5.6%
scantreewhitenoise/base.py:2643 ms5.6%
ClientHandler.__call__django/test/client.py:1869 ms14.1%
BaseHandler.get_responsedjango/core/handlers/base.py:1419 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1309 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1239 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms14.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:349 ms14.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:555 ms8.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1985 ms8.4%
project_dashboardapps/projects/urls.py:1325 ms8.4%
find_projectapps/projects/urls.py:523 ms5.6%
can_viewapps/projects/urls.py:333 ms5.6%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:2 ms2.8%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms2.8%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms2.8%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms2.8%
get_userdjango/contrib/auth/middleware.py:202 ms2.8%
get_userdjango/contrib/auth/__init__.py:3182 ms2.8%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.8%
Col.as_sqldjango/db/models/expressions.py:13252 ms2.8%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms2.8%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms2.8%
QuerySet.existsdjango/db/models/query.py:13372 ms2.8%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms2.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.8%
find_projectapps/projects/urls.py:49 project = get_object_or_404(2 ms2.8%
get_object_or_404django/shortcuts.py:902 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms2.8%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:12812 ms2.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:573 ms5.6%
response_for_exceptiondjango/core/handlers/exception.py:683 ms5.6%
get_exception_responsedjango/core/handlers/exception.py:1643 ms5.6%
URLResolver.resolve_error_handlerdjango/urls/resolvers.py:7473 ms5.6%
_handle_fromlist<frozen importlib._bootstrap>:14183 ms5.6%
_call_with_frames_removed<frozen importlib._bootstrap>:5493 ms5.6%
_find_and_load<frozen importlib._bootstrap>:13503 ms5.6%
_find_and_load_unlocked<frozen importlib._bootstrap>:13093 ms5.6%
_load_unlocked<frozen importlib._bootstrap>:9153 ms5.6%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7432 ms2.8%
SourceLoader.get_code<frozen importlib._bootstrap_external>:8902 ms2.8%
SourceFileLoader._cache_bytecode<frozen importlib._bootstrap_external>:9462 ms2.8%
SourceFileLoader.set_data<frozen importlib._bootstrap_external>:9602 ms2.8%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7472 ms2.8%
_call_with_frames_removed<frozen importlib._bootstrap>:5492 ms2.8%
<module>django/conf/urls/__init__.py:22 ms2.8%
_handle_fromlist<frozen importlib._bootstrap>:14182 ms2.8%
_call_with_frames_removed<frozen importlib._bootstrap>:5492 ms2.8%
_find_and_load<frozen importlib._bootstrap>:13502 ms2.8%
_find_and_load_unlocked<frozen importlib._bootstrap>:13092 ms2.8%
_load_unlocked<frozen importlib._bootstrap>:9152 ms2.8%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7432 ms2.8%
SourceLoader.get_code<frozen importlib._bootstrap_external>:8902 ms2.8%
SourceFileLoader._cache_bytecode<frozen importlib._bootstrap_external>:9462 ms2.8%
SourceFileLoader.set_data<frozen importlib._bootstrap_external>:9712 ms2.8%
_write_atomic<frozen importlib._bootstrap_external>:2062 ms2.8%
AccessTest.test_others_dontapps/orgs/tests.py:69 self.client.force_login(self.stranger)7 ms11.2%
ClientMixin.force_logindjango/test/client.py:8557 ms11.2%
ClientMixin._logindjango/test/client.py:8763 ms5.6%
ClientMixin.sessiondjango/test/client.py:8123 ms5.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms5.6%
SessionStore.createdjango/contrib/sessions/backends/db.py:743 ms5.6%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms2.8%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1022 ms2.8%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1262 ms2.8%
dumpsdjango/core/signing.py:1512 ms2.8%
Signer.sign_objectdjango/core/signing.py:2392 ms2.8%
TimestampSigner.signdjango/core/signing.py:2612 ms2.8%
Signer.signdjango/core/signing.py:2052 ms2.8%
Signer.signaturedjango/core/signing.py:2022 ms2.8%
base64_hmacdjango/core/signing.py:1012 ms2.8%
salted_hmacdjango/utils/crypto.py:452 ms2.8%
new<stdlib>/hmac.py:2302 ms2.8%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.8%
Atomic.__exit__django/db/transaction.py:2472 ms2.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.8%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.8%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
ClientMixin._logindjango/test/client.py:8812 ms2.8%
logindjango/contrib/auth/__init__.py:1872 ms2.8%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.8%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
ClientMixin._logindjango/test/client.py:8832 ms2.8%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.8%
Model.savedjango/db/models/base.py:8742 ms2.8%
Model.save_basedjango/db/models/base.py:9662 ms2.8%
Model._save_tabledjango/db/models/base.py:11102 ms2.8%
Model._do_updatedjango/db/models/base.py:11882 ms2.8%
QuerySet.filterdjango/db/models/query.py:15422 ms2.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.8%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.8%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.8%
AccessTest.test_others_dontapps/orgs/tests.py:72 self.assertEqual(self.client.get(reverse("org_members", args=["acme"])).status_code, 404)7 ms11.2%
Client.getdjango/test/client.py:11247 ms11.2%
RequestFactory.getdjango/test/client.py:4757 ms11.2%
RequestFactory.genericdjango/test/client.py:6717 ms11.2%
Client.requestdjango/test/client.py:10827 ms11.2%
ClientHandler.__call__django/test/client.py:1867 ms11.2%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:347 ms11.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.2%
BaseHandler._get_responsedjango/core/handlers/base.py:1987 ms11.2%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:563 ms5.6%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:793 ms5.6%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms5.6%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms5.6%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:403 ms5.6%
get_userdjango/contrib/auth/middleware.py:203 ms5.6%
get_userdjango/contrib/auth/__init__.py:3112 ms2.8%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms2.8%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms2.8%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms2.8%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms2.8%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.8%
QuerySet.getdjango/db/models/query.py:6252 ms2.8%
QuerySet.filterdjango/db/models/query.py:15422 ms2.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.8%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.8%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.8%
get_userdjango/contrib/auth/__init__.py:3182 ms2.8%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms2.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms2.8%
Col.as_sqldjango/db/models/expressions.py:13252 ms2.8%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms2.8%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5702 ms2.8%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:593 ms5.6%
org_membersapps/orgs/views.py:1703 ms5.6%
member_organizationapps/orgs/views.py:59 organization = get_object_or_404(Organization, slug=org_slug)2 ms2.8%
get_object_or_404django/shortcuts.py:902 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
member_organizationapps/orgs/views.py:622 ms2.8%
Organization.is_memberapps/orgs/models.py:62 return user.is_authenticated and self.membership_set.filter(user=user).exists()2 ms2.8%
QuerySet.existsdjango/db/models/query.py:13372 ms2.8%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
AccessTest.test_others_dontapps/orgs/tests.py:713 ms5.6%
Client.getdjango/test/client.py:11243 ms5.6%
RequestFactory.getdjango/test/client.py:4753 ms5.6%
RequestFactory.genericdjango/test/client.py:6713 ms5.6%
Client.requestdjango/test/client.py:10823 ms5.6%
ClientHandler.__call__django/test/client.py:1863 ms5.6%
BaseHandler.get_responsedjango/core/handlers/base.py:1413 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1303 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1233 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3093 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:343 ms5.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:553 ms5.6%
BaseHandler._get_responsedjango/core/handlers/base.py:1983 ms5.6%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:593 ms5.6%
org_projectsapps/orgs/views.py:843 ms5.6%
member_organizationapps/orgs/views.py:59 organization = get_object_or_404(Organization, slug=org_slug)2 ms2.8%
get_object_or_404django/shortcuts.py:902 ms2.8%
QuerySet.getdjango/db/models/query.py:6352 ms2.8%
QuerySet.__len__django/db/models/query.py:3722 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.8%
ModelIterable.__iter__django/db/models/query.py:952 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.8%
member_organizationapps/orgs/views.py:622 ms2.8%
Organization.is_memberapps/orgs/models.py:62 return user.is_authenticated and self.membership_set.filter(user=user).exists()2 ms2.8%
QuerySet.existsdjango/db/models/query.py:13372 ms2.8%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms2.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms2.8%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms2.8%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms2.8%
Atomic.__enter__django/db/transaction.py:2112 ms2.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.8%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.8%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.8%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms2.8%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms2.8%
Atomic.__exit__django/db/transaction.py:2862 ms2.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.8%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.8%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.8%
Cursor.executepsycopg/cursor.py:1132 ms2.8%
Connection.waitpsycopg/connection.py:4952 ms2.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.8%
Estimated from 36 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/orgs/tests.py:70
self.assertEqual(self.client.get(self.project.url()).status_code, 404)
AccessTest.test_others_dont
· Libraries
|
35 ms |
|
apps/orgs/tests.py:69
self.client.force_login(self.stranger)
AccessTest.test_others_dont
· Database
|
7 ms |
|
apps/orgs/views.py:59
organization = get_object_or_404(Organization, slug=org_slug)
member_organization
· Database
|
3 ms |
|
apps/orgs/models.py:62
return user.is_authenticated and self.membership_set.filter(user=user).exists()
Organization.is_member
· Database
|
3 ms |
|
apps/orgs/tests.py:72
self.assertEqual(self.client.get(reverse("org_members", args=["acme"])).status_code, 404)
AccessTest.test_others_dont
· Database
|
3 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
2 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
2 ms |
|
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project
· Database
|
2 ms |
Fixtures
Exact setup time| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
32 queries · 10 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > %s AND "django_session"."session_key" = %s) LIMIT ?
3×
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "a…
3×
SELECT %s AS "a" FROM "orgs_membership" WHERE ("orgs_membership"."organization_id" = %s AND "orgs_membership"."user_id" = %s) LIMIT ?
Biggest pieces of work
|
call test body
apps/orgs/tests.py:70
|
57 ms |
|
call _pre_setup
django/test/testcases.py:1164
|
2 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
|
setup __init__
__init__:-1
|
0.82 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 | |
|---|---|---|---|---|
| 19 minutes ago | CI github-actions:test | passed | 62 ms | Profile |
| 44 minutes ago | CI github-actions:test | passed | 60 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 63 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 51 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 59 ms | Profile |