Skip to content

Commit 9783d6e

Browse files
committed
Merge pull request #374 from akariv/master
Support unicode queries in search API
2 parents 89e307d + 8eea2fb commit 9783d6e

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

redash/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ def outdated_queries(cls):
381381
def search(cls, term):
382382
# This is very naive implementation of search, to be replaced with PostgreSQL full-text-search solution.
383383

384-
where = (cls.name**"%{}%".format(term)) | (cls.description**"%{}%".format(term))
384+
where = (cls.name**u"%{}%".format(term)) | (cls.description**u"%{}%".format(term))
385385

386386
if term.isdigit():
387387
where |= cls.id == term

tests/test_models.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#encoding: utf8
12
import datetime
23
import json
34
from tests import BaseTestCase
@@ -31,22 +32,22 @@ def test_changing_query_text_changes_hash(self):
3132
self.assertNotEquals(old_hash, q.query_hash)
3233

3334
def test_search_finds_in_name(self):
34-
q1 = query_factory.create(name="Testing search")
35-
q2 = query_factory.create(name="Testing searching")
36-
q3 = query_factory.create(name="Testing sea rch")
35+
q1 = query_factory.create(name=u"Testing seåřċħ")
36+
q2 = query_factory.create(name=u"Testing seåřċħing")
37+
q3 = query_factory.create(name=u"Testing seå řċħ")
3738

38-
queries = models.Query.search("search")
39+
queries = models.Query.search(u"seåřċħ")
3940

4041
self.assertIn(q1, queries)
4142
self.assertIn(q2, queries)
4243
self.assertNotIn(q3, queries)
4344

4445
def test_search_finds_in_description(self):
45-
q1 = query_factory.create(description="Testing search")
46-
q2 = query_factory.create(description="Testing searching")
47-
q3 = query_factory.create(description="Testing sea rch")
46+
q1 = query_factory.create(description=u"Testing seåřċħ")
47+
q2 = query_factory.create(description=u"Testing seåřċħing")
48+
q3 = query_factory.create(description=u"Testing seå řċħ")
4849

49-
queries = models.Query.search("search")
50+
queries = models.Query.search(u"seåřċħ")
5051

5152
self.assertIn(q1, queries)
5253
self.assertIn(q2, queries)

0 commit comments

Comments
 (0)