From f6aab04a4bf12d1c8d665ef89ca1bc70f9f0ea68 Mon Sep 17 00:00:00 2001 From: Arik Fraimovich Date: Tue, 7 Aug 2018 17:51:46 +0300 Subject: [PATCH] Fix: support unicode in users search --- redash/models.py | 2 +- tests/models/test_users.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/redash/models.py b/redash/models.py index f49f66469..d0941d19f 100644 --- a/redash/models.py +++ b/redash/models.py @@ -506,7 +506,7 @@ class User(TimestampMixin, db.Model, BelongsToOrgMixin, UserMixin, PermissionsCh @classmethod def search(cls, base_query, term): - term = '%{}%'.format(term) + term = u'%{}%'.format(term) search_filter = or_(cls.name.ilike(term), cls.email.like(term)) return base_query.filter(search_filter) diff --git a/tests/models/test_users.py b/tests/models/test_users.py index b0de48afa..8754d6af2 100644 --- a/tests/models/test_users.py +++ b/tests/models/test_users.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- from tests import BaseTestCase from redash.models import User, db @@ -49,3 +50,10 @@ class TestUserGetByEmailAndOrg(BaseTestCase): found_user = User.get_by_email_and_org("TEST@example.com", user.org) self.assertEqual(user, found_user) + + +class TestUserSearch(BaseTestCase): + def test_non_unicode_search_string(self): + user = self.factory.create_user(name=u'אריק') + + assert user in User.search(User.all(user.org), term=u'א')