Exemple #1
0
    def test_sort(self):
        n0 = Node({'order': 0})
        n1 = Node({'order': 1})
        n2 = Node({'order': 2})
        items = Nodes([n1, n2, n0])

        self.assertCountEqual(items.sort('order'), [n0, n1, n2])

        f = lambda n: n.props.get('order')
        self.assertCountEqual(items.sort(f), [n0, n1, n2])
Exemple #2
0
 def test_getitem(self):
     items = Nodes([1, 2])
     # Index
     self.assertEqual(items[0], 1)
     # Key
     self.assertEqual(items['1'], 1)
     # Multiple
     self.assertCountEqual(items[0, 1], [1, 2])
     # Invalid key
     self.assertRaises(KeyError, items.__getitem__, None)
Exemple #3
0
    def test_filter(self):
        items = Nodes([Node({'foo': 1}), Node({'foo': 2}), Node({'foo': 2})])

        self.assertCountEqual(items.filter('foo'), items)
        self.assertCountEqual(items.filter('foo', 1), items[:1])
        self.assertCountEqual(items.filter('foo', 2), items[1:])
        self.assertCountEqual(items.filter('foo', 3), [])
        self.assertCountEqual(items.filter('bar'), [])

        # Arbitrary filter function
        f = lambda n: n == items[2]
        self.assertCountEqual(items.filter(f), items[2:])

        # Only functions and strings
        self.assertRaises(TypeError, items.filter, 10)
Exemple #4
0
 def test_equality(self):
     self.assertEqual(Nodes([1]), [1])
     self.assertNotEqual(Nodes(), 1)
     self.assertNotEqual(Nodes([1, 2]), [1])
     self.assertNotEqual(Nodes([1, 2]), [1, 3])
Exemple #5
0
 def test_match(self):
     items = Nodes([1, 2, 13])
     self.assertCountEqual(items.match(r'1'), [1, 13])
     self.assertCountEqual(items.match(r'2'), [2])