CI
github-actions:test
12 runs
Average
48 ms
median 54 ms
max 69 ms
max 69 ms
Phases
Setup 0.64 ms
Call 47 ms
Teardown 0.15 ms
Categories
Database 27 ms
App code 1 ms
Test code 0.18 ms
Other (Libraries, Unsampled, Serialization, pytest) 20 ms
17 database queries per run
Needs 59 KB of memory (max 540 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call48 ms98.2%
McpTest.test_get_test_by_substringapps/mcp/tests.py:235 self.assertEqual(self.call("get_test", nodeid="test_monthly_report")["nodeid"], SLOW)46 ms94.0%
McpTest.callapps/mcp/tests.py:8246 ms94.0%
McpTest.rpcapps/mcp/tests.py:7546 ms94.0%
McpTest.postapps/mcp/tests.py:67 return self.client.post(46 ms94.0%
Client.postdjango/test/client.py:115346 ms94.0%
RequestFactory.postdjango/test/client.py:49946 ms94.0%
RequestFactory.genericdjango/test/client.py:67146 ms94.0%
Client.requestdjango/test/client.py:108246 ms94.0%
ClientHandler.__call__django/test/client.py:17327 ms55.5%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6227 ms55.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10427 ms55.5%
WhiteNoise.add_fileswhitenoise/base.py:10827 ms55.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12025 ms51.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13123 ms47.0%
WhiteNoise.get_static_filewhitenoise/base.py:20815 ms29.9%
StaticFile.__init__whitenoise/responders.py:776 ms12.8%
StaticFile.get_alternativeswhitenoise/responders.py:2006 ms12.8%
__init____init__:-12 ms4.3%
StaticFile.__init__whitenoise/responders.py:764 ms8.5%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms4.3%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms4.3%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms4.3%
StaticFile.__init__whitenoise/responders.py:734 ms8.5%
StaticFile.get_headerswhitenoise/responders.py:1682 ms4.3%
StaticFile.get_headerswhitenoise/responders.py:1762 ms4.3%
WhiteNoise.get_static_filewhitenoise/base.py:2038 ms17.1%
WhiteNoise.add_cache_headerswhitenoise/base.py:2248 ms17.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1768 ms17.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1978 ms17.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:216 ms12.8%
<GC>~6 ms12.8%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms4.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms4.3%
scantreewhitenoise/base.py:2622 ms4.3%
scantreewhitenoise/base.py:2622 ms4.3%
scantreewhitenoise/base.py:2642 ms4.3%
ClientHandler.__call__django/test/client.py:18619 ms38.4%
BaseHandler.get_responsedjango/core/handlers/base.py:14119 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13019 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12319 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
MiddlewareMixin.__call__django/utils/deprecation.py:30919 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3419 ms38.4%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5519 ms38.4%
BaseHandler._get_responsedjango/core/handlers/base.py:19819 ms38.4%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6519 ms38.4%
mcpapps/mcp/urls.py:14715 ms29.9%
handleapps/mcp/urls.py:11515 ms29.9%
call_toolapps/mcp/urls.py:7515 ms29.9%
Tools.callapps/mcp/tools.py:18815 ms29.9%
Tools.get_testapps/mcp/tools.py:37010 ms21.4%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])10 ms21.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms4.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms4.3%
QuerySet.getdjango/db/models/query.py:6352 ms4.3%
QuerySet.__len__django/db/models/query.py:3722 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ModelIterable.__iter__django/db/models/query.py:952 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms4.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms4.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms4.3%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)2 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms4.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms4.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms4.3%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms4.3%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms4.3%
observations_forapps/projects/flakiness.py:179 perfs = TestPerf.objects.filter(2 ms4.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.3%
QuerySet.filterdjango/db/models/query.py:15422 ms4.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms4.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms4.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms4.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms4.3%
observations_forapps/projects/flakiness.py:186 perfs = list(perfs)2 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms4.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms4.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms4.3%
observations_forapps/projects/flakiness.py:189 for row in Profile.objects.filter(id__in={row[3] for row in perfs}).values_list(2 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms4.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
Tools.get_testapps/mcp/tools.py:3302 ms4.3%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()2 ms4.3%
QuerySet.firstdjango/db/models/query.py:11452 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ModelIterable.__iter__django/db/models/query.py:952 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
Tools.get_testapps/mcp/tools.py:3342 ms4.3%
latest_documentapps/projects/profiles.py:303 ).first()2 ms4.3%
QuerySet.firstdjango/db/models/query.py:11452 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ModelIterable.__iter__django/db/models/query.py:952 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
mcpapps/mcp/urls.py:1254 ms8.5%
authenticateapps/mcp/urls.py:55 project = Project.objects.filter(secrettokens__token=token).first()4 ms8.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms4.3%
QuerySet.firstdjango/db/models/query.py:11452 ms4.3%
QuerySet.__iter__django/db/models/query.py:3902 ms4.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms4.3%
ModelIterable.__iter__django/db/models/query.py:952 ms4.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms4.3%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms4.3%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms4.3%
Cursor.executepsycopg/cursor.py:1132 ms4.3%
Connection.waitpsycopg/connection.py:4952 ms4.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms4.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms4.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms4.3%
teardown0.19 ms0.4%
Estimated from 24 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/mcp/tests.py:67
return self.client.post(
McpTest.post
· Libraries
|
27 ms |
|
apps/mcp/urls.py:55
project = Project.objects.filter(secrettokens__token=token).first()
authenticate
· Database
|
4 ms |
|
apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf
· Database
|
2 ms |
|
apps/projects/profiles.py:303
).first()
latest_document
· Database
|
2 ms |
|
apps/projects/flakiness.py:326
history = observations_for(test.project, [test.id], since).get(test.id, [])
flakiness_for_test
· Database
|
2 ms |
|
apps/projects/flakiness.py:165
test_runs = list(test_runs)
observations_for
· Database
|
2 ms |
|
apps/projects/flakiness.py:179
perfs = TestPerf.objects.filter(
observations_for
· Database
|
2 ms |
|
apps/projects/flakiness.py:186
perfs = list(perfs)
observations_for
· Database
|
2 ms |
|
apps/projects/flakiness.py:189
for row in Profile.objects.filter(id__in={row[3] for row in perfs}).values_list(
observations_for
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
17 queries · 7 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/mcp/tests.py:235
|
46 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
| teardown pytest internals | 0.19 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 | 49 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 25 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 53 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 38 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 69 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 29 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 60 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 57 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 56 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 61 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 25 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 54 ms | Profile |