Tests / apps/api/tests.py
IngestEnvironmentTest::test_old_client_on_unknown_ci
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
49 ms
median 53 ms
max 77 ms
max 77 ms
Phases
Setup 0.68 ms
Call 48 ms
Teardown 0.17 ms
Categories
Database 22 ms
App code 0.51 ms
Other (Libraries, Unsampled, pytest) 26 ms
34 database queries per run
Needs 0 KB of memory (max 0 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call45 ms98.2%
IngestEnvironmentTest.test_old_client_on_unknown_ciapps/api/tests.py:406 session = self.ingest_start({"env": {"CI": "true"}})41 ms88.8%
IngestEnvironmentTest.ingest_startapps/api/tests.py:352 response = self.client.post(39 ms84.2%
Client.postdjango/test/client.py:115339 ms84.2%
RequestFactory.postdjango/test/client.py:49939 ms84.2%
RequestFactory.genericdjango/test/client.py:67139 ms84.2%
Client.requestdjango/test/client.py:108239 ms84.2%
ClientHandler.__call__django/test/client.py:18626 ms56.1%
BaseHandler.get_responsedjango/core/handlers/base.py:14126 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13026 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12326 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30926 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3426 ms56.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5526 ms56.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19826 ms56.1%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6526 ms56.1%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3726 ms56.1%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6426 ms56.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7522 ms46.8%
ingest_startapps/api/urls.py:100 process_ingest_start(ingest.id)17 ms37.4%
_SharedTaskProxy.__call__potatoq/app.py:76317 ms37.4%
Task.__call__potatoq/task.py:18917 ms37.4%
process_ingest_startapps/api/tasks.py:774 ms9.4%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()2 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.filterdjango/db/models/query.py:15422 ms4.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms4.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms4.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms4.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms4.7%
Query.build_filterdjango/db/models/sql/query.py:15992 ms4.7%
get_or_create_numberedapps/projects/models.py:212 ms4.7%
next_numberapps/projects/models.py:35 return (model.objects.filter(project_id=project_id).aggregate(last=models.Max("number"))["last"] or 0) + 12 ms4.7%
QuerySet.aggregatedjango/db/models/query.py:5942 ms4.7%
Query.get_aggregationdjango/db/models/sql/query.py:4862 ms4.7%
process_ingest_startapps/api/tasks.py:844 ms9.4%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms9.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms9.4%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms4.7%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:9382 ms4.7%
BaseDatabaseOperations.limit_offset_sqldjango/db/backends/base/operations.py:2502 ms4.7%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms4.7%
QuerySet.createdjango/db/models/query.py:6692 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11672 ms4.7%
Model._do_insertdjango/db/models/base.py:12182 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet._insertdjango/db/models/query.py:19182 ms4.7%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
process_ingest_startapps/api/tasks.py:54 data = ingest.data2 ms4.7%
DeferredAttribute.__get__django/db/models/query_utils.py:2712 ms4.7%
Model.refresh_from_dbdjango/db/models/base.py:7432 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.filterdjango/db/models/query.py:15422 ms4.7%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms4.7%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms4.7%
Query.add_qdjango/db/models/sql/query.py:16712 ms4.7%
Query._add_qdjango/db/models/sql/query.py:17032 ms4.7%
Query.build_filterdjango/db/models/sql/query.py:16132 ms4.7%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms4.7%
BaseExpression.get_lookupdjango/db/models/expressions.py:4042 ms4.7%
process_ingest_startapps/api/tasks.py:79 ingest.project,2 ms4.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2442 ms4.7%
ForeignObject.get_local_related_valuedjango/db/models/fields/related.py:8122 ms4.7%
ForeignObject.get_instance_value_for_fieldsdjango/db/models/fields/related.py:8342 ms4.7%
DeferredAttribute.__get__django/db/models/query_utils.py:2712 ms4.7%
Model.refresh_from_dbdjango/db/models/base.py:7582 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
process_ingest_startapps/api/tasks.py:89 Session.objects.get_or_create(2 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms4.7%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms4.7%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms4.7%
process_ingest_startapps/api/tasks.py:105 ingest.save(update_fields=["date_processed"])2 ms4.7%
Model.savedjango/db/models/base.py:8742 ms4.7%
Model.save_basedjango/db/models/base.py:9662 ms4.7%
Model._save_tabledjango/db/models/base.py:11102 ms4.7%
Model._do_updatedjango/db/models/base.py:12112 ms4.7%
QuerySet._updatedjango/db/models/query.py:13272 ms4.7%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms4.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
ingest_startapps/api/urls.py:91 muted_tests = Test.objects.filter(project=project, mute__date_unmuted__isnull=True, mute__until__gte=timezone.now())2 ms4.7%
ingest_startapps/api/urls.py:95 "muted_tests": [{"name": test.name} for test in muted_tests],2 ms4.7%
QuerySet.__iter__django/db/models/query.py:3902 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))2 ms4.7%
get_object_or_404django/shortcuts.py:902 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms4.7%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms4.7%
QuerySet.updatedjango/db/models/query.py:13002 ms4.7%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
ClientHandler.__call__django/test/client.py:17313 ms28.1%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6213 ms28.1%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10413 ms28.1%
WhiteNoise.add_fileswhitenoise/base.py:10813 ms28.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12011 ms23.4%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13111 ms23.4%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms18.7%
StaticFile.__init__whitenoise/responders.py:772 ms4.7%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms4.7%
StaticFile.__init__whitenoise/responders.py:732 ms4.7%
StaticFile.get_headerswhitenoise/responders.py:1762 ms4.7%
StaticFile.__init__whitenoise/responders.py:752 ms4.7%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms4.7%
Headers.get<stdlib>/wsgiref/headers.py:1072 ms4.7%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms4.7%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms4.7%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms4.7%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms4.7%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms4.7%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms4.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2642 ms4.7%
IngestEnvironmentTest.ingest_startapps/api/tests.py:359 return Session.objects.get(ingest_id=response.json()["ingest_id"])2 ms4.7%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms4.7%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms4.7%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms4.7%
IngestEnvironmentTest.test_old_client_on_unknown_ciapps/api/tests.py:407 self.assertEqual(session.environment.name, "ci:unknown")2 ms4.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms4.7%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms4.7%
QuerySet.getdjango/db/models/query.py:6352 ms4.7%
QuerySet.__len__django/db/models/query.py:3722 ms4.7%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.7%
ModelIterable.__iter__django/db/models/query.py:952 ms4.7%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms4.7%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms4.7%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms4.7%
Cursor.executepsycopg/cursor.py:1132 ms4.7%
Connection.waitpsycopg/connection.py:4952 ms4.7%
Estimated from 21 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/api/tests.py:352
response = self.client.post(
IngestEnvironmentTest.ingest_start
· Libraries
|
13 ms |
|
apps/projects/environments.py:63
obj, created = Environment.objects.get_or_create(
get_or_create_environment
· 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:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
2 ms |
|
apps/api/urls.py:91
muted_tests = Test.objects.filter(project=project, mute__date_unmuted__isnull=True, mute__until__gte=timezone.now())
ingest_start
· App code
|
2 ms |
|
apps/api/urls.py:95
"muted_tests": [{"name": test.name} for test in muted_tests],
ingest_start
· Database
|
2 ms |
|
apps/api/tasks.py:54
data = ingest.data
process_ingest_start
· Database
|
2 ms |
|
apps/api/tasks.py:79
ingest.project,
process_ingest_start
· Database
|
2 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
2 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
|
2 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.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
34 queries · 9 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/api/tests.py:406
|
43 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 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 | 46 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 | 51 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 39 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 56 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 32 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 58 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 57 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 77 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 28 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 59 ms | Profile |