Tests / apps/api/tests.py
ProfileUploadTest::test_missing_parts_mark_the_profile_incomplete
First seen 7 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
313 ms
median 327 ms
max 383 ms
max 383 ms
Phases
Setup 0.81 ms
Call 312 ms
Teardown 0.19 ms
Categories
Database 126 ms
App code 2 ms
Other (Templates, Unsampled, Imports, Libraries, ...) 185 ms
190 database queries per run
Needs 810 KB of memory (max 1 MB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 23 minutes ago ·
open run
call310 ms99.6%
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:830 response = self.client.get(self.project.url("project_profile", profile.number))128 ms41.0%
Client.getdjango/test/client.py:1124128 ms41.0%
RequestFactory.getdjango/test/client.py:475128 ms41.0%
RequestFactory.genericdjango/test/client.py:671128 ms41.0%
Client.requestdjango/test/client.py:1082128 ms41.0%
ClientHandler.__call__django/test/client.py:186128 ms41.0%
BaseHandler.get_responsedjango/core/handlers/base.py:141128 ms41.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55128 ms41.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:130128 ms41.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55128 ms41.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309128 ms41.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55128 ms41.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:123128 ms41.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55128 ms41.0%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
MiddlewareMixin.__call__django/utils/deprecation.py:309126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:34126 ms40.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:55126 ms40.5%
BaseHandler._get_responsedjango/core/handlers/base.py:198126 ms40.5%
project_profileapps/projects/urls.py:498 return render(111 ms35.8%
renderdjango/shortcuts.py:25111 ms35.8%
render_to_stringdjango/template/loader.py:6274 ms23.8%
Template.renderdjango/template/backends/django.py:10774 ms23.8%
Template.renderdjango/template/base.py:17468 ms21.9%
instrumented_test_renderdjango/test/utils.py:11468 ms21.9%
NodeList.renderdjango/template/base.py:109168 ms21.9%
Node.render_annotateddjango/template/base.py:105268 ms21.9%
ExtendsNode.renderdjango/template/loader_tags.py:16067 ms21.5%
instrumented_test_renderdjango/test/utils.py:11467 ms21.5%
NodeList.renderdjango/template/base.py:109167 ms21.5%
Node.render_annotateddjango/template/base.py:105267 ms21.5%
ExtendsNode.renderdjango/template/loader_tags.py:16067 ms21.5%
instrumented_test_renderdjango/test/utils.py:11467 ms21.5%
NodeList.renderdjango/template/base.py:109167 ms21.5%
Node.render_annotateddjango/template/base.py:105267 ms21.5%
BlockNode.renderdjango/template/loader_tags.py:6667 ms21.5%
NodeList.renderdjango/template/base.py:109167 ms21.5%
Node.render_annotateddjango/template/base.py:105267 ms21.5%
IfNode.renderdjango/template/defaulttags.py:33355 ms17.6%
NodeList.renderdjango/template/base.py:109155 ms17.6%
Node.render_annotateddjango/template/base.py:105255 ms17.6%
SimpleNode.renderdjango/template/library.py:32549 ms15.7%
heroicon_miniheroicons/templatetags/heroicons.py:1849 ms15.7%
_render_iconheroicons/templatetags/heroicons.py:3949 ms15.7%
_render_iconheroicons/__init__.py:4549 ms15.7%
_load_iconheroicons/__init__.py:1849 ms15.7%
ZipFile.__init__<stdlib>/zipfile/__init__.py:150549 ms15.7%
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:160815 ms4.8%
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:160615 ms4.8%
search_function<stdlib>/encodings/__init__.py:964 ms1.4%
_find_and_load<frozen importlib._bootstrap>:13503 ms1.0%
_find_and_load_unlocked<frozen importlib._bootstrap>:13093 ms1.0%
_load_unlocked<frozen importlib._bootstrap>:9153 ms1.0%
1 smaller frames hidden
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:16234 ms1.4%
10 smaller frames hidden
IfNode.renderdjango/template/defaulttags.py:3336 ms1.9%
NodeList.renderdjango/template/base.py:10916 ms1.9%
Node.render_annotateddjango/template/base.py:10526 ms1.9%
SimpleNode.renderdjango/template/library.py:3256 ms1.9%
heroicon_miniheroicons/templatetags/heroicons.py:186 ms1.9%
_render_iconheroicons/templatetags/heroicons.py:396 ms1.9%
_render_iconheroicons/__init__.py:456 ms1.9%
_load_iconheroicons/__init__.py:186 ms1.9%
ZipFile.__init__<stdlib>/zipfile/__init__.py:15056 ms1.9%
ZipFile._RealGetContents<stdlib>/zipfile/__init__.py:16063 ms1.0%
2 smaller frames hidden
BlockNode.renderdjango/template/loader_tags.py:669 ms2.9%
NodeList.renderdjango/template/base.py:10919 ms2.9%
Node.render_annotateddjango/template/base.py:10529 ms2.9%
IfNode.renderdjango/template/defaulttags.py:3339 ms2.9%
NodeList.renderdjango/template/base.py:10919 ms2.9%
Node.render_annotateddjango/template/base.py:10529 ms2.9%
IfNode.renderdjango/template/defaulttags.py:3336 ms1.9%
NodeList.renderdjango/template/base.py:10916 ms1.9%
Node.render_annotateddjango/template/base.py:10526 ms1.9%
SimpleNode.renderdjango/template/library.py:3256 ms1.9%
heroicon_outlineheroicons/templatetags/heroicons.py:236 ms1.9%
_render_iconheroicons/templatetags/heroicons.py:396 ms1.9%
_render_iconheroicons/__init__.py:456 ms1.9%
_load_iconheroicons/__init__.py:186 ms1.9%
ZipFile.__init__<stdlib>/zipfile/__init__.py:15056 ms1.9%
2 smaller frames hidden
2 smaller frames hidden
1 smaller frames hidden
Template.renderdjango/template/base.py:1726 ms1.9%
_request_context_bind_templatedebug_toolbar/panels/templates/panel.py:466 ms1.9%
cached_property.__get__django/utils/functional.py:476 ms1.9%
Engine.template_context_processorsdjango/template/engine.py:1186 ms1.9%
Engine.template_context_processors.<locals>.<genexpr>django/template/engine.py:1186 ms1.9%
import_stringdjango/utils/module_loading.py:306 ms1.9%
cached_importdjango/utils/module_loading.py:156 ms1.9%
import_module<stdlib>/importlib/__init__.py:886 ms1.9%
_gcd_import<frozen importlib._bootstrap>:13906 ms1.9%
_find_and_load<frozen importlib._bootstrap>:13506 ms1.9%
_find_and_load_unlocked<frozen importlib._bootstrap>:13096 ms1.9%
_load_unlocked<frozen importlib._bootstrap>:9156 ms1.9%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7433 ms1.0%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7473 ms1.0%
_call_with_frames_removed<frozen importlib._bootstrap>:5493 ms1.0%
render_to_stringdjango/template/loader.py:6137 ms11.9%
get_templatedjango/template/loader.py:1228 ms9.1%
_engine_listdjango/template/loader.py:6628 ms9.1%
EngineHandler.alldjango/template/utils.py:9428 ms9.1%
EngineHandler.__getitem__django/template/utils.py:8528 ms9.1%
DjangoTemplates.__init__django/template/backends/django.py:2625 ms8.1%
DjangoTemplates.get_templatetag_librariesdjango/template/backends/django.py:8824 ms7.6%
get_installed_librariesdjango/template/backends/django.py:16324 ms7.6%
get_template_tag_modulesdjango/template/backends/django.py:15121 ms6.7%
get_package_librariesdjango/template/backends/django.py:17421 ms6.7%
import_module<stdlib>/importlib/__init__.py:8821 ms6.7%
_gcd_import<frozen importlib._bootstrap>:139021 ms6.7%
_find_and_load<frozen importlib._bootstrap>:135021 ms6.7%
_find_and_load_unlocked<frozen importlib._bootstrap>:130921 ms6.7%
_load_unlocked<frozen importlib._bootstrap>:91521 ms6.7%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:74315 ms4.8%
SourceLoader.get_code<frozen importlib._bootstrap_external>:87712 ms3.8%
SourceLoader.source_to_code<frozen importlib._bootstrap_external>:80612 ms3.8%
_call_with_frames_removed<frozen importlib._bootstrap>:54910 ms3.3%
SourceLoader.get_code<frozen importlib._bootstrap_external>:8903 ms1.0%
SourceFileLoader._cache_bytecode<frozen importlib._bootstrap_external>:9463 ms1.0%
SourceFileLoader.set_data<frozen importlib._bootstrap_external>:9713 ms1.0%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7476 ms1.9%
_call_with_frames_removed<frozen importlib._bootstrap>:5496 ms1.9%
<module>django/contrib/admin/templatetags/admin_list.py:114 ms1.4%
_find_and_load<frozen importlib._bootstrap>:13504 ms1.4%
_find_and_load_unlocked<frozen importlib._bootstrap>:13094 ms1.4%
_load_unlocked<frozen importlib._bootstrap>:9154 ms1.4%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7434 ms1.4%
SourceLoader.get_code<frozen importlib._bootstrap_external>:8774 ms1.4%
SourceLoader.source_to_code<frozen importlib._bootstrap_external>:8064 ms1.4%
_call_with_frames_removed<frozen importlib._bootstrap>:5494 ms1.4%
1 smaller frames hidden
get_template_tag_modulesdjango/template/backends/django.py:1453 ms1.0%
import_module<stdlib>/importlib/__init__.py:883 ms1.0%
_gcd_import<frozen importlib._bootstrap>:13903 ms1.0%
_find_and_load<frozen importlib._bootstrap>:13503 ms1.0%
_find_and_load_unlocked<frozen importlib._bootstrap>:13093 ms1.0%
_load_unlocked<frozen importlib._bootstrap>:9153 ms1.0%
_LoaderBasics.exec_module<frozen importlib._bootstrap_external>:7433 ms1.0%
DjangoTemplates.__init__django/template/backends/django.py:283 ms1.0%
Engine.__init__django/template/engine.py:633 ms1.0%
Engine.get_template_builtinsdjango/template/engine.py:1213 ms1.0%
import_librarydjango/template/library.py:4813 ms1.0%
import_module<stdlib>/importlib/__init__.py:883 ms1.0%
_gcd_import<frozen importlib._bootstrap>:13903 ms1.0%
_find_and_load<frozen importlib._bootstrap>:13503 ms1.0%
get_templatedjango/template/loader.py:159 ms2.9%
DjangoTemplates.get_templatedjango/template/backends/django.py:799 ms2.9%
Engine.get_templatedjango/template/engine.py:1869 ms2.9%
Engine.find_templatedjango/template/engine.py:1574 ms1.4%
cached_property.__get__django/utils/functional.py:474 ms1.4%
Engine.template_loadersdjango/template/engine.py:1314 ms1.4%
Engine.get_template_loadersdjango/template/engine.py:1364 ms1.4%
Engine.find_template_loaderdjango/template/engine.py:1483 ms1.0%
import_stringdjango/utils/module_loading.py:303 ms1.0%
cached_importdjango/utils/module_loading.py:153 ms1.0%
import_module<stdlib>/importlib/__init__.py:883 ms1.0%
_gcd_import<frozen importlib._bootstrap>:13903 ms1.0%
_find_and_load<frozen importlib._bootstrap>:13503 ms1.0%
1 smaller frames hidden
Engine.find_templatedjango/template/engine.py:1594 ms1.4%
Loader.get_templatedjango/template/loaders/cached.py:574 ms1.4%
Loader.get_templatedjango/template/loaders/base.py:283 ms1.0%
Template.__init__django/template/base.py:1573 ms1.0%
Template.compile_nodelistdjango/template/base.py:1993 ms1.0%
Parser.parsedjango/template/base.py:5833 ms1.0%
do_extendsdjango/template/loader_tags.py:3073 ms1.0%
Parser.parsedjango/template/base.py:5833 ms1.0%
do_blockdjango/template/loader_tags.py:2353 ms1.0%
Parser.parsedjango/template/base.py:5833 ms1.0%
do_ifdjango/template/defaulttags.py:10083 ms1.0%
Parser.parsedjango/template/base.py:5833 ms1.0%
1 smaller frames hidden
project_profileapps/projects/urls.py:4746 ms1.9%
find_projectapps/projects/urls.py:524 ms1.4%
can_viewapps/projects/urls.py:334 ms1.4%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:3 ms1.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms1.0%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms1.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:403 ms1.0%
get_userdjango/contrib/auth/middleware.py:203 ms1.0%
1 smaller frames hidden
1 smaller frames hidden
project_profileapps/projects/urls.py:5024 ms1.4%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {3 ms1.0%
1 smaller frames hidden
project_profileapps/projects/urls.py:490 for perf in perfs:3 ms1.0%
Sequence.__iter__<frozen _collections_abc>:10203 ms1.0%
Page.__getitem__django/core/paginator.py:3303 ms1.0%
QuerySet.__iter__django/db/models/query.py:3903 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms1.0%
ModelIterable.__iter__django/db/models/query.py:953 ms1.0%
1 smaller frames hidden
1 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:81762 ms20.0%
ProfileUploadTest.uploadapps/api/tests.py:49533 ms10.5%
_SharedTaskProxy.__call__potatoq/app.py:76333 ms10.5%
Task.__call__potatoq/task.py:18933 ms10.5%
process_profileapps/api/tasks.py:23925 ms8.1%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)12 ms3.8%
claim_partapps/projects/profiles.py:3784 ms1.4%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms1.4%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms1.0%
1 smaller frames hidden
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(3 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.0%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms1.0%
3 smaller frames hidden
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)4 ms1.4%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(3 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.0%
QuerySet.bulk_createdjango/db/models/query.py:8333 ms1.0%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms1.0%
QuerySet._insertdjango/db/models/query.py:19183 ms1.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms1.0%
Cursor.executepsycopg/cursor.py:1133 ms1.0%
Connection.waitpsycopg/connection.py:4953 ms1.0%
1 smaller frames hidden
process_profile_partapps/projects/profiles.py:3444 ms1.4%
upsert_testsapps/projects/profiles.py:4514 ms1.4%
3 smaller frames hidden
process_profileapps/api/tasks.py:2536 ms1.9%
_SharedTaskProxy.__call__potatoq/app.py:7636 ms1.9%
Task.__call__potatoq/task.py:1896 ms1.9%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):6 ms1.9%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):3 ms1.0%
QuerySet.__iter__django/db/models/query.py:3903 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms1.0%
ModelIterable.__iter__django/db/models/query.py:953 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms1.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms1.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms1.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms1.0%
Cursor.executepsycopg/cursor.py:1133 ms1.0%
Connection.waitpsycopg/connection.py:4953 ms1.0%
2 smaller frames hidden
1 smaller frames hidden
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(30 ms9.5%
Client.postdjango/test/client.py:115330 ms9.5%
RequestFactory.postdjango/test/client.py:49930 ms9.5%
RequestFactory.genericdjango/test/client.py:67130 ms9.5%
Client.requestdjango/test/client.py:108230 ms9.5%
ClientHandler.__call__django/test/client.py:17318 ms5.7%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6218 ms5.7%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10418 ms5.7%
WhiteNoise.add_fileswhitenoise/base.py:10818 ms5.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12013 ms4.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13113 ms4.3%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms2.9%
StaticFile.__init__whitenoise/responders.py:733 ms1.0%
StaticFile.__init__whitenoise/responders.py:723 ms1.0%
1 smaller frames hidden
WhiteNoise.get_static_filewhitenoise/base.py:2034 ms1.4%
WhiteNoise.add_cache_headerswhitenoise/base.py:2244 ms1.4%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1764 ms1.4%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1974 ms1.4%
URLMixin.urldebug_toolbar/panels/staticfiles.py:203 ms1.0%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2053 ms1.0%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1863 ms1.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms1.4%
scantreewhitenoise/base.py:2623 ms1.0%
scantreewhitenoise/base.py:2623 ms1.0%
1 smaller frames hidden
ClientHandler.__call__django/test/client.py:18612 ms3.8%
BaseHandler.get_responsedjango/core/handlers/base.py:14112 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13012 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12312 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
MiddlewareMixin.__call__django/utils/deprecation.py:30912 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3412 ms3.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5512 ms3.8%
BaseHandler._get_responsedjango/core/handlers/base.py:19812 ms3.8%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6512 ms3.8%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3712 ms3.8%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6412 ms3.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:759 ms2.9%
profile_uploadapps/api/urls.py:1504 ms1.4%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()3 ms1.0%
QuerySet.firstdjango/db/models/query.py:11453 ms1.0%
QuerySet.__iter__django/db/models/query.py:3903 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms1.0%
ModelIterable.__iter__django/db/models/query.py:953 ms1.0%
1 smaller frames hidden
3 smaller frames hidden
2 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:83940 ms12.9%
ProfileUploadTest.uploadapps/api/tests.py:49531 ms10.0%
_SharedTaskProxy.__call__potatoq/app.py:76331 ms10.0%
Task.__call__potatoq/task.py:18931 ms10.0%
process_profileapps/api/tasks.py:23916 ms5.2%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)9 ms2.9%
process_profile_partapps/projects/profiles.py:3443 ms1.0%
upsert_testsapps/projects/profiles.py:4513 ms1.0%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)3 ms1.0%
1 smaller frames hidden
process_profileapps/api/tasks.py:25313 ms4.3%
_SharedTaskProxy.__call__potatoq/app.py:76313 ms4.3%
Task.__call__potatoq/task.py:18913 ms4.3%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):13 ms4.3%
finalize_profileapps/projects/profiles.py:4964 ms1.4%
6 smaller frames hidden
1 smaller frames hidden
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(9 ms2.9%
Client.postdjango/test/client.py:11539 ms2.9%
RequestFactory.postdjango/test/client.py:4999 ms2.9%
RequestFactory.genericdjango/test/client.py:6719 ms2.9%
Client.requestdjango/test/client.py:10829 ms2.9%
ClientHandler.__call__django/test/client.py:1869 ms2.9%
BaseHandler.get_responsedjango/core/handlers/base.py:1419 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1309 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1239 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:349 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
BaseHandler._get_responsedjango/core/handlers/base.py:1989 ms2.9%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:659 ms2.9%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:379 ms2.9%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:649 ms2.9%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:756 ms1.9%
2 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:83427 ms8.6%
Client.getdjango/test/client.py:112427 ms8.6%
RequestFactory.getdjango/test/client.py:47527 ms8.6%
RequestFactory.genericdjango/test/client.py:67127 ms8.6%
Client.requestdjango/test/client.py:108227 ms8.6%
ClientHandler.__call__django/test/client.py:18627 ms8.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14127 ms8.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms8.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13027 ms8.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms8.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30927 ms8.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms8.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12327 ms8.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5527 ms8.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30925 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3425 ms8.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5525 ms8.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19825 ms8.1%
project_profilesapps/projects/urls.py:466 context["profiles"] = paginator.get_page(request.GET.get("page"))7 ms2.4%
Paginator.get_pagedjango/core/paginator.py:1687 ms2.4%
Paginator.validate_numberdjango/core/paginator.py:1607 ms2.4%
cached_property.__get__django/utils/functional.py:477 ms2.4%
Paginator.num_pagesdjango/core/paginator.py:1957 ms2.4%
cached_property.__get__django/utils/functional.py:477 ms2.4%
Paginator.countdjango/core/paginator.py:1897 ms2.4%
QuerySet.countdjango/db/models/query.py:6107 ms2.4%
Query.get_countdjango/db/models/sql/query.py:6517 ms2.4%
Query.get_aggregationdjango/db/models/sql/query.py:4676 ms1.9%
Count.resolve_expressiondjango/db/models/aggregates.py:2616 ms1.9%
Aggregate.resolve_expressiondjango/db/models/aggregates.py:1226 ms1.9%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:3016 ms1.9%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2976 ms1.9%
BaseExpression.copydjango/db/models/expressions.py:4446 ms1.9%
copy<stdlib>/copy.py:1006 ms1.9%
_reconstruct<stdlib>/copy.py:2496 ms1.9%
__newobj__<stdlib>/copyreg.py:1046 ms1.9%
deconstructible.<locals>.decorator.<locals>.__new__django/utils/deconstruct.py:176 ms1.9%
<GC>~6 ms1.9%
1 smaller frames hidden
project_profilesapps/projects/urls.py:4577 ms2.4%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {4 ms1.4%
2 smaller frames hidden
project_profilesapps/projects/urls.py:4546 ms1.9%
find_projectapps/projects/urls.py:524 ms1.4%
can_viewapps/projects/urls.py:334 ms1.4%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:3 ms1.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2513 ms1.0%
SimpleLazyObject._setupdjango/utils/functional.py:4043 ms1.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:403 ms1.0%
get_userdjango/contrib/auth/middleware.py:203 ms1.0%
1 smaller frames hidden
1 smaller frames hidden
project_profilesapps/projects/urls.py:470 return render(request, "project_profiles.html", context)4 ms1.4%
renderdjango/shortcuts.py:254 ms1.4%
render_to_stringdjango/template/loader.py:624 ms1.4%
Template.renderdjango/template/backends/django.py:1074 ms1.4%
Template.renderdjango/template/base.py:1744 ms1.4%
instrumented_test_renderdjango/test/utils.py:1144 ms1.4%
NodeList.renderdjango/template/base.py:10914 ms1.4%
Node.render_annotateddjango/template/base.py:10524 ms1.4%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms1.4%
instrumented_test_renderdjango/test/utils.py:1144 ms1.4%
NodeList.renderdjango/template/base.py:10914 ms1.4%
Node.render_annotateddjango/template/base.py:10524 ms1.4%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms1.4%
instrumented_test_renderdjango/test/utils.py:1144 ms1.4%
NodeList.renderdjango/template/base.py:10914 ms1.4%
Node.render_annotateddjango/template/base.py:10524 ms1.4%
BlockNode.renderdjango/template/loader_tags.py:664 ms1.4%
NodeList.renderdjango/template/base.py:10914 ms1.4%
Node.render_annotateddjango/template/base.py:10524 ms1.4%
BlockNode.renderdjango/template/loader_tags.py:664 ms1.4%
NodeList.renderdjango/template/base.py:10914 ms1.4%
Node.render_annotateddjango/template/base.py:10524 ms1.4%
IfNode.renderdjango/template/defaulttags.py:3324 ms1.4%
Page.__len__django/core/paginator.py:3194 ms1.4%
QuerySet.__len__django/db/models/query.py:3724 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms1.4%
ModelIterable.__iter__django/db/models/query.py:953 ms1.0%
1 smaller frames hidden
1 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:81825 ms8.1%
ProfileUploadTest.uploadapps/api/tests.py:49516 ms5.2%
_SharedTaskProxy.__call__potatoq/app.py:76316 ms5.2%
Task.__call__potatoq/task.py:18916 ms5.2%
process_profileapps/api/tasks.py:23913 ms4.3%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)9 ms2.9%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)3 ms1.0%
1 smaller frames hidden
process_profileapps/api/tasks.py:2533 ms1.0%
_SharedTaskProxy.__call__potatoq/app.py:7633 ms1.0%
Task.__call__potatoq/task.py:1893 ms1.0%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):3 ms1.0%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(9 ms2.9%
Client.postdjango/test/client.py:11539 ms2.9%
RequestFactory.postdjango/test/client.py:4999 ms2.9%
RequestFactory.genericdjango/test/client.py:6719 ms2.9%
Client.requestdjango/test/client.py:10829 ms2.9%
ClientHandler.__call__django/test/client.py:1869 ms2.9%
BaseHandler.get_responsedjango/core/handlers/base.py:1419 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1309 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1239 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:349 ms2.9%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms2.9%
BaseHandler._get_responsedjango/core/handlers/base.py:1989 ms2.9%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:659 ms2.9%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:379 ms2.9%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:649 ms2.9%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:754 ms1.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))3 ms1.0%
get_object_or_404django/shortcuts.py:903 ms1.0%
1 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:829 self.client.force_login(user)9 ms2.9%
ClientMixin.force_logindjango/test/client.py:8557 ms2.4%
ClientMixin._logindjango/test/client.py:8814 ms1.4%
logindjango/contrib/auth/__init__.py:1873 ms1.0%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4343 ms1.0%
1 smaller frames hidden
ClientMixin._logindjango/test/client.py:8763 ms1.0%
ClientMixin.sessiondjango/test/client.py:8123 ms1.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms1.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:743 ms1.0%
1 smaller frames hidden
ProfileUploadTest.test_missing_parts_mark_the_profile_incompleteapps/api/tests.py:8283 ms1.0%
add_memberapps/projects/testing.py:76 membership, _ = Membership.objects.get_or_create(3 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.0%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms1.0%
9 smaller frames hidden
Estimated from 209 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/urls.py:498
return render(
project_profile
· Templates
|
111 ms |
|
apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload
· Libraries
|
18 ms |
|
apps/api/tests.py:829
self.client.force_login(user)
ProfileUploadTest.test_missing_parts_mark_the_profile_incomplete
· Database
|
9 ms |
|
apps/projects/urls.py:466
context["profiles"] = paginator.get_page(request.GET.get("page"))
project_profiles
· Database
|
7 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· Database
|
7 ms |
|
apps/projects/profiles.py:458
TestPerf.objects.bulk_create(
write_perfs
· Database
|
6 ms |
|
apps/api/urls.py:72
project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
6 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
6 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
6 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
6 ms |
Fixtures
Exact setup time| _live_server_helper function | 0.04 ms |
| _dj_autoclear_mailbox function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
190 queries · 74 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
14×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
12×
SELECT "projects_profilepart"."id", "projects_profilepart"."profile_id", "projects_profilepart"."index", "projects_profilepart"."count", "projects_profilepart"."checksum", "projects_profilepart"."status", "projects_profilepart"."error", "projects_profilepart"."tests_count", "projects_profilepart"."…
8×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
5×
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…
4×
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/api/tests.py:830
|
308 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 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 | |
|---|---|---|---|---|
| 23 minutes ago | CI github-actions:test | passed | 312 ms | Profile |
| 48 minutes ago | CI github-actions:test | passed | 336 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 383 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 209 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 327 ms | Profile |