Tests / apps/api/tests.py
ProfileUploadTest::test_upload_links_ingest_session
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
127 ms
median 112 ms
max 229 ms
max 229 ms
Phases
Setup 0.70 ms
Call 125 ms
Teardown 2 ms
Categories
Database 66 ms
App code 2 ms
Test code 0.11 ms
Other (Libraries, Serialization, pytest, Unsampled, ...) 59 ms
96 database queries per run
Needs 65 KB of memory (max 744 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call99 ms95.7%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:68952 ms50.6%
ProfileUploadTest.uploadapps/api/tests.py:49545 ms43.3%
_SharedTaskProxy.__call__potatoq/app.py:76345 ms43.3%
Task.__call__potatoq/task.py:18945 ms43.3%
process_profileapps/api/tasks.py:23928 ms27.1%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)15 ms14.4%
claim_partapps/projects/profiles.py:3994 ms3.6%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.6%
QuerySet.get_or_createdjango/db/models/query.py:9924 ms3.6%
Atomic.__enter__django/db/transaction.py:2112 ms1.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.8%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.8%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
Atomic.__exit__django/db/transaction.py:2472 ms1.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.8%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.8%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
claim_partapps/projects/profiles.py:421 session = Session.objects.filter(project=project, ingest_id=profile.ingest_id).select_related("run").first()4 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.filterdjango/db/models/query.py:15422 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.8%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.8%
Query._add_qdjango/db/models/sql/query.py:16992 ms1.8%
QuerySet.firstdjango/db/models/query.py:11452 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
claim_partapps/projects/profiles.py:381 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.8%
QuerySet.deletedjango/db/models/query.py:12372 ms1.8%
Collector.collectdjango/db/models/deletion.py:2792 ms1.8%
Collector.can_fast_deletedjango/db/models/deletion.py:2172 ms1.8%
Collector.can_fast_delete.<locals>.<genexpr>django/db/models/deletion.py:2172 ms1.8%
claim_partapps/projects/profiles.py:397 project = profile.project2 ms1.8%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
claim_partapps/projects/profiles.py:4672 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11102 ms1.8%
Model._do_updatedjango/db/models/base.py:12112 ms1.8%
QuerySet._updatedjango/db/models/query.py:13272 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_profile_partapps/projects/profiles.py:3654 ms3.6%
upsert_testsapps/projects/profiles.py:4724 ms3.6%
TestManager.upsertapps/projects/models.py:2292 ms1.8%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.8%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.filterdjango/db/models/query.py:15422 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.8%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.8%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.8%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.8%
process_profile_partapps/projects/profiles.py:3664 ms3.6%
write_perfsapps/projects/profiles.py:478 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.filterdjango/db/models/query.py:15422 ms1.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.8%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.8%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.8%
QuerySet._insertdjango/db/models/query.py:19182 ms1.8%
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms1.8%
QuerySet.firstdjango/db/models/query.py:11452 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
process_profile_partapps/projects/profiles.py:3622 ms1.8%
load_documentapps/projects/profiles.py:1332 ms1.8%
loadsapps/projects/profiles.py:118 document = json.loads(data)2 ms1.8%
loads<stdlib>/json/__init__.py:3712 ms1.8%
JSONDecoder.decode<stdlib>/json/decoder.py:3582 ms1.8%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:3742 ms1.8%
process_profile_partapps/projects/profiles.py:368 ProfilePart.objects.filter(pk=part.pk).update(2 ms1.8%
QuerySet.updatedjango/db/models/query.py:13002 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_profileapps/api/tasks.py:25313 ms12.6%
_SharedTaskProxy.__call__potatoq/app.py:76313 ms12.6%
Task.__call__potatoq/task.py:18913 ms12.6%
finalize_profile_partsapps/api/tasks.py:25913 ms12.6%
finalize_profileapps/projects/profiles.py:512 duplicates = rows.values("test").annotate(count=Count("id"), keep=Max("id")).filter(count__gt=1)4 ms3.6%
QuerySet.valuesdjango/db/models/query.py:14144 ms3.6%
QuerySet._valuesdjango/db/models/query.py:14094 ms3.6%
Query.set_valuesdjango/db/models/sql/query.py:26054 ms3.6%
Query.add_fieldsdjango/db/models/sql/query.py:22664 ms3.6%
Query.setup_joinsdjango/db/models/sql/query.py:19874 ms3.6%
Query.joindjango/db/models/sql/query.py:11582 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.8%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.8%
finalize_profileapps/projects/profiles.py:5174 ms3.6%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.8%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.8%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.8%
finalize_profileapps/projects/profiles.py:504 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.8%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms1.8%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:4742 ms1.8%
SQLCompiler.find_ordering_namedjango/db/models/sql/compiler.py:10792 ms1.8%
finalize_profileapps/projects/profiles.py:5252 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11102 ms1.8%
Model._do_updatedjango/db/models/base.py:12112 ms1.8%
QuerySet._updatedjango/db/models/query.py:13272 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.8%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)4 ms3.6%
QuerySet.getdjango/db/models/query.py:6354 ms3.6%
QuerySet.__len__django/db/models/query.py:3724 ms3.6%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms3.6%
ModelIterable.__iter__django/db/models/query.py:954 ms3.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3002 ms1.8%
SQLCompiler.get_related_selectionsdjango/db/models/sql/compiler.py:12592 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(7 ms7.2%
Client.postdjango/test/client.py:11537 ms7.2%
RequestFactory.postdjango/test/client.py:4997 ms7.2%
RequestFactory.genericdjango/test/client.py:6717 ms7.2%
Client.requestdjango/test/client.py:10827 ms7.2%
ClientHandler.__call__django/test/client.py:1867 ms7.2%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:347 ms7.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms7.2%
BaseHandler._get_responsedjango/core/handlers/base.py:1987 ms7.2%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:657 ms7.2%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:377 ms7.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:647 ms7.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:756 ms5.4%
profile_uploadapps/api/urls.py:1504 ms3.6%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()2 ms1.8%
QuerySet.firstdjango/db/models/query.py:11452 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9812 ms1.8%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.createdjango/db/models/query.py:6692 ms1.8%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11672 ms1.8%
Model._do_insertdjango/db/models/base.py:12182 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet._insertdjango/db/models/query.py:19182 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.8%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.8%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.8%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.8%
QuerySet.firstdjango/db/models/query.py:11452 ms1.8%
QuerySet.__iter__django/db/models/query.py:3902 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.8%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.8%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.8%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms1.8%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms1.8%
ForeignKey.get_coldjango/db/models/fields/related.py:12542 ms1.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.8%
Atomic.__enter__django/db/transaction.py:2112 ms1.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.8%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.8%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:678 start = self.client.post(36 ms34.3%
Client.postdjango/test/client.py:115336 ms34.3%
RequestFactory.postdjango/test/client.py:49936 ms34.3%
RequestFactory.genericdjango/test/client.py:67136 ms34.3%
Client.requestdjango/test/client.py:108236 ms34.3%
ClientHandler.__call__django/test/client.py:18619 ms18.1%
BaseHandler.get_responsedjango/core/handlers/base.py:14119 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13019 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12319 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms18.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms18.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19819 ms18.1%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6519 ms18.1%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3719 ms18.1%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6419 ms18.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7517 ms16.2%
ingest_startapps/api/urls.py:100 process_ingest_start(ingest.id)17 ms16.2%
_SharedTaskProxy.__call__potatoq/app.py:76317 ms16.2%
Task.__call__potatoq/task.py:18917 ms16.2%
process_ingest_startapps/api/tasks.py:774 ms3.6%
get_or_create_numberedapps/projects/models.py:212 ms1.8%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms1.8%
QuerySet.aggregatedjango/db/models/query.py:5942 ms1.8%
Query.get_aggregationdjango/db/models/sql/query.py:6332 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7922 ms1.8%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11592 ms1.8%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.createdjango/db/models/query.py:6692 ms1.8%
Run.saveapps/projects/models.py:188 super().save(*args, **kwargs)2 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11672 ms1.8%
Model._do_insertdjango/db/models/base.py:12182 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet._insertdjango/db/models/query.py:19182 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_ingest_startapps/api/tasks.py:844 ms3.6%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.6%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.8%
QuerySet.createdjango/db/models/query.py:6692 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11672 ms1.8%
Model._do_insertdjango/db/models/base.py:12182 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet._insertdjango/db/models/query.py:19182 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_ingest_startapps/api/tasks.py:89 Session.objects.get_or_create(4 ms3.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms3.6%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.8%
QuerySet.createdjango/db/models/query.py:6692 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11672 ms1.8%
Model._do_insertdjango/db/models/base.py:12182 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet._insertdjango/db/models/query.py:19182 ms1.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms1.8%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18692 ms1.8%
SQLInsertCompiler.assemble_as_sqldjango/db/backends/postgresql/compiler.py:642 ms1.8%
SQLInsertCompiler.assemble_as_sqldjango/db/models/sql/compiler.py:17852 ms1.8%
SQLInsertCompiler.assemble_as_sql.<locals>.<genexpr>django/db/models/sql/compiler.py:17812 ms1.8%
<GC>~2 ms1.8%
Atomic.__enter__django/db/transaction.py:2112 ms1.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.8%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.8%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
process_ingest_startapps/api/tasks.py:54 data = ingest.data2 ms1.8%
DeferredAttribute.__get__django/db/models/query_utils.py:2712 ms1.8%
Model.refresh_from_dbdjango/db/models/base.py:7582 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.8%
process_ingest_startapps/api/tasks.py:105 ingest.save(update_fields=["date_processed"])2 ms1.8%
Model.savedjango/db/models/base.py:8742 ms1.8%
Model.save_basedjango/db/models/base.py:9662 ms1.8%
Model._save_tabledjango/db/models/base.py:11102 ms1.8%
Model._do_updatedjango/db/models/base.py:12112 ms1.8%
QuerySet._updatedjango/db/models/query.py:13272 ms1.8%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.8%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))2 ms1.8%
get_object_or_404django/shortcuts.py:902 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
ClientHandler.__call__django/test/client.py:17317 ms16.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6217 ms16.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10417 ms16.2%
WhiteNoise.add_fileswhitenoise/base.py:10817 ms16.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12015 ms14.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13115 ms14.4%
WhiteNoise.get_static_filewhitenoise/base.py:20813 ms12.6%
StaticFile.__init__whitenoise/responders.py:776 ms5.4%
StaticFile.get_alternativeswhitenoise/responders.py:2006 ms5.4%
__init____init__:-12 ms1.8%
StaticFile.__init__whitenoise/responders.py:736 ms5.4%
StaticFile.get_headerswhitenoise/responders.py:1764 ms3.6%
formatdate<stdlib>/email/utils.py:2664 ms3.6%
format_datetime<stdlib>/email/utils.py:2844 ms3.6%
StaticFile.get_headerswhitenoise/responders.py:1782 ms1.8%
parsedate<stdlib>/email/_parseaddr.py:1852 ms1.8%
parsedate_tz<stdlib>/email/_parseaddr.py:502 ms1.8%
_parsedate_tz<stdlib>/email/_parseaddr.py:1802 ms1.8%
StaticFile.__init__whitenoise/responders.py:722 ms1.8%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms1.8%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms1.8%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms1.8%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms1.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms1.8%
scantreewhitenoise/base.py:2602 ms1.8%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()4 ms3.6%
TestCase._fixture_teardowndjango/test/testcases.py:14954 ms3.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4834 ms3.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms3.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms3.6%
CursorWrapper._executedjango/db/backends/utils.py:1034 ms3.6%
Cursor.executepsycopg/cursor.py:1134 ms3.6%
Connection.waitpsycopg/connection.py:4954 ms3.6%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:685 session = Session.objects.get(ingest_id=ingest_id)2 ms1.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.8%
QuerySet.getdjango/db/models/query.py:6272 ms1.8%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:6922 ms1.8%
Model.refresh_from_dbdjango/db/models/base.py:7582 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:6932 ms1.8%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.8%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.8%
Cursor.executepsycopg/cursor.py:1132 ms1.8%
Connection.waitpsycopg/connection.py:4952 ms1.8%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:6972 ms1.8%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.8%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.8%
QuerySet.getdjango/db/models/query.py:6352 ms1.8%
QuerySet.__len__django/db/models/query.py:3722 ms1.8%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.8%
ModelIterable.__iter__django/db/models/query.py:952 ms1.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.8%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9812 ms1.8%
teardown4 ms3.7%
TestCase.tearDownClassdjango/test/testcases.py:1455 conn.close()3 ms2.8%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:263 ms2.8%
BaseDatabaseWrapper.closedjango/db/backends/base/base.py:3553 ms2.8%
DatabaseWrapper._closedjango/db/backends/postgresql/base.py:3963 ms2.8%
Connection.closepsycopg/connection.py:2013 ms2.8%
TestCase.tearDownClassdjango/test/testcases.py:1453 cls._rollback_atomics(cls.cls_atomics)0.97 ms0.9%
TestCase._rollback_atomicsdjango/test/testcases.py:14050.97 ms0.9%
Atomic.__exit__django/db/transaction.py:2950.97 ms0.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:260.97 ms0.9%
BaseDatabaseWrapper.rollbackdjango/db/backends/base/base.py:3370.97 ms0.9%
BaseDatabaseWrapper._rollbackdjango/db/backends/base/base.py:3080.97 ms0.9%
Connection.rollbackpsycopg/connection.py:3140.97 ms0.9%
Connection.waitpsycopg/connection.py:4950.97 ms0.9%
BaseConnection._rollback_genpsycopg/_connection_base.py:6170.97 ms0.9%
BaseConnection._exec_commandpsycopg/_connection_base.py:4740.97 ms0.9%
Estimated from 57 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/api/tests.py:678
start = self.client.post(
ProfileUploadTest.test_upload_links_ingest_session
· Libraries
|
17 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· Database
|
7 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
6 ms |
|
apps/api/tasks.py:89
Session.objects.get_or_create(
process_ingest_start
· Database
|
4 ms |
|
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile
· Database
|
4 ms |
|
apps/projects/profiles.py:421
session = Session.objects.filter(project=project, ingest_id=profile.ingest_id).select_related("run").first()
claim_part
· Database
|
4 ms |
|
apps/projects/profiles.py:512
duplicates = rows.values("test").annotate(count=Count("id"), keep=Max("id")).filter(count__gt=1)
finalize_profile
· Database
|
4 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
|
2 ms |
|
apps/api/urls.py:100
process_ingest_start(ingest.id)
ingest_start
· Database
|
2 ms |
|
apps/api/tasks.py:54
data = ingest.data
process_ingest_start
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.05 ms |
| _dj_autoclear_mailbox function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
96 queries · 32 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
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…
5×
SELECT "projects_session"."id", "projects_session"."project_id", "projects_session"."run_id", "projects_session"."status", "projects_session"."exit_status", "projects_session"."date_created", "projects_session"."date_finished", "projects_session"."ingest_id", "projects_session"."environment_id", "p…
4×
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…
4×
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…
4×
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"."…
Biggest pieces of work
|
call test body
apps/api/tests.py:678
|
95 ms |
|
teardown tearDownClass
django/test/testcases.py:1455
|
4 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
4 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 | 104 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 109 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 86 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 136 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 71 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 229 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 217 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 208 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 128 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 64 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 114 ms | Profile |