Ejemplo n.º 1
0
 def test_behaviour(self):
     val = []
     d = mappings.IndeterminantDict(
         lambda key: val.append(key), {}.fromkeys(range(10), True))
     assert d[0] == True
     assert d[11] == None
     assert val == [11]
     def func(*a):
         raise KeyError
     with pytest.raises(KeyError):
         mappings.IndeterminantDict(func).__getitem__(1)
Ejemplo n.º 2
0
    def test_behaviour(self):
        val = []
        d = mappings.IndeterminantDict(lambda key: val.append(key),
                                       {}.fromkeys(xrange(10), True))
        self.assertEqual(d[0], True)
        self.assertEqual(d[11], None)
        self.assertEqual(val, [11])

        def func(*a):
            raise KeyError

        self.assertRaises(KeyError,
                          mappings.IndeterminantDict(func).__getitem__, 1)
Ejemplo n.º 3
0
 def test_starter_dict(self):
     d = mappings.IndeterminantDict(
         lambda key: False, starter_dict={}.fromkeys(range(100), True))
     for x in range(100):
         assert d[x] == True
     for x in range(100, 110):
         assert d[x] == False
Ejemplo n.º 4
0
 def test_starter_dict(self):
     d = mappings.IndeterminantDict(lambda key: False,
                                    starter_dict={}.fromkeys(
                                        xrange(100), True))
     for x in xrange(100):
         self.assertEqual(d[x], True)
     for x in xrange(100, 110):
         self.assertEqual(d[x], False)
Ejemplo n.º 5
0
 def test_disabled_methods(self):
     d = mappings.IndeterminantDict(lambda *a: None)
     for x in ("clear", ("update", {}), ("setdefault", 1), "__iter__",
               "__len__", "__hash__", ("__delitem__", 1),
               ("__setitem__", 2), ("popitem", 2), "iteritems", "iterkeys",
               "keys", "items", "itervalues", "values"):
         if isinstance(x, tuple):
             self.assertRaises(TypeError, getattr(d, x[0]), x[1])
         else:
             self.assertRaises(TypeError, getattr(d, x))
Ejemplo n.º 6
0
 def test_get(self):
     def func(key):
         if key == 2:
             raise KeyError
         return True
     d = mappings.IndeterminantDict(func, {1: 1})
     assert d.get(1, 1) == 1
     assert d.get(1, 2) == 1
     assert d.get(2) == None
     assert d.get(2, 2) == 2
     assert d.get(3) == True
Ejemplo n.º 7
0
    def test_get(self):
        def func(key):
            if key == 2:
                raise KeyError
            return True

        d = mappings.IndeterminantDict(func, {1: 1})
        self.assertEqual(d.get(1, 1), 1)
        self.assertEqual(d.get(1, 2), 1)
        self.assertEqual(d.get(2), None)
        self.assertEqual(d.get(2, 2), 2)
        self.assertEqual(d.get(3), True)