Refs #23843 -- Updated Oracle annotations workaround to reflect latest status.
This commit is contained in:
parent
6bd7ee4eab
commit
f9636fdf92
|
@ -16,23 +16,16 @@ from .models import (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def cxOracle_513_py3_bug(func):
|
def cxOracle_py3_bug(func):
|
||||||
"""
|
"""
|
||||||
cx_Oracle versions up to and including 5.1.3 have a bug with respect to
|
There's a bug in Django/cx_Oracle with respect to string handling under
|
||||||
string handling under Python3 (essentially, they treat Python3 strings
|
Python 3 (essentially, they treat Python 3 strings as Python 2 strings
|
||||||
as Python2 strings rather than unicode). This makes some tests here
|
rather than unicode). This makes some tests here fail under Python 3, so
|
||||||
fail under Python 3 -- so we mark them as expected failures.
|
we mark them as expected failures until someone fixes them in #23843.
|
||||||
|
|
||||||
See https://code.djangoproject.com/ticket/23843, in particular comment 6,
|
|
||||||
which points to https://bitbucket.org/anthony_tuininga/cx_oracle/issue/6/
|
|
||||||
"""
|
"""
|
||||||
from unittest import expectedFailure
|
from unittest import expectedFailure
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
|
return expectedFailure(func) if connection.vendor == 'oracle' and six.PY3 else func
|
||||||
if connection.vendor == 'oracle' and six.PY3 and connection.Database.version <= '5.1.3':
|
|
||||||
return expectedFailure(func)
|
|
||||||
else:
|
|
||||||
return func
|
|
||||||
|
|
||||||
|
|
||||||
class NonAggregateAnnotationTestCase(TestCase):
|
class NonAggregateAnnotationTestCase(TestCase):
|
||||||
|
@ -387,7 +380,7 @@ class NonAggregateAnnotationTestCase(TestCase):
|
||||||
e.id, e.first_name, e.manager, e.random_value, e.last_name, e.age,
|
e.id, e.first_name, e.manager, e.random_value, e.last_name, e.age,
|
||||||
e.salary, e.store.name, e.annotated_value))
|
e.salary, e.store.name, e.annotated_value))
|
||||||
|
|
||||||
@cxOracle_513_py3_bug
|
@cxOracle_py3_bug
|
||||||
def test_custom_functions(self):
|
def test_custom_functions(self):
|
||||||
Company(name='Apple', motto=None, ticker_name='APPL', description='Beautiful Devices').save()
|
Company(name='Apple', motto=None, ticker_name='APPL', description='Beautiful Devices').save()
|
||||||
Company(name='Django Software Foundation', motto=None, ticker_name=None, description=None).save()
|
Company(name='Django Software Foundation', motto=None, ticker_name=None, description=None).save()
|
||||||
|
@ -413,7 +406,7 @@ class NonAggregateAnnotationTestCase(TestCase):
|
||||||
lambda c: (c.name, c.tagline)
|
lambda c: (c.name, c.tagline)
|
||||||
)
|
)
|
||||||
|
|
||||||
@cxOracle_513_py3_bug
|
@cxOracle_py3_bug
|
||||||
def test_custom_functions_can_ref_other_functions(self):
|
def test_custom_functions_can_ref_other_functions(self):
|
||||||
Company(name='Apple', motto=None, ticker_name='APPL', description='Beautiful Devices').save()
|
Company(name='Apple', motto=None, ticker_name='APPL', description='Beautiful Devices').save()
|
||||||
Company(name='Django Software Foundation', motto=None, ticker_name=None, description=None).save()
|
Company(name='Django Software Foundation', motto=None, ticker_name=None, description=None).save()
|
||||||
|
|
Loading…
Reference in New Issue