Tests / apps/api/tests.py
ProfileUploadTest::test_upload_links_ingest_session
First seen 8 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
146 ms
median 128 ms
max 217 ms
max 217 ms
Phases
Setup 0.72 ms
Call 144 ms
Teardown 2 ms
Categories
Database 67 ms
App code 2 ms
Other (Libraries, pytest, Serialization, Unsampled, ...) 77 ms
96 database queries per run
Needs 154 KB of memory (max 744 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, an hour ago ·
open run
call215 ms99.1%
CallInfo.from_call_pytest/runner.py:353215 ms99.1%
call_and_report.<locals>.<lambda>_pytest/runner.py:245215 ms99.1%
HookCaller.__call__pluggy/_hooks.py:512215 ms99.1%
PluginManager._hookexecpluggy/_manager.py:120215 ms99.1%
_multicallpluggy/_callers.py:121215 ms99.1%
pytest_runtest_call_pytest/runner.py:179215 ms99.1%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:573215 ms99.1%
SimpleTestCase.__call__django/test/testcases.py:313215 ms99.1%
SimpleTestCase._setup_and_calldjango/test/testcases.py:368213 ms97.8%
TestCase.__call__<stdlib>/unittest/case.py:747213 ms97.8%
TestCase.run<stdlib>/unittest/case.py:691213 ms97.8%
TestCase._callTestMethod<stdlib>/unittest/case.py:637213 ms97.8%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:678 start = self.client.post(175 ms80.4%
Client.postdjango/test/client.py:1153175 ms80.4%
RequestFactory.postdjango/test/client.py:499175 ms80.4%
RequestFactory.genericdjango/test/client.py:671175 ms80.4%
Client.requestdjango/test/client.py:1082175 ms80.4%
ClientHandler.__call__django/test/client.py:173163 ms74.8%
BaseHandler.load_middlewaredjango/core/handlers/base.py:62163 ms74.8%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:104163 ms74.8%
WhiteNoise.add_fileswhitenoise/base.py:108163 ms74.8%
WhiteNoise.update_files_dictionarywhitenoise/base.py:120159 ms72.9%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:131159 ms72.9%
WhiteNoise.get_static_filewhitenoise/base.py:208157 ms72.3%
StaticFile.__init__whitenoise/responders.py:72148 ms67.9%
StaticFile.get_file_statswhitenoise/responders.py:161148 ms67.9%
__init____init__:-1148 ms67.9%
FileEntry.__init__whitenoise/responders.py:263148 ms67.9%
FileEntry.stat_regular_filewhitenoise/responders.py:276148 ms67.9%
<GC>~148 ms67.9%
StaticFile.__init__whitenoise/responders.py:733 ms1.2%
StaticFile.get_headerswhitenoise/responders.py:1811 ms0.6%
StaticFile.get_headerswhitenoise/responders.py:1761 ms0.6%
formatdate<stdlib>/email/utils.py:2661 ms0.6%
StaticFile.__init__whitenoise/responders.py:773 ms1.2%
StaticFile.get_alternativeswhitenoise/responders.py:2011 ms0.6%
StaticFile.get_alternativeswhitenoise/responders.py:2001 ms0.6%
StaticFile.__init__whitenoise/responders.py:741 ms0.6%
parsedate<stdlib>/email/_parseaddr.py:1851 ms0.6%
<GC>~1 ms0.6%
StaticFile.__init__whitenoise/responders.py:761 ms0.6%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1891 ms0.6%
WhiteNoise.get_static_filewhitenoise/base.py:2031 ms0.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2241 ms0.6%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms1.9%
scantreewhitenoise/base.py:2624 ms1.9%
scantreewhitenoise/base.py:2624 ms1.9%
scantreewhitenoise/base.py:2643 ms1.2%
scantreewhitenoise/base.py:2621 ms0.6%
scantreewhitenoise/base.py:2621 ms0.6%
scantreewhitenoise/base.py:2621 ms0.6%
scantreewhitenoise/base.py:2641 ms0.6%
ClientHandler.__call__django/test/client.py:18611 ms5.0%
BaseHandler.get_responsedjango/core/handlers/base.py:14111 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13011 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12311 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30911 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3411 ms5.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5511 ms5.0%
BaseHandler._get_responsedjango/core/handlers/base.py:19811 ms5.0%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6511 ms5.0%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3711 ms5.0%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6411 ms5.0%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:759 ms4.4%
ingest_startapps/api/urls.py:100 process_ingest_start(ingest.id)9 ms4.4%
_SharedTaskProxy.__call__potatoq/app.py:7639 ms4.4%
Task.__call__potatoq/task.py:1899 ms4.4%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1169 ms4.4%
process_ingest_startapps/api/tasks.py:843 ms1.2%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(3 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms0.6%
QuerySet.createdjango/db/models/query.py:6691 ms0.6%
Model.savedjango/db/models/base.py:8741 ms0.6%
Model.save_basedjango/db/models/base.py:9661 ms0.6%
Model._save_tabledjango/db/models/base.py:11671 ms0.6%
Model._do_insertdjango/db/models/base.py:12181 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet._insertdjango/db/models/query.py:19181 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
process_ingest_startapps/api/tasks.py:89 Session.objects.get_or_create(3 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms0.6%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9811 ms0.6%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms0.6%
QuerySet.createdjango/db/models/query.py:6691 ms0.6%
Model.savedjango/db/models/base.py:8741 ms0.6%
Model.save_basedjango/db/models/base.py:9461 ms0.6%
process_ingest_startapps/api/tasks.py:79 ingest.project,1 ms0.6%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms0.6%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1021 ms0.6%
QueryStats.addflakytest/profiling/dbtrack.py:381 ms0.6%
normalize_sqlflakytest/profiling/dbtrack.py:251 ms0.6%
process_ingest_startapps/api/tasks.py:771 ms0.6%
get_or_create_numberedapps/projects/models.py:21 number = next_number(model, project.pk)1 ms0.6%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 11 ms0.6%
QuerySet.aggregatedjango/db/models/query.py:5941 ms0.6%
Query.get_aggregationdjango/db/models/sql/query.py:6331 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16461 ms0.6%
process_ingest_startapps/api/tasks.py:105 ingest.save(update_fields=["date_processed"])1 ms0.6%
Model.savedjango/db/models/base.py:8281 ms0.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))1 ms0.6%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1161 ms0.6%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)1 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms0.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
ClientHandler.__call__django/test/client.py:2071 ms0.6%
HttpResponseBase.closedjango/http/response.py:3411 ms0.6%
Signal.senddjango/dispatch/dispatcher.py:2091 ms0.6%
close_cachesdjango/core/cache/__init__.py:641 ms0.6%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:68937 ms16.8%
ProfileUploadTest.uploadapps/api/tests.py:49526 ms11.8%
_SharedTaskProxy.__call__potatoq/app.py:76326 ms11.8%
Task.__call__potatoq/task.py:18926 ms11.8%
process_profileapps/api/tasks.py:23915 ms6.9%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)9 ms4.4%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1169 ms4.4%
claim_partapps/projects/profiles.py:3784 ms1.9%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms1.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms1.9%
QuerySet.get_or_createdjango/db/models/query.py:9923 ms1.2%
Atomic.__enter__django/db/transaction.py:2111 ms0.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms0.6%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4001 ms0.6%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3671 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
Atomic.__exit__django/db/transaction.py:2471 ms0.6%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms0.6%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4311 ms0.6%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3751 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(3 ms1.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms1.2%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1021 ms0.6%
QuerySet.get_or_createdjango/db/models/query.py:9941 ms0.6%
QuerySet.createdjango/db/models/query.py:6691 ms0.6%
Model.savedjango/db/models/base.py:8741 ms0.6%
Model.save_basedjango/db/models/base.py:9661 ms0.6%
Model._save_tabledjango/db/models/base.py:11671 ms0.6%
Model._do_insertdjango/db/models/base.py:12181 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet._insertdjango/db/models/query.py:19181 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads1 ms0.6%
QuerySet.deletedjango/db/models/query.py:12381 ms0.6%
Collector.deletedjango/db/models/deletion.py:4711 ms0.6%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
claim_partapps/projects/profiles.py:4001 ms0.6%
QuerySet.firstdjango/db/models/query.py:11451 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16111 ms0.6%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7671 ms0.6%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:861 ms0.6%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:751 ms0.6%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3171 ms0.6%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5781 ms0.6%
Col.as_sqldjango/db/models/expressions.py:13231 ms0.6%
process_profile_partapps/projects/profiles.py:3463 ms1.2%
write_snapshotsapps/projects/profiles.py:3121 ms0.6%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3101 ms0.6%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),1 ms0.6%
dumps<stdlib>/json/__init__.py:2411 ms0.6%
JSONEncoder.encode<stdlib>/json/encoder.py:2021 ms0.6%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2631 ms0.6%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)1 ms0.6%
CursorWrapper.executemanydjango/db/backends/utils.py:841 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executemanydjango/db/backends/utils.py:1141 ms0.6%
Cursor.executemanypsycopg/cursor.py:1371 ms0.6%
_GeneratorContextManager.__exit__<stdlib>/contextlib.py:2101 ms0.6%
Connection._pipeline_nolockpsycopg/connection.py:4721 ms0.6%
Pipeline.__exit__psycopg/_pipeline.py:731 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
process_profile_partapps/projects/profiles.py:3441 ms0.6%
upsert_testsapps/projects/profiles.py:4511 ms0.6%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order1 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms0.6%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms0.6%
QuerySet._insertdjango/db/models/query.py:19181 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19241 ms0.6%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18131 ms0.6%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17421 ms0.6%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)1 ms0.6%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1161 ms0.6%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(1 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms0.6%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms0.6%
QuerySet._insertdjango/db/models/query.py:19181 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
process_profileapps/api/tasks.py:2539 ms4.4%
_SharedTaskProxy.__call__potatoq/app.py:7639 ms4.4%
Task.__call__potatoq/task.py:1899 ms4.4%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):8 ms3.7%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1168 ms3.7%
finalize_profileapps/projects/profiles.py:4963 ms1.2%
add_perfsapps/projects/rollups.py:30 for perf in perfs:1 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
Query.get_compilerdjango/db/models/sql/query.py:3691 ms0.6%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms0.6%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms0.6%
QuerySet._insertdjango/db/models/query.py:19181 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)1 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
finalize_profileapps/projects/profiles.py:488 ProfilePart.objects.filter(profile=profile).exclude(pk__in=[part.pk for part in current]).delete()1 ms0.6%
QuerySet.deletedjango/db/models/query.py:12381 ms0.6%
Collector.deletedjango/db/models/deletion.py:4711 ms0.6%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
finalize_profileapps/projects/profiles.py:492 for duplicate in duplicates:1 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ValuesIterable.__iter__django/db/models/query.py:2221 ms0.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1021 ms0.6%
QueryStats.addflakytest/profiling/dbtrack.py:381 ms0.6%
normalize_sqlflakytest/profiling/dbtrack.py:251 ms0.6%
finalize_profileapps/projects/profiles.py:5041 ms0.6%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms0.6%
Model.savedjango/db/models/base.py:8741 ms0.6%
Model.save_basedjango/db/models/base.py:9661 ms0.6%
Model._save_tabledjango/db/models/base.py:11101 ms0.6%
Model._do_updatedjango/db/models/base.py:12111 ms0.6%
QuerySet._updatedjango/db/models/query.py:13271 ms0.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms0.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
finalize_profile_partsapps/api/tasks.py:2601 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms0.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)1 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(9 ms4.4%
Client.postdjango/test/client.py:11539 ms4.4%
RequestFactory.postdjango/test/client.py:4999 ms4.4%
RequestFactory.genericdjango/test/client.py:6719 ms4.4%
Client.requestdjango/test/client.py:10829 ms4.4%
ClientHandler.__call__django/test/client.py:1869 ms4.4%
BaseHandler.get_responsedjango/core/handlers/base.py:1419 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1309 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1239 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3099 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:349 ms4.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:559 ms4.4%
BaseHandler._get_responsedjango/core/handlers/base.py:1989 ms4.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:659 ms4.4%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:379 ms4.4%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:649 ms4.4%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:757 ms3.1%
profile_uploadapps/api/urls.py:1503 ms1.2%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()1 ms0.6%
QuerySet.firstdjango/db/models/query.py:11451 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
get_or_create_numberedapps/projects/models.py:21 number = next_number(model, project.pk)1 ms0.6%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 11 ms0.6%
QuerySet.aggregatedjango/db/models/query.py:5941 ms0.6%
Query.get_aggregationdjango/db/models/sql/query.py:6331 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
profile_uploadapps/api/urls.py:1371 ms0.6%
parse_documentapps/projects/profiles.py:77 document = json.loads(data)1 ms0.6%
loads<stdlib>/json/__init__.py:3711 ms0.6%
JSONDecoder.decode<stdlib>/json/decoder.py:3581 ms0.6%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:3741 ms0.6%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()1 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms0.6%
QuerySet.filterdjango/db/models/query.py:15421 ms0.6%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms0.6%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms0.6%
Query.add_qdjango/db/models/sql/query.py:16711 ms0.6%
Query._add_qdjango/db/models/sql/query.py:17031 ms0.6%
Query.build_filterdjango/db/models/sql/query.py:16131 ms0.6%
profile_uploadapps/api/urls.py:1591 ms0.6%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)1 ms0.6%
compress<stdlib>/gzip.py:6681 ms0.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))1 ms0.6%
get_object_or_404django/shortcuts.py:901 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))1 ms0.6%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1161 ms0.6%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)1 ms0.6%
QuerySet.__iter__django/db/models/query.py:3901 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
FlatValuesListIterable.__iter__django/db/models/query.py:2771 ms0.6%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms0.6%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms0.6%
ProfileUploadTest.uploadapps/api/tests.py:485 body = json.dumps(body).encode()1 ms0.6%
dumps<stdlib>/json/__init__.py:2341 ms0.6%
JSONEncoder.encode<stdlib>/json/encoder.py:2021 ms0.6%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2631 ms0.6%
ProfileUploadTest.test_upload_links_ingest_sessionapps/api/tests.py:6941 ms0.6%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2571 ms0.6%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2221 ms0.6%
QuerySet.getdjango/db/models/query.py:6351 ms0.6%
QuerySet.__len__django/db/models/query.py:3721 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms0.6%
ModelIterable.__iter__django/db/models/query.py:951 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3713 ms1.2%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms1.2%
TestCase._fixture_teardowndjango/test/testcases.py:14941 ms0.6%
TestCase._should_check_constraintsdjango/test/testcases.py:15031 ms0.6%
DatabaseWrapper.is_usabledjango/db/backends/postgresql/base.py:4921 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms0.6%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:791 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms0.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1001 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms0.6%
Cursor.executepsycopg/cursor.py:1131 ms0.6%
Connection.waitpsycopg/connection.py:4951 ms0.6%
teardown1 ms0.5%
CallInfo.from_call_pytest/runner.py:3531 ms0.5%
call_and_report.<locals>.<lambda>_pytest/runner.py:2451 ms0.5%
HookCaller.__call__pluggy/_hooks.py:5121 ms0.5%
PluginManager._hookexecpluggy/_manager.py:1201 ms0.5%
_multicallpluggy/_callers.py:1211 ms0.5%
pytest_runtest_teardown_pytest/runner.py:1941 ms0.5%
SetupState.teardown_exact_pytest/runner.py:5551 ms0.5%
FixtureDef.finish_pytest/fixtures.py:10421 ms0.5%
_teardown_yield_fixture_pytest/fixtures.py:9241 ms0.5%
UnitTestCase._register_unittest_setup_class_fixture.<locals>.unittest_setup_class_fixture_pytest/unittest.py:1641 ms0.5%
TestCase.tearDownClassdjango/test/testcases.py:1455 conn.close()1 ms0.5%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:261 ms0.5%
BaseDatabaseWrapper.closedjango/db/backends/base/base.py:3551 ms0.5%
DatabaseWrapper._closedjango/db/backends/postgresql/base.py:3961 ms0.5%
Connection.closepsycopg/connection.py:2011 ms0.5%
Estimated from 160 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/api/tests.py:678
start = self.client.post(
ProfileUploadTest.test_upload_links_ingest_session
· Libraries
|
164 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· Database
|
7 ms |
|
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
3 ms |
|
apps/projects/models.py:35
return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 1
next_number
· Database
|
3 ms |
|
apps/api/tasks.py:89
Session.objects.get_or_create(
process_ingest_start
· Database
|
3 ms |
|
apps/projects/profiles.py:383
commit, _ = Commit.objects.get_or_create(
claim_part
· Database
|
3 ms |
|
apps/api/tasks.py:79
ingest.project,
process_ingest_start
· Database
|
1 ms |
|
apps/api/tasks.py:105
ingest.save(update_fields=["date_processed"])
process_ingest_start
· Database
|
1 ms |
|
apps/api/tests.py:485
body = json.dumps(body).encode()
ProfileUploadTest.upload
· Serialization
|
1 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
|
1 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.08 ms |
| _dj_autoclear_mailbox function | 0.06 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.04 ms |
| monkeypatch function | 0.02 ms |
Database
96 queries · 36 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
|
213 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
|
teardown tearDownClass
django/test/testcases.py:1455
|
1 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 | |
|---|---|---|---|---|
| an hour ago | CI github-actions:test | passed | 217 ms | Profile |
| an hour ago | CI github-actions:test | passed | 208 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 128 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 64 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 114 ms | Profile |