Skip to content

Commit e651270

Browse files
author
savynorem
committed
cleaned up test file, added endswith test
1 parent b989e42 commit e651270

File tree

1 file changed

+3
-114
lines changed

1 file changed

+3
-114
lines changed

tests/test_find_query.py

Lines changed: 3 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -139,218 +139,107 @@ async def members(address, m):
139139

140140
yield member1, member2, member3
141141

142-
# test model class and instantiate FindQuery
143-
# 20 queries / expressions
144-
"""
145-
@py_test_mark_asyncio
146-
async def test_find_query1(members, m):
147-
member1, member2, member3 = members
148-
x = m.Member.find()
149-
# print(x.query)
150-
# result is "*"
151-
152-
@py_test_mark_asyncio
153-
async def test_find_query2(members, m):
154-
member1, member2, member3 = members
155-
x = m.Member.find()
156-
# print(x._query)
157-
# result is "None"
158-
159-
160-
@py_test_mark_asyncio
161-
async def test_find_query3(members, m):
162-
member1, member2, member3 = members
163-
fq = FindQuery(expressions=[m.Member.pk >> [member2.pk, member3.pk]], model=m.Member)
164-
# print(fq)
165-
# result is "<aredis_om.model.model.FindQuery object at 0x103b44c40>"
166-
167-
@py_test_mark_asyncio
168-
async def test_find_query4(members, m):
169-
member1, member2, member3 = members
170-
fq = FindQuery(expressions=[m.Member.pk << [member1.pk, member2.pk, member3.pk]], model=m.Member)
171-
# print(fq.query)
172-
# result is "(@pk:{01J33M1FMX4DHRMX16E4YAYCM3|01J33M1FN087RZVRZP6GN3BZZT|01J33M1FN1JNP0MXBRNANV5C88})"
173-
174-
@py_test_mark_asyncio
175-
async def test_find_query5(members, m):
176-
member1, member2, member3 = members
177-
fq = FindQuery(expressions=[m.Member.pk << [member1.pk, member2.pk, member3.pk]], model=m.Member)
178-
# print(fq._query)
179-
# result is "None"
180-
181-
@py_test_mark_asyncio
182-
async def test_find_query6(members, m):
183-
member1, member2, member3 = members
184-
fq = FindQuery(expressions=[m.Member.pk << [member1.pk, member2.pk, member3.pk]], model=m.Member)
185-
# print(fq.command_str_list)
186-
# result is []
187-
188-
@py_test_mark_asyncio
189-
async def test_find_query7(members, m):
190-
member1, member2, member3 = members
191-
fq = await FindQuery(expressions=[m.Member.pk << [member1.pk, member2.pk, member3.pk]], model=m.Member).all()
192-
# print(fq.query)
193-
# result is AttributeError: 'list' object has no attribute 'query' """
194-
195-
# added get_query method and optional return_query_args to execute()
196-
# now that we can actually get to the query, let's test what the query is when we add a filter
197142

198143
@py_test_mark_asyncio
199144
async def test_find_query_in(members, m):
200145
member1, member2, member3 = members
201146
model_name, fq = await FindQuery(expressions=[m.Member.pk << [member1.pk, member2.pk, member3.pk]], model=m.Member).get_query()
202-
# print(fq)
203-
# result is ['FT.SEARCH', 'redis-om:testing:0.6121599113607783:tests.test_find_query.Member:index', '(@pk:{01J361ZHQQWHN9JTZD2FNX7E2P|01J361ZHQQG62Q2P19KW3CFHET|01J361ZHQQ03HH0WSH4NTM6T95})', 'LIMIT', 0, 1000]
204147
in_str = "(@pk:{" + str(member1.pk) + "|" + str(member2.pk) + "|" + str(member3.pk) + "})"
205148
assert fq == ['FT.SEARCH', model_name, in_str, 'LIMIT', 0, 1000]
206149

207150
@py_test_mark_asyncio
208151
async def test_find_query_not_in(members, m):
209152
member1, member2, member3 = members
210153
model_name, fq = await FindQuery(expressions=[m.Member.pk >> [member2.pk, member3.pk]], model=m.Member).get_query()
211-
# print(fq)
212-
# result is ['FT.SEARCH', 'redis-om:testing:0.6121599113607783:tests.test_find_query.Member:index', '-(@pk:{01J361ZHQQG62Q2P19KW3CFHET|01J361ZHQQ03HH0WSH4NTM6T95})', 'LIMIT', 0, 1000]
213154
not_in_str = "-(@pk:{" + str(member2.pk) + "|" + str(member3.pk) + "})"
214155
assert fq == ['FT.SEARCH', model_name, not_in_str, 'LIMIT', 0, 1000]
215156

216157
@py_test_mark_asyncio
217158
async def test_find_query_eq(m):
218159
model_name, fq = await FindQuery(expressions=[m.Member.first_name == "Andrew"], model=m.Member).get_query()
219-
# print(fq)
220-
# result is ['FT.SEARCH', 'redis-om:testing:0.6121599113607783:tests.test_find_query.Member:index', '@first_name:{Andrew}', 'LIMIT', 0, 1000]
221160
assert fq == ['FT.SEARCH', model_name, '@first_name:{Andrew}', 'LIMIT', 0, 1000]
222161

223162
@py_test_mark_asyncio
224163
async def test_find_query_ne(m):
225164
model_name, fq = await FindQuery(expressions=[m.Member.first_name != "Andrew"], model=m.Member).get_query()
226-
# print(fq)
227-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '-(@first_name:{Andrew})', 'LIMIT', 0, 1000]
228165
assert fq == ['FT.SEARCH', model_name, '-(@first_name:{Andrew})', 'LIMIT', 0, 1000]
229166

230167
@py_test_mark_asyncio
231168
async def test_find_query_lt(m):
232169
model_name, fq = await FindQuery(expressions=[m.Member.age < 40], model=m.Member).get_query()
233-
# print(fq)
234-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[0 40}', 'LIMIT', 0, 1000]
235170
assert fq == ['FT.SEARCH', model_name, '@age:[-inf (40]', 'LIMIT', 0, 1000]
236171

237172
@py_test_mark_asyncio
238173
async def test_find_query_le(m):
239174
model_name, fq = await FindQuery(expressions=[m.Member.age <= 38], model=m.Member).get_query()
240-
# print(fq)
241-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[0 38]', 'LIMIT', 0, 1000]
242175
assert fq == ['FT.SEARCH', model_name, '@age:[-inf 38]', 'LIMIT', 0, 1000]
243176

244177
@py_test_mark_asyncio
245178
async def test_find_query_gt(m):
246179
model_name, fq = await FindQuery(expressions=[m.Member.age > 38], model=m.Member).get_query()
247-
# print(fq)
248-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[(38 +inf}', 'LIMIT', 0, 1000]
249180
assert fq == ['FT.SEARCH', model_name, '@age:[(38 +inf]', 'LIMIT', 0, 1000]
250181

251182
@py_test_mark_asyncio
252183
async def test_find_query_ge(m):
253184
model_name, fq = await FindQuery(expressions=[m.Member.age >= 38], model=m.Member).get_query()
254-
# print(fq)
255-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[38 +inf]', 'LIMIT', 0, 1000]
256185
assert fq == ['FT.SEARCH', model_name, '@age:[38 +inf]', 'LIMIT', 0, 1000]
257186

258187
@py_test_mark_asyncio
259188
async def test_find_query_sort(m):
260189
model_name, fq = await FindQuery(expressions=[m.Member.age > 0], model=m.Member, sort_fields=["age"]).get_query()
261-
# print(fq)
262-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[(0 +inf]', 'LIMIT', 0, 1000, 'SORTBY', 'age', 'asc']
263190
assert fq == ['FT.SEARCH', model_name, '@age:[(0 +inf]', 'LIMIT', 0, 1000, 'SORTBY', 'age', 'asc']
264191

265192
@py_test_mark_asyncio
266193
async def test_find_query_sort_desc(m):
267194
model_name, fq = await FindQuery(expressions=[m.Member.age > 0], model=m.Member, sort_fields=["-age"]).get_query()
268-
# print(fq)
269-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@age:[(0 +inf]', 'LIMIT', 0, 1000, 'SORTBY', 'age', 'desc']
270195
assert fq == ['FT.SEARCH', model_name, '@age:[(0 +inf]', 'LIMIT', 0, 1000, 'SORTBY', 'age', 'desc']
271196

272197
@py_test_mark_asyncio
273198
async def test_find_query_text_search(m):
274199
model_name, fq = await FindQuery(expressions=[m.Member.bio == "test"], model=m.Member).get_query()
275-
# print(fq)
276-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '@bio:{test}', 'LIMIT', 0, 1000]
277200
assert fq == ['FT.SEARCH', model_name, '@bio:{test}', 'LIMIT', 0, 1000]
278201

279202
@py_test_mark_asyncio
280203
async def test_find_query_text_search_and(m, members):
281204
model_name, fq = await FindQuery(expressions=[m.Member.age < 40, m.Member.first_name == "Andrew"], model=m.Member).get_query()
282-
# member1, member2, member3 = members
283-
# query = m.Member.find(
284-
# (m.Member.first_name == "Andrew")
285-
# & (m.Member.age < 40)
286-
# )
287-
# assert await query.all() == [member1]
288-
289-
# res = await m.Member.find((m.Member.age < 40) & (m.Member.first_name == "Andrew")).all()
290-
# print(fq)
291-
# result is ['FT.SEARCH', 'redis-om:testing:0.491862029445422:tests.test_find_query.Member:index', '(@age:[-inf (40]) @first_name:{Andrew}', 'LIMIT', 0, 1000]
292-
# print(res)
293205
assert fq == ['FT.SEARCH', model_name, '(@age:[-inf (40]) (@first_name:{Andrew})', 'LIMIT', 0, 1000]
294206

295207
@py_test_mark_asyncio
296208
async def test_find_query_text_search_or(m, members):
297209
model_name, fq = await FindQuery(expressions=[(m.Member.age < 40) | (m.Member.first_name == "Andrew")], model=m.Member).get_query()
298-
# print(fq)
299-
# member1, member2, member3 = members
300-
# query = m.Member.find(
301-
# (m.Member.first_name == "Andrew")
302-
# | (m.Member.age < 40)
303-
# )
304-
# assert await query.all() == [member1, member2, member3]
305-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '@bio:{test}', 'LIMIT', 0, 1000]
306210
assert fq == ['FT.SEARCH', model_name, '(@age:[-inf (40])| (@first_name:{Andrew})', 'LIMIT', 0, 1000]
307211

308212
@py_test_mark_asyncio
309213
async def test_find_query_text_search_not(m):
310214
model_name, fq = await FindQuery(expressions=[~(m.Member.first_name == "Andrew")], model=m.Member).get_query()
311-
# print(fq)
312-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '-(@first_name:{Andrew})', 'LIMIT', 0, 1000]
313215
assert fq == ['FT.SEARCH', model_name, '-(@first_name:{Andrew})', 'LIMIT', 0, 1000]
314216

315217
@py_test_mark_asyncio
316218
async def test_find_query_text_search_not_and(m, members):
317219
model_name, fq = await FindQuery(expressions=[~((m.Member.first_name == "Andrew") & (m.Member.age < 40))], model=m.Member).get_query()
318-
# print(fq)
319-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '-(@age:[-inf (40]) @first_name:{Andrew}', 'LIMIT', 0, 1000]
320220
assert fq == ['FT.SEARCH', model_name, '-((@first_name:{Andrew}) (@age:[-inf (40]))', 'LIMIT', 0, 1000]
321221

322222
@py_test_mark_asyncio
323223
async def test_find_query_text_search_not_or(m, members):
324224
model_name, fq = await FindQuery(expressions=[~((m.Member.first_name == "Andrew") | (m.Member.age < 40))], model=m.Member).get_query()
325-
# print(fq)
326-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '-(@age:[-inf (40])| (@first_name:{Andrew})', 'LIMIT', 0, 1000]
327225
assert fq == ['FT.SEARCH', model_name, '-((@first_name:{Andrew})| (@age:[-inf (40]))', 'LIMIT', 0, 1000]
328226

329227
@py_test_mark_asyncio
330228
async def test_find_query_text_search_not_or_and(m, members):
331229
model_name, fq = await FindQuery(expressions=[~(((m.Member.first_name == "Andrew") | (m.Member.age < 40)) & (m.Member.last_name == "Brookins"))], model=m.Member).get_query()
332-
# print(fq)
333-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '-((@first_name:{Andrew})| (@age:[-inf (40]) (@last_name:{Brookins}))', 'LIMIT', 0, 1000]
334230
assert fq == ['FT.SEARCH', model_name, '-(((@first_name:{Andrew})| (@age:[-inf (40])) (@last_name:{Brookins}))', 'LIMIT', 0, 1000]
335231

336232
@py_test_mark_asyncio
337233
async def test_find_query_text_contains(m):
338234
model_name, fq = await FindQuery(expressions=[m.Member.first_name.contains("drew")], model=m.Member).get_query()
339-
# print(fq)
340-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '@first_name:{*Andrew*}', 'LIMIT', 0, 1000]
341235
assert fq == ['FT.SEARCH', model_name, '(@first_name:{*drew*})', 'LIMIT', 0, 1000]
342236

343237
@py_test_mark_asyncio
344238
async def test_find_query_text_startswith(m):
345239
model_name, fq = await FindQuery(expressions=[m.Member.first_name.startswith("An")], model=m.Member).get_query()
346-
# print(fq)
347-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '@first_name:{An*}', 'LIMIT', 0, 1000]
348240
assert fq == ['FT.SEARCH', model_name, '(@first_name:{An*})', 'LIMIT', 0, 1000]
349241

350-
# test that return_fields limits the fields returned
351242
@py_test_mark_asyncio
352-
async def test_find_query_return_fields(m):
353-
model_name, fq = await FindQuery(expressions=[m.Member.first_name == "Andrew"], model=m.Member, return_fields=["first_name"]).get_query()
354-
# print(fq)
355-
# result is ['FT.SEARCH', 'redis-om:testing:0.6510151538425774:tests.test_find_query.Member:index', '@first_name:{Andrew}', 'LIMIT', 0, 1000, 'RETURN', 1, 'first_name']
356-
# assert fq == ['FT.SEARCH', model_name, '@first_name:{Andrew}', 'LIMIT', 0, 1000, 'RETURN', 1, 'first_name']
243+
async def test_find_query_text_endswith(m):
244+
model_name, fq = await FindQuery(expressions=[m.Member.first_name.endswith("ew")], model=m.Member).get_query()
245+
assert fq == ['FT.SEARCH', model_name, '(@first_name:{*ew})', 'LIMIT', 0, 1000]

0 commit comments

Comments
 (0)