コード例 #1
0
    def test_filterOr(self):
        qlObjs = QueryableListObjs(self.dataObjs)

        found = qlObjs.filterOr(a='six', b='five')

        assert len(
            found
        ) == 2, 'Expected "or" filter to return 2 items for a="6" and b="five". Got: %s\n' % (
            str(found), )

        assert (
            (found[0].a == 'six' or found[0].b == 'five')
            or (found[1].a == 'six' or found[1].b == 'five')
        ), 'Got wrong items for a="6" and b="five". Got: %s' % (str(found), )
コード例 #2
0
ファイル: example.py プロジェクト: kata198/QueryableList
            'colour' : 'orange', 'age' : 18, 'name' : 'Phil', 'likes' : ['puppies', 'gnomes']
        },
    ]

    
#    data = QueryableListDicts(data)
    data = QueryableListObjs(data)

    sys.stdout.write("Data: %s\n\n" %(data,))

    sys.stdout.write('People who are over 22 years old:\n%s\n\n' %(data.filter(age__gt=22),))

#    sys.stdout.write('People who like puppies or bricks, and their favourite colour is purple:\n\n' %(data.filter(likes__containsAny=('puppies', 'bricks')).filter(colour__ieq='purple'),))
    sys.stdout.write('People who like puppies or bricks, and their favourite colour is purple:\n%s\n\n' %(data.filter(likes__containsAny=('puppies', 'bricks'), colour__ieq='purple'),))

    sys.stdout.write('People who are at least 30 years old or like cheese:\n%s\n\n' %(data.filterOr(likes__contains='cheese', age__gte=30),))


    # Create a QueryBuilder to execute a query
    builder = QueryBuilder()
    builder.addFilter("AND", age__gt=22)
    builder.addFilter(likes__contains='puppies')

    # Execute on a QueryableList
    sys.stdout.write('Over 22 and likes puppies (dataset1):\n%s\n\n' %(str(builder.execute(data))))
    # Execute on a normal list, creating a QueryableListMixed
    sys.stdout.write('Over 22 and likes puppies (mixed dataset2):\n%s\n\n' %(str(builder.execute(dataset2))))


    #import pdb; pdb.set_trace()