{{{
#!/usr/bin/env python
# coding=utf8
from django.test import TestCase
#Assuming that the default connection uses psycopg2
from django.db import connection
class UnicodeArrayTestCase(TestCase):
def select(self, val):
cursor = connection.cursor()
cursor.execute("select %s", (val,))
return cursor.fetchone()[0]
def test_select_ascii_array(self):
a = ["awef"]
b = self.select(a)
self.assertEqual(a[0], b[0])
def test_select_unicode_array(self):
a = [u"ᄲawef"]
b = self.select(a)
self.assertEqual(a[0], b[0])
}}}
The django currently configures psycopg2 to convert strings to strings,
but is not configured to convert string arrays into unicode arrays. A
potential fix is described here:
[https://github.com/django/django/pull/189]
However, you should probably put the change in the cursor constructor as
described here:
[https://github.com/django/django/commit/6595ee896a9e3bf9cc1a9bd34af0e13bd32d8a3b]
Psycopg2 documentation:
[http://initd.org/psycopg/docs/extensions.html#psycopg2.extensions.UNICODEARRAY]
--
Ticket URL: <https://code.djangoproject.com/ticket/20007>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* version: 1.5 => master
* needs_tests: => 0
* needs_docs: => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:1>
* stage: Unreviewed => Accepted
Comment:
I'm not familiar with Postgres arrays but this looks reasonnable.
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:2>
Comment (by areski):
Can you add an example when you will have this issue with the Django ORM?
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:3>
* needs_better_patch: 0 => 1
Comment:
The test needs to be incorporated into the Django test suite as well.
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:4>
* status: new => assigned
* owner: nobody => EricBoersma
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:5>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"ded40142a92813a8901faa4a6ca398e6679152f6"]:
{{{
#!CommitTicketReference repository=""
revision="ded40142a92813a8901faa4a6ca398e6679152f6"
Fixed #20007 -- Configured psycopg2 to return UnicodeArrays
Thanks hogbait for the report.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/20007#comment:6>