cx_Oracle 5.1.3 includes fixes the segfaults encountered with Python 3. There are some failing migrations tests, all of which but 1 are resolved with the attached patch.
Failing test:
======================================================================
ERROR: test_add_binaryfield (migrations.test_operations.OperationTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/tim/code/django/django/db/backends/utils.py", line 63, in execute
return self.cursor.execute(sql, params)
File "/home/tim/code/django/django/db/backends/oracle/base.py", line 890, in execute
return self.cursor.execute(query, self._param_generator(params))
cx_Oracle.DatabaseError: ORA-00984: column not allowed here
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/tim/code/django/django/test/testcases.py", line 950, in skip_wrapper
return test_func(*args, **kwargs)
File "/home/tim/code/django/tests/migrations/test_operations.py", line 458, in test_add_binaryfield
models.BinaryField(default=b'"\'"'),
File "/home/tim/code/django/tests/migrations/test_operations.py", line 32, in apply_operations
return migration.apply(project_state, editor)
File "/home/tim/code/django/django/db/migrations/migration.py", line 107, in apply
operation.database_forwards(self.app_label, schema_editor, project_state, new_state)
File "/home/tim/code/django/django/db/migrations/operations/fields.py", line 38, in database_forwards
field,
File "/home/tim/code/django/django/db/backends/schema.py", line 406, in add_field
self.execute(sql, params)
File "/home/tim/code/django/django/db/backends/schema.py", line 98, in execute
cursor.execute(sql, params)
File "/home/tim/code/django/django/db/backends/utils.py", line 63, in execute
return self.cursor.execute(sql, params)
File "/home/tim/code/django/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/tim/code/django/django/utils/six.py", line 549, in reraise
raise value.with_traceback(tb)
File "/home/tim/code/django/django/db/backends/utils.py", line 63, in execute
return self.cursor.execute(sql, params)
File "/home/tim/code/django/django/db/backends/oracle/base.py", line 890, in execute
return self.cursor.execute(query, self._param_generator(params))
django.db.utils.DatabaseError: ORA-00984: column not allowed here
In fd427f1fe3c563d5fe0badfec0a39d6cd43454da: