Tests / starter_packs/tests.py
TestOwnerManagement::test_cannot_remove_last_owner
First seen 14 hours ago in 0c23747
CI
github-actions:test
4 runs
Average
187 ms
median 214 ms
max 234 ms
max 234 ms
Phases
Setup 2 ms
Call 185 ms
Teardown 0.35 ms
Categories
Database 43 ms
Other (Libraries, Templates, Unsampled, pytest, ...) 144 ms
28 database queries per run
Needs 150 KB of memory (max 212 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 9 hours ago ·
open run
call84 ms98.7%
CallInfo.from_call_pytest/runner.py:36184 ms98.7%
call_and_report.<locals>.<lambda>_pytest/runner.py:25084 ms98.7%
HookCaller.__call__pluggy/_hooks.py:51284 ms98.7%
PluginManager._hookexecpluggy/_manager.py:12084 ms98.7%
_multicallpluggy/_callers.py:12182 ms96.5%
pytest_runtest_call_pytest/runner.py:18482 ms96.5%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:61482 ms96.5%
SimpleTestCase.__call__django/test/testcases.py:31482 ms96.5%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36979 ms92.1%
TestCase.__call__<stdlib>/unittest/case.py:74779 ms92.1%
TestCase.run<stdlib>/unittest/case.py:69179 ms92.1%
TestCase._callTestMethod<stdlib>/unittest/case.py:63779 ms92.1%
TestOwnerManagement.test_cannot_remove_last_ownerstarter_packs/tests.py:628 response = self.client.post(reverse("remove_owner", args=[self.pack.slug, self.owner.id]))67 ms78.9%
Client.postdjango/test/client.py:116267 ms78.9%
RequestFactory.postdjango/test/client.py:49967 ms78.9%
RequestFactory.genericdjango/test/client.py:67167 ms78.9%
Client.requestdjango/test/client.py:109167 ms78.9%
ClientHandler.__call__django/test/client.py:17341 ms48.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6339 ms46.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10439 ms46.0%
WhiteNoise.add_fileswhitenoise/base.py:10839 ms46.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12032 ms37.3%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13132 ms37.3%
WhiteNoise.get_static_filewhitenoise/base.py:21728 ms32.9%
StaticFile.__init__whitenoise/responders.py:7713 ms15.3%
StaticFile.get_alternativeswhitenoise/responders.py:2019 ms11.0%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms2.2%
Headers.__delitem__<stdlib>/wsgiref/headers.py:722 ms2.2%
<GC>~2 ms2.2%
StaticFile.get_alternativeswhitenoise/responders.py:2004 ms4.4%
StaticFile.__init__whitenoise/responders.py:737 ms8.8%
StaticFile.get_headerswhitenoise/responders.py:1784 ms4.4%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.2%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.2%
StaticFile.get_headerswhitenoise/responders.py:1762 ms2.2%
StaticFile.__init__whitenoise/responders.py:762 ms2.2%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1902 ms2.2%
Response.__init__whitenoise/responders.py:182 ms2.2%
<GC>~2 ms2.2%
StaticFile.__init__whitenoise/responders.py:742 ms2.2%
parsedate<stdlib>/email/_parseaddr.py:1852 ms2.2%
WhiteNoise.get_static_filewhitenoise/base.py:2122 ms2.2%
WhiteNoise.add_cache_headerswhitenoise/base.py:2332 ms2.2%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms2.2%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms2.2%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.2%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2352 ms2.2%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:2142 ms2.2%
WhiteNoise.get_static_filewhitenoise/base.py:2212 ms2.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms6.6%
scantreewhitenoise/base.py:2716 ms6.6%
scantreewhitenoise/base.py:2716 ms6.6%
scantreewhitenoise/base.py:2734 ms4.4%
scantreewhitenoise/base.py:2712 ms2.2%
scantreewhitenoise/base.py:2712 ms2.2%
scantreewhitenoise/base.py:2712 ms2.2%
scantreewhitenoise/base.py:2732 ms2.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:392 ms2.2%
ClientHandler.__call__django/test/client.py:18624 ms28.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14224 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12324 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:14524 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
MiddlewareMixin.__call__django/utils/deprecation.py:38024 ms28.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5624 ms28.5%
BaseHandler._get_responsedjango/core/handlers/base.py:19924 ms28.5%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6324 ms28.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:6224 ms28.5%
remove_ownerstarter_packs/views.py:51017 ms19.7%
owners_manager_contextstarter_packs/views.py:417 owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))9 ms11.0%
QuerySet.__iter__django/db/models/query.py:4397 ms8.8%
QuerySet._fetch_alldjango/db/models/query.py:22627 ms8.8%
ModelIterable.__iter__django/db/models/query.py:1037 ms8.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16257 ms8.8%
CursorWrapper.executedjango/db/backends/utils.py:797 ms8.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:927 ms8.8%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1026 ms6.6%
QueryStats.addflakytest/profiling/dbtrack.py:386 ms6.6%
normalize_sqlflakytest/profiling/dbtrack.py:246 ms6.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
ReverseManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:6972 ms2.2%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.__init__django/db/models/fields/related_descriptors.py:11152 ms2.2%
owners_manager_contextstarter_packs/views.py:418 invitations = list(6 ms6.6%
QuerySet.__iter__django/db/models/query.py:4396 ms6.6%
QuerySet._fetch_alldjango/db/models/query.py:22626 ms6.6%
ModelIterable.__iter__django/db/models/query.py:1036 ms6.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16256 ms6.6%
CursorWrapper.executedjango/db/backends/utils.py:796 ms6.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:926 ms6.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1004 ms4.4%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms4.4%
Cursor.executepsycopg/cursor.py:1134 ms4.4%
Connection.waitpsycopg/connection.py:4954 ms4.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms2.2%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms2.2%
normalize_sqlflakytest/profiling/dbtrack.py:252 ms2.2%
owners_manager_contextstarter_packs/views.py:419 starter_pack.invitations.select_related("invited_user__accountaccess__account").order_by("created_at")2 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.select_relateddjango/db/models/query.py:17882 ms2.2%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:23362 ms2.2%
QuerySet.querydjango/db/models/query.py:3552 ms2.2%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:17042 ms2.2%
Query.add_qdjango/db/models/sql/query.py:16812 ms2.2%
Query._add_qdjango/db/models/sql/query.py:17132 ms2.2%
Query.build_filterdjango/db/models/sql/query.py:16132 ms2.2%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms2.2%
BaseExpression.get_lookupdjango/db/models/expressions.py:4042 ms2.2%
remove_ownerstarter_packs/views.py:5057 ms8.8%
get_editable_packstarter_packs/views.py:60 return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)7 ms8.8%
get_object_or_404django/shortcuts.py:1007 ms8.8%
QuerySet.getdjango/db/models/query.py:7027 ms8.8%
QuerySet.__len__django/db/models/query.py:4217 ms8.8%
QuerySet._fetch_alldjango/db/models/query.py:22627 ms8.8%
ModelIterable.__iter__django/db/models/query.py:1037 ms8.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16256 ms6.6%
CursorWrapper.executedjango/db/backends/utils.py:796 ms6.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:926 ms6.6%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1006 ms6.6%
CursorWrapper._executedjango/db/backends/utils.py:1056 ms6.6%
Cursor.executepsycopg/cursor.py:1136 ms6.6%
Connection.waitpsycopg/connection.py:4956 ms6.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16122 ms2.2%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7932 ms2.2%
SQLCompiler.get_from_clausedjango/db/models/sql/compiler.py:11602 ms2.2%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5792 ms2.2%
ClientHandler.__call__django/test/client.py:2072 ms2.2%
HttpResponseBase.closedjango/http/response.py:3482 ms2.2%
Signal.senddjango/dispatch/dispatcher.py:2492 ms2.2%
close_cachesdjango/core/cache/__init__.py:642 ms2.2%
TestOwnerManagement.test_cannot_remove_last_ownerstarter_packs/tests.py:626 self.client.force_login(self.owner)7 ms8.8%
ClientMixin.force_logindjango/test/client.py:8587 ms8.8%
ClientMixin._logindjango/test/client.py:8896 ms6.6%
logindjango/contrib/auth/__init__.py:1894 ms4.4%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms2.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms2.2%
Model.savedjango/db/models/base.py:9042 ms2.2%
Model.save_basedjango/db/models/base.py:9962 ms2.2%
Model._save_tabledjango/db/models/base.py:11992 ms2.2%
Model._do_insertdjango/db/models/base.py:12512 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet._insertdjango/db/models/query.py:21412 ms2.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19362 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.2%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4402 ms2.2%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.getdjango/db/models/query.py:7022 ms2.2%
QuerySet.__len__django/db/models/query.py:4212 ms2.2%
QuerySet._fetch_alldjango/db/models/query.py:22622 ms2.2%
ModelIterable.__iter__django/db/models/query.py:1032 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms2.2%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms2.2%
normalize_sqlflakytest/profiling/dbtrack.py:252 ms2.2%
logindjango/contrib/auth/__init__.py:1982 ms2.2%
Signal.senddjango/dispatch/dispatcher.py:2492 ms2.2%
update_last_logindjango/contrib/auth/models.py:242 ms2.2%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms2.2%
Model.savedjango/db/models/base.py:9042 ms2.2%
Model.save_basedjango/db/models/base.py:9962 ms2.2%
Model._save_tabledjango/db/models/base.py:11402 ms2.2%
Model._do_updatedjango/db/models/base.py:12442 ms2.2%
QuerySet._updatedjango/db/models/query.py:14482 ms2.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21502 ms2.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21212 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.2%
ClientMixin._logindjango/test/client.py:8842 ms2.2%
ClientMixin.sessiondjango/test/client.py:8152 ms2.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms2.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms2.2%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms2.2%
TestOwnerManagement.test_cannot_remove_last_ownerstarter_packs/tests.py:627 self.assertEqual(self.pack.owners.count(), 1)2 ms2.2%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.countdjango/db/models/fields/related_descriptors.py:12962 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.countdjango/db/models/query.py:6772 ms2.2%
Query.get_countdjango/db/models/sql/query.py:6572 ms2.2%
Query.get_aggregationdjango/db/models/sql/query.py:6392 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms2.2%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms2.2%
normalize_sqlflakytest/profiling/dbtrack.py:242 ms2.2%
TestOwnerManagement.test_cannot_remove_last_ownerstarter_packs/tests.py:630 self.assertEqual(self.pack.owners.count(), 1)2 ms2.2%
create_forward_many_to_many_manager.<locals>.ManyRelatedManager.countdjango/db/models/fields/related_descriptors.py:12962 ms2.2%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.2%
QuerySet.countdjango/db/models/query.py:6772 ms2.2%
Query.get_countdjango/db/models/sql/query.py:6572 ms2.2%
Query.get_aggregationdjango/db/models/sql/query.py:6392 ms2.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16252 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3724 ms4.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1243 self._fixture_teardown()4 ms4.4%
TestCase._fixture_teardowndjango/test/testcases.py:14982 ms2.2%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4952 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.2%
TestCase._fixture_teardowndjango/test/testcases.py:15002 ms2.2%
TestCase._rollback_atomicsdjango/test/testcases.py:14082 ms2.2%
Atomic.__exit__django/db/transaction.py:2982 ms2.2%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.2%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.2%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.2%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.2%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.2%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.2%
Cursor.executepsycopg/cursor.py:1132 ms2.2%
Connection.waitpsycopg/connection.py:4952 ms2.2%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.2%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.2%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.2%
_multicallpluggy/_callers.py:1162 ms2.2%
LoggingPlugin.pytest_runtest_call_pytest/logging.py:8642 ms2.2%
_GeneratorContextManager.__enter__<stdlib>/contextlib.py:2032 ms2.2%
LoggingPlugin._runtest_for_pytest/logging.py:8312 ms2.2%
Estimated from 45 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
starter_packs/tests.py:628
response = self.client.post(reverse("remove_owner", args=[self.pack.slug, self.owner.id]))
TestOwnerManagement.test_cannot_remove_last_owner
· Libraries
|
43 ms |
|
starter_packs/views.py:417
owners = list(starter_pack.owners.select_related("accountaccess__account").order_by("username"))
owners_manager_context
· Database
|
9 ms |
|
starter_packs/views.py:60
return get_object_or_404(StarterPack, slug=slug, owners=request.user, **extra)
get_editable_pack
· Database
|
7 ms |
|
starter_packs/tests.py:626
self.client.force_login(self.owner)
TestOwnerManagement.test_cannot_remove_last_owner
· Database
|
7 ms |
|
starter_packs/views.py:418
invitations = list(
owners_manager_context
· Database
|
6 ms |
|
starter_packs/tests.py:627
self.assertEqual(self.pack.owners.count(), 1)
TestOwnerManagement.test_cannot_remove_last_owner
· Database
|
2 ms |
|
starter_packs/views.py:419
starter_pack.invitations.select_related("invited_user__accountaccess__account").order_by("created_at")
owners_manager_context
· Database
|
2 ms |
|
starter_packs/tests.py:630
self.assertEqual(self.pack.owners.count(), 1)
TestOwnerManagement.test_cannot_remove_last_owner
· Database
|
2 ms |
Fixtures
Exact setup time| _django_isolate_apps function | 0.07 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 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
28 queries · 16 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
3×
SELECT COUNT(*) AS "__count" FROM "auth_user" INNER JOIN "starter_packs_starterpack_owners" ON ("auth_user"."id" = "starter_packs_starterpack_owners"."user_id") WHERE "starter_packs_starterpack_owners"."starterpack_id" = %s
Biggest pieces of work
|
call test body
starter_packs/tests.py:628
|
79 ms |
|
call _post_teardown
django/test/testcases.py:1243
|
4 ms |
| call pytest internals | 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 | |
|---|---|---|---|---|
| 9 hours ago | CI github-actions:test | passed | 85 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 223 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 234 ms | Profile |
| 14 hours ago | CI github-actions:test | passed | 205 ms | Profile |
| 14 hours ago | CI github-actions:test | passed | 89 ms | Run |