diff options
author | kopertop <kopertop@604d75c7-a419-0410-a38f-bde1a0bd1dbf> | 2010-03-08 22:00:24 +0000 |
---|---|---|
committer | kopertop <kopertop@604d75c7-a419-0410-a38f-bde1a0bd1dbf> | 2010-03-08 22:00:24 +0000 |
commit | c531c20647e2e55403a02dcfd4c7c43f95a88b60 (patch) | |
tree | f364217fb1aaba101f3d51aa30797f8592c3f1ba | |
parent | 1e460d9b2a354b1929d942b813e32bf05eb4ee97 (diff) | |
download | boto-c531c20647e2e55403a02dcfd4c7c43f95a88b60.tar.gz |
Added back in support for "like" that has a leading "%" for lists
-rw-r--r-- | boto/sdb/db/manager/sdbmanager.py | 3 | ||||
-rw-r--r-- | tests/db/test_query.py | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/boto/sdb/db/manager/sdbmanager.py b/boto/sdb/db/manager/sdbmanager.py index 49dac2a0..74a6a699 100644 --- a/boto/sdb/db/manager/sdbmanager.py +++ b/boto/sdb/db/manager/sdbmanager.py @@ -418,7 +418,8 @@ class SDBManager(object): op = "like" elif op in ("!=", "not"): op = "not like" - val = "%%:%s" % val + if not(op == "like" and val.startswith("%")): + val = "%%:%s" % val return "`%s` %s '%s'" % (name, op, val.replace("'", "''")) def _build_filter_part(self, cls, filters, order_by=None): diff --git a/tests/db/test_query.py b/tests/db/test_query.py index 85e1069c..047bf873 100644 --- a/tests/db/test_query.py +++ b/tests/db/test_query.py @@ -43,7 +43,7 @@ class TestQuerying(object): o = SimpleModel() o.name = "Simple Object" - o.strs = ["B", "A", "C"] + o.strs = ["B", "A", "C", "Foo"] o.num = 1 o.put() cls.objs.append(o) @@ -143,3 +143,10 @@ class TestQuerying(object): assert(SimpleModel.find(strs="A").next().id == self.objs[0].id) assert(SimpleModel.find(strs="B").next().id == self.objs[0].id) assert(SimpleModel.find(strs="C").next().id == self.objs[0].id) + + def test_like(self): + """Test with a "like" expression""" + query = SimpleModel.all() + query.filter("strs like", "%oo%") + print query.get_query() + assert(query.count() == 1) |