Tests / apps/projects/tests.py
MemoryTest::test_reprocessing_doesnt_count_memory_twice
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
42 ms
median 45 ms
max 53 ms
max 53 ms
Phases
Setup 0.65 ms
Call 41 ms
Teardown 0.17 ms
Categories
Database 39 ms
App code 1 ms
Test code 0.16 ms
Other (Unsampled, Libraries, Serialization, pytest, ...) 2 ms
59 database queries per run
Needs 0 KB of memory (max 4 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.73 ms1.7%
__init____init__:-10.73 ms1.7%
call43 ms98.0%
MemoryTest.test_reprocessing_doesnt_count_memory_twiceapps/projects/tests.py:1427 process_profile_part(self.latest.part_set.get())30 ms69.5%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)19 ms44.2%
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)7 ms15.8%
QuerySet.getdjango/db/models/query.py:6357 ms15.8%
QuerySet.__len__django/db/models/query.py:3727 ms15.8%
QuerySet._fetch_alldjango/db/models/query.py:20007 ms15.8%
ModelIterable.__iter__django/db/models/query.py:953 ms6.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms6.3%
CursorWrapper.executedjango/db/backends/utils.py:793 ms6.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms6.3%
ModelIterable.__iter__django/db/models/query.py:1273 ms6.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15771 ms3.2%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15261 ms3.2%
Col.get_db_convertersdjango/db/models/expressions.py:13391 ms3.2%
Field.__eq__django/db/models/fields/__init__.py:6771 ms3.2%
SQLCompiler.apply_convertersdjango/db/models/sql/compiler.py:15421 ms3.2%
JSONField.from_db_valuedjango/db/models/fields/json.py:921 ms3.2%
loads<stdlib>/json/__init__.py:3711 ms3.2%
JSONDecoder.decode<stdlib>/json/decoder.py:3581 ms3.2%
ModelIterable.__iter__django/db/models/query.py:1071 ms3.2%
claim_partapps/projects/profiles.py:3844 ms9.5%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(3 ms6.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms6.3%
QuerySet.bulk_createdjango/db/models/query.py:8163 ms6.3%
QuerySet._batched_insertdjango/db/models/query.py:19563 ms6.3%
QuerySet._insertdjango/db/models/query.py:19183 ms6.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms6.3%
CursorWrapper.executedjango/db/backends/utils.py:793 ms6.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms6.3%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2051 ms3.2%
BaseCursor._convert_querypsycopg/_cursor_base.py:4651 ms3.2%
PostgresClientQuery.convertpsycopg/_queries.py:2891 ms3.2%
PostgresClientQuery.dumppsycopg/_queries.py:2991 ms3.2%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3001 ms3.2%
ListDumper.get_keypsycopg/types/array.py:1231 ms3.2%
BaseListDumper._find_list_elementpsycopg/types/array.py:571 ms3.2%
BaseListDumper._flatiterpsycopg/types/array.py:891 ms3.2%
<GC>~1 ms3.2%
add_perfsapps/projects/rollups.py:30 for perf in perfs:1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
claim_partapps/projects/profiles.py:380 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)3 ms6.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.filterdjango/db/models/query.py:15421 ms3.2%
QuerySet._filter_or_excludedjango/db/models/query.py:15601 ms3.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15701 ms3.2%
Query.add_qdjango/db/models/sql/query.py:16711 ms3.2%
Query._add_qdjango/db/models/sql/query.py:17031 ms3.2%
Query.build_filterdjango/db/models/sql/query.py:16131 ms3.2%
Query.build_lookupdjango/db/models/sql/query.py:14301 ms3.2%
BaseExpression.get_lookupdjango/db/models/expressions.py:4041 ms3.2%
RegisterLookupMixin.get_lookupdjango/db/models/query_utils.py:3281 ms3.2%
QuerySet.updatedjango/db/models/query.py:12741 ms3.2%
UpdateQuery.add_update_valuesdjango/db/models/sql/subqueries.py:1041 ms3.2%
UpdateQuery.add_update_fieldsdjango/db/models/sql/subqueries.py:1161 ms3.2%
claim_partapps/projects/profiles.py:3993 ms6.3%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(1 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.get_or_createdjango/db/models/query.py:9871 ms3.2%
QuerySet.getdjango/db/models/query.py:6271 ms3.2%
get_or_create_environmentapps/projects/environments.py:79 obj.save(update_fields=update_fields)1 ms3.2%
Model.savedjango/db/models/base.py:8741 ms3.2%
Model.save_basedjango/db/models/base.py:9661 ms3.2%
Model._save_tabledjango/db/models/base.py:11101 ms3.2%
Model._do_updatedjango/db/models/base.py:12111 ms3.2%
QuerySet._updatedjango/db/models/query.py:13271 ms3.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms3.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
claim_partapps/projects/profiles.py:383 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()1 ms3.2%
QuerySet.firstdjango/db/models/query.py:11451 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
claim_partapps/projects/profiles.py:450 profile.skipped_count = integer(summary.get("skipped"))1 ms3.2%
process_profile_partapps/projects/profiles.py:3654 ms9.5%
upsert_testsapps/projects/profiles.py:4724 ms9.5%
TestManager.upsertapps/projects/models.py:2291 ms3.2%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ValuesListIterable.__iter__django/db/models/query.py:2381 ms3.2%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15731 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order1 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms3.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms3.2%
QuerySet._insertdjango/db/models/query.py:19181 ms3.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
process_profile_partapps/projects/profiles.py:3663 ms6.3%
write_perfsapps/projects/profiles.py:478 TestPerf.objects.filter(profile=profile, part=part.index).delete()1 ms3.2%
QuerySet.deletedjango/db/models/query.py:12381 ms3.2%
Collector.deletedjango/db/models/deletion.py:4711 ms3.2%
QuerySet._raw_deletedjango/db/models/query.py:12601 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(1 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.bulk_createdjango/db/models/query.py:8331 ms3.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms3.2%
QuerySet._insertdjango/db/models/query.py:19181 ms3.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
process_profile_partapps/projects/profiles.py:3673 ms6.3%
write_snapshotsapps/projects/profiles.py:3331 ms3.2%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3311 ms3.2%
write_snapshots.<locals>.rowapps/projects/profiles.py:327 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),1 ms3.2%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)1 ms3.2%
compress<stdlib>/gzip.py:6681 ms3.2%
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)1 ms3.2%
CursorWrapper.executemanydjango/db/backends/utils.py:841 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executemanydjango/db/backends/utils.py:1141 ms3.2%
Cursor.executemanypsycopg/cursor.py:1371 ms3.2%
Connection._pipeline_nolockpsycopg/connection.py:4721 ms3.2%
Pipeline.__exit__psycopg/_pipeline.py:731 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
process_profile_partapps/projects/profiles.py:368 ProfilePart.objects.filter(pk=part.pk).update(1 ms3.2%
QuerySet.updatedjango/db/models/query.py:13001 ms3.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
MemoryTest.test_reprocessing_doesnt_count_memory_twiceapps/projects/tests.py:142810 ms22.1%
finalize_profileapps/projects/profiles.py:5174 ms9.5%
add_perfsapps/projects/rollups.py:30 for perf in perfs:1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:1281 ms3.2%
Model.from_dbdjango/db/models/base.py:6021 ms3.2%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16621 ms3.2%
cursor_iterdjango/db/models/sql/compiler.py:22541 ms3.2%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22541 ms3.2%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(1 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.bulk_createdjango/db/models/query.py:8161 ms3.2%
QuerySet._batched_insertdjango/db/models/query.py:19561 ms3.2%
QuerySet._insertdjango/db/models/query.py:19181 ms3.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)1 ms3.2%
QuerySet.getdjango/db/models/query.py:6351 ms3.2%
QuerySet.__len__django/db/models/query.py:3721 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
finalize_profileapps/projects/profiles.py:504 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):1 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
finalize_profileapps/projects/profiles.py:516 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()1 ms3.2%
QuerySet.firstdjango/db/models/query.py:11451 ms3.2%
QuerySet.__iter__django/db/models/query.py:3901 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
finalize_profileapps/projects/profiles.py:5251 ms3.2%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms3.2%
Model.savedjango/db/models/base.py:8741 ms3.2%
Model.save_basedjango/db/models/base.py:9661 ms3.2%
Model._save_tabledjango/db/models/base.py:11101 ms3.2%
Model._do_updatedjango/db/models/base.py:12111 ms3.2%
QuerySet._updatedjango/db/models/query.py:13271 ms3.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21401 ms3.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
MemoryTest.test_reprocessing_doesnt_count_memory_twiceapps/projects/tests.py:14291 ms3.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms3.2%
QuerySet.getdjango/db/models/query.py:6351 ms3.2%
QuerySet.__len__django/db/models/query.py:3721 ms3.2%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms3.2%
ModelIterable.__iter__django/db/models/query.py:951 ms3.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()1 ms3.2%
TestCase._fixture_teardowndjango/test/testcases.py:14951 ms3.2%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4831 ms3.2%
CursorWrapper.executedjango/db/backends/utils.py:791 ms3.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms3.2%
CursorWrapper._executedjango/db/backends/utils.py:1031 ms3.2%
Cursor.executepsycopg/cursor.py:1131 ms3.2%
Connection.waitpsycopg/connection.py:4951 ms3.2%
Estimated from 32 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/profiles.py:379
profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)
claim_part
· Database
|
7 ms |
|
apps/projects/rollups.py:88
TestDailyStats.objects.bulk_create(
add_perfs
· Database
|
4 ms |
|
apps/projects/profiles.py:380
ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)
claim_part
· Database
|
3 ms |
|
apps/projects/rollups.py:30
for perf in perfs:
add_perfs
· Database
|
3 ms |
|
apps/projects/profiles.py:383
Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()
claim_part
· Database
|
1 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· Database
|
1 ms |
|
apps/projects/environments.py:79
obj.save(update_fields=update_fields)
get_or_create_environment
· Database
|
1 ms |
|
apps/projects/profiles.py:450
profile.skipped_count = integer(summary.get("skipped"))
claim_part
· App code
|
1 ms |
|
apps/projects/models.py:240
existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))
TestManager.slugs_for
· Database
|
1 ms |
|
apps/projects/models.py:230
self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order
TestManager.upsert
· Database
|
1 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
59 queries · 20 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
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"."…
3×
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…
3×
SELECT "projects_testdailystats"."id", "projects_testdailystats"."project_id", "projects_testdailystats"."test_id", "projects_testdailystats"."environment_id", "projects_testdailystats"."day", "projects_testdailystats"."runs", "projects_testdailystats"."failures", "projects_testdailystats"."duratio…
Biggest pieces of work
|
call test body
apps/projects/tests.py:1427
|
41 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
1 ms |
|
setup __init__
__init__:-1
|
0.73 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 | 43 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 27 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 46 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 34 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 48 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 30 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 51 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 45 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 46 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 53 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 31 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 48 ms | Profile |