| 629 | print "pattern.db.abs()" |
| 630 | |
| 631 | def test_cmp(self): |
| 632 | # Assert WHERE-clause from cmp() function. |
| 633 | q = self.db.persons.search(fields=["name"]) |
| 634 | self.assertTrue(isinstance(q, db.Query)) |
| 635 | for args, sql in ( |
| 636 | (("name", u"Kurt%", db.LIKE), u"name like 'Kurt%'"), |
| 637 | (("name", u"Kurt*", "="), u"name like 'Kurt%'"), |
| 638 | (("name", u"*Gödel", "=="), u"name like '%Gödel'"), |
| 639 | (("name", u"Kurt*", "!="), u"name not like 'Kurt%'"), |
| 640 | (("name", u"Kurt*", "<>"), u"name not like 'Kurt%'"), |
| 641 | (("name", u"Gödel", "i="), u"name like 'Gödel'"), # case-insensitive search |
| 642 | (("id", (1, 2), db.IN), u"id in (1,2)"), |
| 643 | (("id", (1, 2), "="), u"id in (1,2)"), |
| 644 | (("id", (1, 2), "=="), u"id in (1,2)"), |
| 645 | (("id", (1, 2), "!="), u"id not in (1,2)"), |
| 646 | (("id", (1, 2), "<>"), u"id not in (1,2)"), |
| 647 | (("id", (1, 3), db.BETWEEN), u"id between 1 and 3"), |
| 648 | (("id", (1, 3), ":"), u"id between 1 and 3"), |
| 649 | (("name", ("G","K*"), "="), u"(name='G' or name like 'K%')"), |
| 650 | (("name", None, "="), u"name is null"), |
| 651 | (("name", None, "=="), u"name is null"), |
| 652 | (("name", None, "!="), u"name is not null"), |
| 653 | (("name", None, "<>"), u"name is not null"), |
| 654 | (("name", q, "="), u"name in (select persons.name from `persons`)"), |
| 655 | (("name", q, "=="), u"name in (select persons.name from `persons`)"), |
| 656 | (("name", q, "!="), u"name not in (select persons.name from `persons`)"), |
| 657 | (("name", q, "<>"), u"name not in (select persons.name from `persons`)"), |
| 658 | (("name", u"Gödel", "="), u"name='Gödel'"), |
| 659 | (("id", 1, ">"), u"id>1")): |
| 660 | self.assertEqual(db.cmp(*args), sql) |
| 661 | print "pattern.db.cmp()" |
| 662 | |
| 663 | def test_group(self): |
| 664 | # Assert WHERE with AND/OR combinations from Group object(). |