I have been facing this issue:
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 203, in wrap_session
INTERNALERROR> session.exitstatus = doit(config, session) or 0
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 243, in _main
INTERNALERROR> config.hook.pytest_runtestloop(session=session)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/hooks.py", line 289, in __call__
INTERNALERROR> return self._hookexec(self, self.get_hookimpls(), kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 68, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 62, in <lambda>
INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR> return outcome.get_result()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR> raise ex[1].with_traceback(ex[2])
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/main.py", line 264, in pytest_runtestloop
INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/hooks.py", line 289, in __call__
INTERNALERROR> return self._hookexec(self, self.get_hookimpls(), kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 68, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 62, in <lambda>
INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR> return outcome.get_result()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR> raise ex[1].with_traceback(ex[2])
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/runner.py", line 78, in pytest_runtest_protocol
INTERNALERROR> runtestprotocol(item, nextitem=nextitem)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/runner.py", line 87, in runtestprotocol
INTERNALERROR> rep = call_and_report(item, "setup", log)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/runner.py", line 175, in call_and_report
INTERNALERROR> report = hook.pytest_runtest_makereport(item=item, call=call)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/hooks.py", line 289, in __call__
INTERNALERROR> return self._hookexec(self, self.get_hookimpls(), kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 68, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/manager.py", line 62, in <lambda>
INTERNALERROR> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 203, in _multicall
INTERNALERROR> gen.send(outcome)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/skipping.py", line 127, in pytest_runtest_makereport
INTERNALERROR> rep = outcome.get_result()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR> raise ex[1].with_traceback(ex[2])
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/runner.py", line 271, in pytest_runtest_makereport
INTERNALERROR> excinfo, style=item.config.option.tbstyle
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/nodes.py", line 284, in _repr_failure_py
INTERNALERROR> truncate_locals=truncate_locals,
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 556, in getrepr
INTERNALERROR> return fmt.repr_excinfo(self)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 806, in repr_excinfo
INTERNALERROR> reprtraceback = self.repr_traceback(excinfo)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 751, in repr_traceback
INTERNALERROR> reprentry = self.repr_traceback_entry(entry, einfo)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 710, in repr_traceback_entry
INTERNALERROR> reprargs = self.repr_args(entry) if not short else None
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 628, in repr_args
INTERNALERROR> args.append((argname, self._saferepr(argvalue)))
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_code/code.py", line 622, in _saferepr
INTERNALERROR> return saferepr(obj)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_io/saferepr.py", line 72, in saferepr
INTERNALERROR> return srepr.repr(obj)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_io/saferepr.py", line 12, in repr
INTERNALERROR> return self._callhelper(reprlib.Repr.repr, self, x)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_io/saferepr.py", line 38, in _callhelper
INTERNALERROR> s = call(x, *args)
INTERNALERROR> File "/usr/local/lib/python3.6/reprlib.py", line 55, in repr
INTERNALERROR> return self.repr1(x, self.maxlevel)
INTERNALERROR> File "/usr/local/lib/python3.6/reprlib.py", line 65, in repr1
INTERNALERROR> return self.repr_instance(x, level)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_io/saferepr.py", line 33, in repr_instance
INTERNALERROR> return self._callhelper(repr, x)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/_io/saferepr.py", line 38, in _callhelper
INTERNALERROR> s = call(x, *args)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 244, in __repr__
INTERNALERROR> data = list(self[:REPR_OUTPUT_SIZE + 1])
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 268, in __iter__
INTERNALERROR> self._fetch_all()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 1186, in _fetch_all
INTERNALERROR> self._result_cache = list(self._iterable_class(self))
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 54, in __iter__
INTERNALERROR> results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1063, in execute_sql
INTERNALERROR> cursor = self.connection.cursor()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py", line 255, in cursor
INTERNALERROR> return self._cursor()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py", line 232, in _cursor
INTERNALERROR> self.ensure_connection()
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/pytest_django/plugin.py", line 749, in _blocking_wrapper
INTERNALERROR> "Database access not allowed, "
INTERNALERROR> File "/usr/local/lib/python3.6/site-packages/_pytest/outcomes.py", line 113, in fail
INTERNALERROR> raise Failed(msg=msg, pytrace=pytrace)
INTERNALERROR> Failed: Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.
It happens when I have a FK in a model with a default
value set via a function that looks like this:
def default_value():
return ModelA.objects.get(name='foo').pk
It happened when I used the django_db
mark, even if it was on an empty test and even if this was the only test:
@pytest.mark.django_db
def test_this():
pass
If I comment the decorator, it wouldn't happen.
I feel the error has to do with the migrations.
Thank you!
PS: Edited to remove information that became irrelevant (see my comment below)
bug