Skip to content

Commit c0fe18d

Browse files
author
Maciej Lewinski
committed
Fixed unaccent test. Added new ones
1 parent 9f5345d commit c0fe18d

File tree

1 file changed

+245
-13
lines changed

1 file changed

+245
-13
lines changed

tests/filters/test_text_filters.py

Lines changed: 245 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,6 @@ def test_text_filter_exact_match(self):
3636
result = jsonloads(response.content)
3737
self.assertEqual(0, len(result['data']))
3838

39-
40-
@unittest.skipIf(
41-
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
42-
"Only available with PostgreSQL"
43-
)
44-
def test_text_filter_unaccent_chained_qualifier_match(self):
45-
response = self.client.get('/caretaker/', data={'.name:unaccent': 'Śtefan'})
46-
47-
self.assertEqual(response.status_code, 200)
48-
49-
result = jsonloads(response.content)
50-
self.assertEqual(0, len(result['data']))
51-
5239
def test_text_filter_iexact(self):
5340
response = self.client.get('/caretaker/', data={'.name:iexact': 'stefan'})
5441

@@ -226,3 +213,248 @@ def test_text_filter_iendswith(self):
226213
self.assertEqual(1, len(result['data']))
227214
self.assertEqual('Stefan', result['data'][0]['name'])
228215

216+
# Unaccent extension tests
217+
@unittest.skipIf(
218+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
219+
"Only available with PostgreSQL"
220+
)
221+
def test_text_filter_exact_match_unaccent(self):
222+
response = self.client.get('/caretaker/', data={'.name:unaccent': 'Śtefan'})
223+
224+
self.assertEqual(response.status_code, 200)
225+
226+
result = jsonloads(response.content)
227+
self.assertEqual(1, len(result['data']))
228+
self.assertEqual('Stefan', result['data'][0]['name'])
229+
230+
response = self.client.get('/caretaker/', data={'.name:unaccent': 'Śtefa'})
231+
232+
self.assertEqual(response.status_code, 200)
233+
234+
result = jsonloads(response.content)
235+
self.assertEqual(0, len(result['data']))
236+
237+
@unittest.skipIf(
238+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
239+
"Only available with PostgreSQL"
240+
)
241+
def test_text_filter_iexact_unaccent(self):
242+
response = self.client.get(
243+
'/caretaker/', data={'.name:unaccent:iexact': 'stęfan'})
244+
245+
self.assertEqual(response.status_code, 200)
246+
247+
result = jsonloads(response.content)
248+
print(result)
249+
self.assertEqual(1, len(result['data']))
250+
self.assertEqual('Stefan', result['data'][0]['name'])
251+
252+
response = self.client.get(
253+
'/caretaker/', data={'.name:unaccent:iexact': 'sTĘfaN'})
254+
255+
self.assertEqual(response.status_code, 200)
256+
257+
result = jsonloads(response.content)
258+
print(result)
259+
self.assertEqual(1, len(result['data']))
260+
self.assertEqual('Stefan', result['data'][0]['name'])
261+
262+
@unittest.skipIf(
263+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
264+
"Only available with PostgreSQL"
265+
)
266+
def test_text_filter_contains(self):
267+
response = self.client.get(
268+
'/caretaker/', data={'.name:unaccent:contains': 'stęf'})
269+
270+
self.assertEqual(response.status_code, 200)
271+
272+
result = jsonloads(response.content)
273+
print(result)
274+
self.assertEqual(0, len(result['data']))
275+
276+
response = self.client.get(
277+
'/caretaker/', data={'.name:unaccent:contains': 'Stęf'})
278+
279+
self.assertEqual(response.status_code, 200)
280+
281+
result = jsonloads(response.content)
282+
print(result)
283+
self.assertEqual(1, len(result['data']))
284+
self.assertEqual('Stefan', result['data'][0]['name'])
285+
286+
response = self.client.get(
287+
'/caretaker/', data={'.name:unaccent:contains': 'ę'})
288+
289+
self.assertEqual(response.status_code, 200)
290+
291+
result = jsonloads(response.content)
292+
print(result)
293+
self.assertEqual(2, len(result['data']))
294+
295+
@unittest.skipIf(
296+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
297+
"Only available with PostgreSQL"
298+
)
299+
def test_text_filter_icontains(self):
300+
response = self.client.get(
301+
'/caretaker/', data={'.name:unaccent:icontains': 'stęfi'})
302+
303+
self.assertEqual(response.status_code, 200)
304+
305+
result = jsonloads(response.content)
306+
print(result)
307+
self.assertEqual(0, len(result['data']))
308+
309+
response = self.client.get(
310+
'/caretaker/', data={'.name:unaccent:icontains': 'sTĘf'})
311+
312+
self.assertEqual(response.status_code, 200)
313+
314+
result = jsonloads(response.content)
315+
print(result)
316+
self.assertEqual(1, len(result['data']))
317+
self.assertEqual('Stefan', result['data'][0]['name'])
318+
319+
response = self.client.get(
320+
'/caretaker/', data={'.name:unaccent:icontains': 'Ę'})
321+
322+
self.assertEqual(response.status_code, 200)
323+
324+
result = jsonloads(response.content)
325+
print(result)
326+
self.assertEqual(2, len(result['data']))
327+
328+
@unittest.skipIf(
329+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
330+
"Only available with PostgreSQL"
331+
)
332+
def test_text_filter_startswith(self):
333+
response = self.client.get(
334+
'/caretaker/', data={'.name:unaccent:startswith': 'tęf'})
335+
336+
self.assertEqual(response.status_code, 200)
337+
338+
result = jsonloads(response.content)
339+
print(result)
340+
self.assertEqual(0, len(result['data']))
341+
342+
response = self.client.get(
343+
'/caretaker/', data={'.name:unaccent:startswith': 'Śtęf'})
344+
345+
self.assertEqual(response.status_code, 200)
346+
347+
result = jsonloads(response.content)
348+
print(result)
349+
self.assertEqual(1, len(result['data']))
350+
self.assertEqual('Stefan', result['data'][0]['name'])
351+
352+
response = self.client.get(
353+
'/caretaker/', data={'.name:unaccent:startswith': 'śtę'})
354+
355+
self.assertEqual(response.status_code, 200)
356+
357+
result = jsonloads(response.content)
358+
print(result)
359+
self.assertEqual(0, len(result['data']))
360+
361+
@unittest.skipIf(
362+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
363+
"Only available with PostgreSQL"
364+
)
365+
def test_text_filter_istartswith(self):
366+
response = self.client.get(
367+
'/caretaker/', data={'.name:unaccent:istartswith': 'tęf'})
368+
369+
self.assertEqual(response.status_code, 200)
370+
371+
result = jsonloads(response.content)
372+
print(result)
373+
self.assertEqual(0, len(result['data']))
374+
375+
response = self.client.get(
376+
'/caretaker/', data={'.name:unaccent:istartswith': 'stęf'})
377+
378+
self.assertEqual(response.status_code, 200)
379+
380+
result = jsonloads(response.content)
381+
print(result)
382+
self.assertEqual(1, len(result['data']))
383+
self.assertEqual('Stefan', result['data'][0]['name'])
384+
385+
response = self.client.get(
386+
'/caretaker/', data={'.name:unaccent:istartswith': 'sTĘF'})
387+
388+
self.assertEqual(response.status_code, 200)
389+
390+
result = jsonloads(response.content)
391+
print(result)
392+
self.assertEqual(1, len(result['data']))
393+
self.assertEqual('Stefan', result['data'][0]['name'])
394+
395+
@unittest.skipIf(
396+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
397+
"Only available with PostgreSQL"
398+
)
399+
def test_text_filter_endswith(self):
400+
response = self.client.get(
401+
'/caretaker/', data={'.name:unaccent:endswith': 'efą'})
402+
403+
self.assertEqual(response.status_code, 200)
404+
405+
result = jsonloads(response.content)
406+
print(result)
407+
self.assertEqual(0, len(result['data']))
408+
409+
response = self.client.get(
410+
'/caretaker/', data={'.name:unaccent:endswith': 'efań'})
411+
412+
self.assertEqual(response.status_code, 200)
413+
414+
result = jsonloads(response.content)
415+
print(result)
416+
self.assertEqual(1, len(result['data']))
417+
self.assertEqual('Stefan', result['data'][0]['name'])
418+
419+
response = self.client.get(
420+
'/caretaker/', data={'.name:unaccent:endswith': 'efaŃ'})
421+
422+
self.assertEqual(response.status_code, 200)
423+
424+
result = jsonloads(response.content)
425+
print(result)
426+
self.assertEqual(0, len(result['data']))
427+
428+
@unittest.skipIf(
429+
os.environ.get('BINDER_TEST_MYSQL', '0') != '0',
430+
"Only available with PostgreSQL"
431+
)
432+
def test_text_filter_iendswith(self):
433+
response = self.client.get(
434+
'/caretaker/', data={'.name:unaccent:iendswith': 'ęfa'})
435+
436+
self.assertEqual(response.status_code, 200)
437+
438+
result = jsonloads(response.content)
439+
print(result)
440+
self.assertEqual(0, len(result['data']))
441+
442+
response = self.client.get(
443+
'/caretaker/', data={'.name:unaccent:iendswith': 'EfĄn'})
444+
445+
self.assertEqual(response.status_code, 200)
446+
447+
result = jsonloads(response.content)
448+
print(result)
449+
self.assertEqual(1, len(result['data']))
450+
self.assertEqual('Stefan', result['data'][0]['name'])
451+
452+
response = self.client.get(
453+
'/caretaker/', data={'.name:unaccent:iendswith': 'efąN'})
454+
455+
self.assertEqual(response.status_code, 200)
456+
457+
result = jsonloads(response.content)
458+
print(result)
459+
self.assertEqual(1, len(result['data']))
460+
self.assertEqual('Stefan', result['data'][0]['name'])

0 commit comments

Comments
 (0)