CI
github-actions:test
5 runs
Average
36 ms
median 40 ms
max 43 ms
max 43 ms
Phases
Setup 0.74 ms
Call 35 ms
Teardown 0.18 ms
Categories
Database 6 ms
Other (Libraries, pytest, Unsampled) 30 ms
7 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
setup0.70 ms1.7%
CallInfo.from_call_pytest/runner.py:3530.70 ms1.7%
call_and_report.<locals>.<lambda>_pytest/runner.py:2450.70 ms1.7%
HookCaller.__call__pluggy/_hooks.py:5120.70 ms1.7%
PluginManager._hookexecpluggy/_manager.py:1200.70 ms1.7%
_multicallpluggy/_callers.py:1210.70 ms1.7%
pytest_runtest_setup_pytest/runner.py:1650.70 ms1.7%
SetupState.setup_pytest/runner.py:5230.70 ms1.7%
TestCaseFunction.setup_pytest/unittest.py:2270.70 ms1.7%
Function.setup_pytest/python.py:17230.70 ms1.7%
TopRequest._fillfixtures_pytest/fixtures.py:7070.70 ms1.7%
FixtureRequest.getfixturevalue_pytest/fixtures.py:5390.70 ms1.7%
FixtureRequest._get_active_fixturedef_pytest/fixtures.py:6270.70 ms1.7%
FixtureDef.execute_pytest/fixtures.py:11100.70 ms1.7%
HookCaller.__call__pluggy/_hooks.py:5120.70 ms1.7%
PluginManager._hookexecpluggy/_manager.py:1200.70 ms1.7%
call40 ms97.8%
CallInfo.from_call_pytest/runner.py:35340 ms97.8%
call_and_report.<locals>.<lambda>_pytest/runner.py:24540 ms97.8%
HookCaller.__call__pluggy/_hooks.py:51240 ms97.8%
PluginManager._hookexecpluggy/_manager.py:12040 ms97.8%
_multicallpluggy/_callers.py:12140 ms97.8%
pytest_runtest_call_pytest/runner.py:17940 ms97.8%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57340 ms97.8%
SimpleTestCase.__call__django/test/testcases.py:31340 ms97.8%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36834 ms83.8%
TestCase.__call__<stdlib>/unittest/case.py:74734 ms83.8%
TestCase.run<stdlib>/unittest/case.py:69134 ms83.8%
TestCase._callTestMethod<stdlib>/unittest/case.py:63734 ms83.8%
McpTest.test_batch_of_notificationsapps/mcp/tests.py:162 response = self.post([{"jsonrpc": "2.0", "method": "notifications/initialized"}])34 ms83.8%
McpTest.postapps/mcp/tests.py:66 return self.client.post(34 ms83.8%
Client.postdjango/test/client.py:115334 ms83.8%
RequestFactory.postdjango/test/client.py:49934 ms83.8%
RequestFactory.genericdjango/test/client.py:67134 ms83.8%
Client.requestdjango/test/client.py:108234 ms83.8%
ClientHandler.__call__django/test/client.py:17330 ms74.5%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6230 ms74.5%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10430 ms74.5%
WhiteNoise.add_fileswhitenoise/base.py:10830 ms74.5%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12025 ms60.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13125 ms60.5%
WhiteNoise.get_static_filewhitenoise/base.py:20817 ms41.9%
StaticFile.__init__whitenoise/responders.py:726 ms14.0%
StaticFile.get_file_statswhitenoise/responders.py:1616 ms14.0%
__init____init__:-16 ms14.0%
FileEntry.__init__whitenoise/responders.py:2606 ms14.0%
<GC>~6 ms14.0%
StaticFile.__init__whitenoise/responders.py:744 ms9.3%
parsedate<stdlib>/email/_parseaddr.py:1854 ms9.3%
StaticFile.__init__whitenoise/responders.py:764 ms9.3%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms4.7%
StaticFile.__init__whitenoise/responders.py:734 ms9.3%
StaticFile.get_headerswhitenoise/responders.py:1782 ms4.7%
parsedate<stdlib>/email/_parseaddr.py:1852 ms4.7%
StaticFile.get_headerswhitenoise/responders.py:1702 ms4.7%
WhiteNoise.get_static_filewhitenoise/base.py:2038 ms18.6%
WhiteNoise.add_cache_headerswhitenoise/base.py:2248 ms18.6%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1766 ms14.0%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1976 ms14.0%
URLMixin.urldebug_toolbar/panels/staticfiles.py:206 ms14.0%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2054 ms9.3%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1864 ms9.3%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2092 ms4.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms14.0%
scantreewhitenoise/base.py:2624 ms9.3%
scantreewhitenoise/base.py:2624 ms9.3%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2622 ms4.7%
scantreewhitenoise/base.py:2642 ms4.7%
scantreewhitenoise/base.py:2642 ms4.7%
scantreewhitenoise/base.py:2642 ms4.7%
ClientHandler.__call__django/test/client.py:1864 ms9.3%
BaseHandler.get_responsedjango/core/handlers/base.py:1414 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1304 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1234 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:344 ms9.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms9.3%
BaseHandler._get_responsedjango/core/handlers/base.py:1984 ms9.3%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:654 ms9.3%
mcpapps/mcp/urls.py:1254 ms9.3%
authenticateapps/mcp/urls.py:55 project = Project.objects.filter(secrettokens__token=token).first()2 ms4.7%
QuerySet.firstdjango/db/models/query.py:11452 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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
authenticateapps/mcp/urls.py:57 SecretTokens.objects.filter(token=token).update(date_last_used=timezone.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%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms4.7%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms4.7%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3716 ms14.0%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()6 ms14.0%
TestCase._fixture_teardowndjango/test/testcases.py:14954 ms9.3%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4834 ms9.3%
CursorWrapper.executedjango/db/backends/utils.py:794 ms9.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms9.3%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1004 ms9.3%
CursorWrapper._executedjango/db/backends/utils.py:1034 ms9.3%
Cursor.executepsycopg/cursor.py:1134 ms9.3%
Connection.waitpsycopg/connection.py:4954 ms9.3%
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%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms4.7%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms4.7%
Atomic.__exit__django/db/transaction.py:2862 ms4.7%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms4.7%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms4.7%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms4.7%
CursorWrapper.executedjango/db/backends/utils.py:792 ms4.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms4.7%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 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 22 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
|
30 ms |
|
apps/mcp/urls.py:55
project = Project.objects.filter(secrettokens__token=token).first()
authenticate
· Database
|
2 ms |
|
apps/mcp/urls.py:57
SecretTokens.objects.filter(token=token).update(date_last_used=timezone.now())
authenticate
· Database
|
2 ms |
Fixtures
Exact setup time| _django_set_urlconf function | 0.05 ms |
| _dj_autoclear_mailbox function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
7 queries · 3 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/mcp/tests.py:162
|
34 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
6 ms |
| setup pytest internals | 0.70 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 | 41 ms | Profile |
| an hour ago | CI github-actions:test | passed | 40 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 43 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 18 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 38 ms | Profile |