#36112: Test errors on Oracle with --debug-sql
-----------------------------+---------------------------------------------
     Reporter:  Jacob Walls  |                     Type:  Bug
       Status:  new          |                Component:  Testing framework
      Version:  dev          |                 Severity:  Release blocker
     Keywords:               |             Triage Stage:  Unreviewed
    Has patch:  0            |      Needs documentation:  0
  Needs tests:  0            |  Patch needs improvement:  0
Easy pickings:  0            |                    UI/UX:  0
-----------------------------+---------------------------------------------
 With django-docker-box,

 {{{
 docker compose run --rm oracle backends --debug-sql
 }}}

 Gives two new failures bisected to
 d8f093908c504ae0dbc39d3f5231f7d7920dde37. (The third failure you get when
 running this command is omitted since it's pre-existing and reproducible
 on all databases, so it's not relevant here.)

 This is also distinct from the failure currently showing on the oracle
 runner on main.

 {{{
 ===============
 ERROR: test_outer_wrapper_blocks
 (backends.base.test_base.ExecuteWrapperTests)
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/django/source/tests/backends/base/test_base.py", line 192, in
 test_outer_wrapper_blocks
     cursor.execute("The database never sees this")
   File "/django/source/django/db/backends/utils.py", line 121, in execute
     with self.debug_sql(sql, params, use_last_executed_query=True):
   File "/usr/local/lib/python3.10/contextlib.py", line 142, in __exit__
     next(self.gen)
   File "/django/source/django/db/backends/utils.py", line 154, in
 debug_sql
     self.db.ops.format_debug_sql(sql),
   File "/django/source/django/db/backends/base/operations.py", line 791,
 in format_debug_sql
     return sqlparse.format(sql, reindent=True, keyword_case="upper")
   File "/usr/local/lib/python3.10/site-packages/sqlparse/__init__.py",
 line 59, in format
     return ''.join(stack.run(sql, encoding))
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/engine/filter_stack.py", line 39, in run
     for stmt in stream:
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/engine/statement_splitter.py", line 87, in process
     for ttype, value in stream:
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/filters/tokens.py", line 19, in process
     for ttype, value in stream:
   File "/usr/local/lib/python3.10/site-packages/sqlparse/lexer.py", line
 134, in get_tokens
     raise TypeError("Expected text or file-like object, got {!r}".
 TypeError: Expected text or file-like object, got <class 'NoneType'>

 ----------------------------------------------------------------------

 ======================================================================
 ERROR: test_cursor_contextmanager (backends.tests.BackendTestCase)
 Cursors can be used as a context manager
 ----------------------------------------------------------------------
 Traceback (most recent call last):
   File "/django/source/django/db/backends/utils.py", line 103, in _execute
     return self.cursor.execute(sql)
   File "/django/source/django/db/backends/oracle/base.py", line 627, in
 execute
     return self.cursor.execute(query, self._param_generator(params))
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 708, in execute
     self._prepare_for_execute(statement, parameters, keyword_parameters)
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 136, in _prepare_for_execute
     self._verify_open()
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 155, in _verify_open
     errors._raise_err(errors.ERR_CURSOR_NOT_OPEN)
   File "/usr/local/lib/python3.10/site-packages/oracledb/errors.py", line
 195, in _raise_err
     raise error.exc_type(error) from cause
 oracledb.exceptions.InterfaceError: DPY-1006: cursor is not open

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "/django/source/django/db/backends/utils.py", line 134, in
 debug_sql
     yield
   File "/django/source/django/db/backends/utils.py", line 122, in execute
     return super().execute(sql, params)
   File "/django/source/django/db/backends/utils.py", line 79, in execute
     return self._execute_with_wrappers(
   File "/django/source/django/db/backends/utils.py", line 92, in
 _execute_with_wrappers
     return executor(sql, params, many, context)
   File "/django/source/django/db/backends/utils.py", line 100, in _execute
     with self.db.wrap_database_errors:
   File "/django/source/django/db/utils.py", line 91, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/django/source/django/db/backends/utils.py", line 103, in _execute
     return self.cursor.execute(sql)
   File "/django/source/django/db/backends/oracle/base.py", line 627, in
 execute
     return self.cursor.execute(query, self._param_generator(params))
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 708, in execute
     self._prepare_for_execute(statement, parameters, keyword_parameters)
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 136, in _prepare_for_execute
     self._verify_open()
   File "/usr/local/lib/python3.10/site-packages/oracledb/cursor.py", line
 155, in _verify_open
     errors._raise_err(errors.ERR_CURSOR_NOT_OPEN)
   File "/usr/local/lib/python3.10/site-packages/oracledb/errors.py", line
 195, in _raise_err
     raise error.exc_type(error) from cause
 django.db.utils.InterfaceError: DPY-1006: cursor is not open

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/django/source/tests/backends/tests.py", line 466, in
 test_cursor_contextmanager
     cursor.execute("SELECT 1" + connection.features.bare_select_suffix)
   File "/django/source/django/db/backends/utils.py", line 121, in execute
     with self.debug_sql(sql, params, use_last_executed_query=True):
   File "/usr/local/lib/python3.10/contextlib.py", line 153, in __exit__
     self.gen.throw(typ, value, traceback)
   File "/django/source/django/db/backends/utils.py", line 154, in
 debug_sql
     self.db.ops.format_debug_sql(sql),
   File "/django/source/django/db/backends/base/operations.py", line 791,
 in format_debug_sql
     return sqlparse.format(sql, reindent=True, keyword_case="upper")
   File "/usr/local/lib/python3.10/site-packages/sqlparse/__init__.py",
 line 59, in format
     return ''.join(stack.run(sql, encoding))
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/engine/filter_stack.py", line 39, in run
     for stmt in stream:
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/engine/statement_splitter.py", line 87, in process
     for ttype, value in stream:
   File "/usr/local/lib/python3.10/site-
 packages/sqlparse/filters/tokens.py", line 19, in process
     for ttype, value in stream:
   File "/usr/local/lib/python3.10/site-packages/sqlparse/lexer.py", line
 134, in get_tokens
     raise TypeError("Expected text or file-like object, got {!r}".
 TypeError: Expected text or file-like object, got <class 'NoneType'>

 ----------------------------------------------------------------------
 }}}
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36112>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/010701947b8e5457-3063e5d4-d398-4b13-8152-8347a883bdab-000000%40eu-central-1.amazonses.com.

Reply via email to