示例#1
0
    def testFindWithPredicate(self):
        lst = [{'y': 1}, {'y': 2}, {'y': 3}]
        self.assertEqual({'y': 2}, find(lst, 2, lambda d: d['y']))

        strings = ['alma', '  banan ', 'citrom']
        to_find = 'banan'
        self.assertEqual(
            '  banan ',
            find(strings, to_find, lambda d: findTest.stripp(d)))
示例#2
0
    def testFindListOfItems(self):

        class X:
            def __init__(self, name):
                self.name = name

        alma = X('alma')
        citrom = X('citrom')
        lst = [alma, X('banan'), citrom, X('dinnye')]
        items = ['alma', 'citrom']

        self.assertEqual([alma, citrom],
                         find(lst, items, lambda i: i.name))
        self.assertEqual([], find(lst, ['meggy'], lambda i: i.name))
示例#3
0
    def testFind(self):
        numbers = [1, 2, 3]
        to_find = 2
        not_in_list = 4

        self.assertEqual(to_find, find(numbers, to_find))
        self.assertIsNone(find(numbers, not_in_list))

        strings = ['alma', 'banan', 'citrom']
        to_find = 'banan'
        not_in_list = 'dio'

        self.assertEqual(to_find, find(strings, to_find))
        self.assertIsNone(find(strings, not_in_list))
示例#4
0
    def testOptionalDefaults(self):
        class device(object):
            def __init__(self, name):
                self.name = name

            def __cmp__(self, other):
                return cmp(self.name, other.name)

        d1 = device('a')
        d2 = device('b')
        d3 = device('c')

        devices = [d1, d2, d3]

        to_find = device('f')
        self.assertEqual(
            'dummy',
            find(devices, to_find, default=optional({'name': 'dummy'})).name)

        x = find(devices, to_find, default=optional({'alma': []}))
        self.assertEqual(x['alma'], [])
        self.assertEqual(x['banan'], None)
示例#5
0
    def testFindWithNoItem(self):
        lst = [1, 2, 3]
        self.assertEqual(2, find(lst, predicate=lambda x: x % 2 == 0))

        strings = ['alma', 'banan', 'citrom']
        self.assertEqual(
            'citrom',
            find(strings, predicate=lambda s: len(s) == 6))

        class person(object):
            def __init__(self, device):
                self.device = device

            def has_device(self, device):
                return self.device == device

        p1 = person('telefon')
        p2 = person('tablet')
        persons = [p1, p2]

        self.assertEqual(
            p1,
            find(persons, predicate=lambda p: p.has_device('telefon')))