flakytest.dev anze3db flakytest
Tests / apps/api/tests.py

ProfileUploadTest::test_processing_failure_is_recorded

First seen 3 weeks ago in 78a4357
CI github-actions:test 12 runs
Average
11 ms
median 12 ms
max 15 ms
Phases
Setup 0.67 ms Call 11 ms Teardown 0.15 ms
Categories
Database 10 ms Other (Unsampled, Libraries, pytest) 2 ms

15 database queries per run

Needs 4 KB of memory (max 12 KB)

Duration per run

Where the time goes

Latest run in ci:github-actions:test, 16 hours ago · open run
Show pytest frames
call11 ms92.9%
ProfileUploadTest.test_processing_failure_is_recordedapps/api/tests.py:9086 ms51.6%
_SharedTaskProxy.__call__potatoq/app.py:7636 ms51.6%
Task.__call__potatoq/task.py:1896 ms51.6%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms20.6%
QuerySet.getdjango/db/models/query.py:6352 ms20.6%
QuerySet.__len__django/db/models/query.py:3721 ms10.3%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms10.3%
ModelIterable.__iter__django/db/models/query.py:951 ms10.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms10.3%
CursorWrapper.executedjango/db/backends/utils.py:791 ms10.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms10.3%
process_profileapps/api/tasks.py:2391 ms10.3%
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()1 ms10.3%
QuerySet.firstdjango/db/models/query.py:11451 ms10.3%
QuerySet.__iter__django/db/models/query.py:3901 ms10.3%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms10.3%
ModelIterable.__iter__django/db/models/query.py:951 ms10.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms10.3%
CursorWrapper.executedjango/db/backends/utils.py:791 ms10.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms10.3%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms10.3%
Cursor.executepsycopg/cursor.py:1131 ms10.3%
Connection.waitpsycopg/connection.py:4951 ms10.3%
process_profileapps/api/tasks.py:243 ProfilePart.objects.filter(pk=part_id).update(status=ProfilePart.StatusTypes.FAILED, error=error)1 ms10.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms10.3%
QuerySet.filterdjango/db/models/query.py:15421 ms10.3%
process_profileapps/api/tasks.py:244 Profile.objects.filter(pk=part.profile_id).update(status=Profile.StatusTypes.FAILED, error=error)1 ms10.3%
QuerySet.updatedjango/db/models/query.py:13001 ms10.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21111 ms10.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16241 ms10.3%
CursorWrapper.executedjango/db/backends/utils.py:791 ms10.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms10.3%
CursorWrapper._executedjango/db/backends/utils.py:1051 ms10.3%
Cursor.executepsycopg/cursor.py:1131 ms10.3%
Connection.waitpsycopg/connection.py:4951 ms10.3%
ProfileUploadTest.test_processing_failure_is_recordedapps/api/tests.py:905 profile = Profile.objects.create(project=self.project)4 ms31.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms31.0%
QuerySet.createdjango/db/models/query.py:6692 ms20.6%
Profile.saveapps/projects/models.py:4651 ms10.3%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 11 ms10.3%
QuerySet.aggregatedjango/db/models/query.py:5941 ms10.3%
Query.get_aggregationdjango/db/models/sql/query.py:6331 ms10.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16461 ms10.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)1 ms10.3%
Model.savedjango/db/models/base.py:8741 ms10.3%
Model.save_basedjango/db/models/base.py:9661 ms10.3%
Model._save_tabledjango/db/models/base.py:11671 ms10.3%
Model._do_insertdjango/db/models/base.py:12181 ms10.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:871 ms10.3%
QuerySet._insertdjango/db/models/query.py:19181 ms10.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19251 ms10.3%
CursorWrapper.executedjango/db/backends/utils.py:791 ms10.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:921 ms10.3%
QuerySet.createdjango/db/models/query.py:6671 ms10.3%
Model.__init__django/db/models/base.py:5561 ms10.3%
ProfileUploadTest.test_processing_failure_is_recordedapps/api/tests.py:910 part.refresh_from_db()1 ms10.3%
Model.refresh_from_dbdjango/db/models/base.py:7581 ms10.3%
QuerySet.getdjango/db/models/query.py:6351 ms10.3%
QuerySet.__len__django/db/models/query.py:3721 ms10.3%
QuerySet._fetch_alldjango/db/models/query.py:20001 ms10.3%
ModelIterable.__iter__django/db/models/query.py:1271 ms10.3%
Estimated from 9 samples; phase durations are exact. Frames from pytest and pluggy are hidden .

Hot lines in your code

apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile · Database
2 ms
apps/api/tests.py:905
profile = Profile.objects.create(project=self.project)
ProfileUploadTest.test_processing_failure_is_recorded · Database
1 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
1 ms
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save · Database
1 ms
apps/projects/profiles.py:356
part = ProfilePart.objects.filter(pk=part.pk).first()
process_profile_part · Database
1 ms
apps/api/tasks.py:243
ProfilePart.objects.filter(pk=part_id).update(status=ProfilePart.StatusTypes.FAILED, error=error)
process_profile · Database
1 ms
apps/api/tasks.py:244
Profile.objects.filter(pk=part.profile_id).update(status=Profile.StatusTypes.FAILED, error=error)
process_profile · Database
1 ms
apps/api/tests.py:910
part.refresh_from_db()
ProfileUploadTest.test_processing_failure_is_recorded · 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

15 queries · 5 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"."…

Biggest pieces of work

call test body
apps/api/tests.py:905
11 ms

Reliability

12 results · 0 CI failures · 0 local failures

This test hasn't failed recently.

History

Latest 12 results, oldest first in the strip
When Environment Outcome Duration Commit
16 hours ago CI github-actions:test passed 12 ms e141198 main Profile
1 week, 5 days ago CI github-actions:test passed 8 ms 46ec2aa main Profile
2 weeks, 1 day ago CI github-actions:test passed 12 ms afde85b main Profile
2 weeks, 1 day ago CI github-actions:test passed 9 ms fe29f9d main Profile
2 weeks, 1 day ago CI github-actions:test passed 15 ms 044719a main Profile
2 weeks, 2 days ago CI github-actions:test passed 8 ms b3fedae main Profile
2 weeks, 4 days ago CI github-actions:test passed 13 ms 43c4eda main Profile
2 weeks, 6 days ago CI github-actions:test passed 13 ms 9caa567 main Profile
2 weeks, 6 days ago CI github-actions:test passed 12 ms ec75501 main Profile
3 weeks ago CI github-actions:test passed 15 ms d2c12e5 main Profile
3 weeks ago CI github-actions:test passed 8 ms 0b902f6 main Profile
3 weeks ago CI github-actions:test passed 13 ms 78a4357 main Profile