mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Refs #23843 -- Updated Oracle annotations workaround to reflect latest status.
This commit is contained in:
		| @@ -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 | ||||
|     string handling under Python3 (essentially, they treat Python3 strings | ||||
|     as Python2 strings rather than unicode). This makes some tests here | ||||
|     fail under Python 3 -- so we mark them as expected failures. | ||||
|  | ||||
|     See  https://code.djangoproject.com/ticket/23843, in particular comment 6, | ||||
|     which points to https://bitbucket.org/anthony_tuininga/cx_oracle/issue/6/ | ||||
|     There's a bug in Django/cx_Oracle with respect to string handling under | ||||
|     Python 3 (essentially, they treat Python 3 strings as Python 2 strings | ||||
|     rather than unicode). This makes some tests here fail under Python 3, so | ||||
|     we mark them as expected failures until someone fixes them in #23843. | ||||
|     """ | ||||
|     from unittest import expectedFailure | ||||
|     from django.db import connection | ||||
|  | ||||
|     if connection.vendor == 'oracle' and six.PY3 and connection.Database.version <= '5.1.3': | ||||
|         return expectedFailure(func) | ||||
|     else: | ||||
|         return func | ||||
|     return expectedFailure(func) if connection.vendor == 'oracle' and six.PY3 else func | ||||
|  | ||||
|  | ||||
| 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.salary, e.store.name, e.annotated_value)) | ||||
|  | ||||
|     @cxOracle_513_py3_bug | ||||
|     @cxOracle_py3_bug | ||||
|     def test_custom_functions(self): | ||||
|         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() | ||||
| @@ -413,7 +406,7 @@ class NonAggregateAnnotationTestCase(TestCase): | ||||
|             lambda c: (c.name, c.tagline) | ||||
|         ) | ||||
|  | ||||
|     @cxOracle_513_py3_bug | ||||
|     @cxOracle_py3_bug | ||||
|     def test_custom_functions_can_ref_other_functions(self): | ||||
|         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() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user