CI
github-actions:test
5 runs
Average
53 ms
median 58 ms
max 61 ms
max 61 ms
Phases
Setup 0.68 ms
Call 52 ms
Teardown 0.17 ms
Categories
Database 24 ms
App code 1 ms
Other (Libraries, pytest, Unsampled) 27 ms
17 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, an hour ago ·
open run
call59 ms98.6%
CallInfo.from_call_pytest/runner.py:35359 ms98.6%
call_and_report.<locals>.<lambda>_pytest/runner.py:24559 ms98.6%
HookCaller.__call__pluggy/_hooks.py:51259 ms98.6%
PluginManager._hookexecpluggy/_manager.py:12059 ms98.6%
_multicallpluggy/_callers.py:12159 ms98.6%
pytest_runtest_call_pytest/runner.py:17959 ms98.6%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57359 ms98.6%
SimpleTestCase.__call__django/test/testcases.py:31359 ms98.6%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36857 ms94.6%
TestCase.__call__<stdlib>/unittest/case.py:74757 ms94.6%
TestCase.run<stdlib>/unittest/case.py:69157 ms94.6%
TestCase._callTestMethod<stdlib>/unittest/case.py:63757 ms94.6%
McpTest.test_list_runsapps/mcp/tests.py:268 result = self.call("list_runs", limit=2)50 ms82.8%
McpTest.callapps/mcp/tests.py:8150 ms82.8%
McpTest.rpcapps/mcp/tests.py:7450 ms82.8%
McpTest.postapps/mcp/tests.py:66 return self.client.post(50 ms82.8%
Client.postdjango/test/client.py:115350 ms82.8%
RequestFactory.postdjango/test/client.py:49950 ms82.8%
RequestFactory.genericdjango/test/client.py:67150 ms82.8%
Client.requestdjango/test/client.py:108250 ms82.8%
ClientHandler.__call__django/test/client.py:17333 ms55.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6233 ms55.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10433 ms55.2%
WhiteNoise.add_fileswhitenoise/base.py:10833 ms55.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12031 ms51.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13128 ms47.3%
WhiteNoise.get_static_filewhitenoise/base.py:20814 ms23.7%
StaticFile.__init__whitenoise/responders.py:747 ms11.8%
parsedate<stdlib>/email/_parseaddr.py:1857 ms11.8%
StaticFile.__init__whitenoise/responders.py:732 ms3.9%
StaticFile.get_headerswhitenoise/responders.py:1782 ms3.9%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.9%
StaticFile.__init__whitenoise/responders.py:762 ms3.9%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms3.9%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms3.9%
Headers.get<stdlib>/wsgiref/headers.py:1062 ms3.9%
WhiteNoise.get_static_filewhitenoise/base.py:20312 ms19.7%
WhiteNoise.add_cache_headerswhitenoise/base.py:22412 ms19.7%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:18012 ms19.7%
<GC>~12 ms19.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms3.9%
scantreewhitenoise/base.py:2622 ms3.9%
ClientHandler.__call__django/test/client.py:18614 ms23.7%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms23.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms23.7%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms23.7%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6514 ms23.7%
mcpapps/mcp/urls.py:14712 ms19.7%
handleapps/mcp/urls.py:11512 ms19.7%
call_toolapps/mcp/urls.py:7512 ms19.7%
Tools.callapps/mcp/tools.py:18112 ms19.7%
Tools.list_runsapps/mcp/tools.py:462 scope.profiles().select_related("commit").defer("summary", "insights").order_by("-started_at")[:limit]5 ms7.9%
QuerySet.__iter__django/db/models/query.py:3905 ms7.9%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms7.9%
ModelIterable.__iter__django/db/models/query.py:955 ms7.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16622 ms3.9%
cursor_iterdjango/db/models/sql/compiler.py:22542 ms3.9%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22542 ms3.9%
DatabaseErrorWrapper.__call__.<locals>.innerdjango/db/utils.py:1012 ms3.9%
Cursor.fetchmanypsycopg/cursor.py:2682 ms3.9%
Tools.list_runsapps/mcp/tools.py:486 for session in sessions:5 ms7.9%
QuerySet.__iter__django/db/models/query.py:3905 ms7.9%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms7.9%
ModelIterable.__iter__django/db/models/query.py:955 ms7.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16245 ms7.9%
CursorWrapper.executedjango/db/backends/utils.py:795 ms7.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms7.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1005 ms7.9%
CursorWrapper._executedjango/db/backends/utils.py:1055 ms7.9%
Cursor.executepsycopg/cursor.py:1135 ms7.9%
Connection.waitpsycopg/connection.py:4955 ms7.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms3.9%
Tools.list_runsapps/mcp/tools.py:4672 ms3.9%
Tools.urlapps/mcp/tools.py:1702 ms3.9%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms3.9%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms3.9%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms3.9%
QuerySet.getdjango/db/models/query.py:6352 ms3.9%
QuerySet.__len__django/db/models/query.py:3722 ms3.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.9%
ModelIterable.__iter__django/db/models/query.py:952 ms3.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms3.9%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms3.9%
mcpapps/mcp/urls.py:1252 ms3.9%
authenticateapps/mcp/urls.py:55 project = Project.objects.filter(secrettokens__token=token).first()2 ms3.9%
QuerySet.firstdjango/db/models/query.py:11452 ms3.9%
QuerySet.__iter__django/db/models/query.py:3902 ms3.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.9%
ModelIterable.__iter__django/db/models/query.py:952 ms3.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
ClientHandler.__call__django/test/client.py:1762 ms3.9%
Signal.senddjango/dispatch/dispatcher.py:2032 ms3.9%
McpTest.test_list_runsapps/mcp/tests.py:2727 ms11.8%
McpTest.callapps/mcp/tests.py:817 ms11.8%
McpTest.rpcapps/mcp/tests.py:747 ms11.8%
McpTest.postapps/mcp/tests.py:66 return self.client.post(7 ms11.8%
Client.postdjango/test/client.py:11537 ms11.8%
RequestFactory.postdjango/test/client.py:4997 ms11.8%
RequestFactory.genericdjango/test/client.py:6717 ms11.8%
Client.requestdjango/test/client.py:10827 ms11.8%
ClientHandler.__call__django/test/client.py:1867 ms11.8%
BaseHandler.get_responsedjango/core/handlers/base.py:1417 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1307 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1237 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
MiddlewareMixin.__call__django/utils/deprecation.py:3097 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:347 ms11.8%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:557 ms11.8%
BaseHandler._get_responsedjango/core/handlers/base.py:1987 ms11.8%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:657 ms11.8%
mcpapps/mcp/urls.py:1477 ms11.8%
handleapps/mcp/urls.py:1157 ms11.8%
call_toolapps/mcp/urls.py:757 ms11.8%
Tools.callapps/mcp/tools.py:1817 ms11.8%
Tools.list_runsapps/mcp/tools.py:486 for session in sessions:5 ms7.9%
QuerySet.__iter__django/db/models/query.py:3905 ms7.9%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms7.9%
ModelIterable.__iter__django/db/models/query.py:952 ms3.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
ModelIterable.__iter__django/db/models/query.py:1272 ms3.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15772 ms3.9%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15262 ms3.9%
Tools.list_runsapps/mcp/tools.py:462 scope.profiles().select_related("commit").defer("summary", "insights").order_by("-started_at")[:limit]2 ms3.9%
QuerySet.__iter__django/db/models/query.py:3902 ms3.9%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.9%
ModelIterable.__iter__django/db/models/query.py:952 ms3.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3712 ms3.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms3.9%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms3.9%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms3.9%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.9%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms3.9%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.9%
Cursor.executepsycopg/cursor.py:1132 ms3.9%
Connection.waitpsycopg/connection.py:4952 ms3.9%
Estimated from 25 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/mcp/tests.py:66
return self.client.post(
McpTest.post
· Libraries
|
35 ms |
|
apps/mcp/tools.py:486
for session in sessions:
Tools.list_runs
· Database
|
9 ms |
|
apps/mcp/tools.py:462
scope.profiles().select_related("commit").defer("summary", "insights").order_by("-started_at")[:limit]
Tools.list_runs
· Database
|
7 ms |
|
apps/mcp/urls.py:55
project = Project.objects.filter(secrettokens__token=token).first()
authenticate
· Database
|
2 ms |
|
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
17 queries · 9 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/mcp/tests.py:268
|
57 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 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 | 60 ms | Profile |
| an hour ago | CI github-actions:test | passed | 58 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 61 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 30 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 56 ms | Profile |