def test_func_call_reference(self):
        def foo(value, add=0):
            return value + add

        foo_ref = FuncCallReference(True, foo, 5, add=7)
        self.assertEqual(12, foo_ref.deref(Context()))

        foo_ref = FuncCallReference(True, foo, 5)
        self.assertEqual(5, foo_ref.deref(Context()))

        foo_ref = FuncCallReference(True,
                                    foo,
                                    ObjectReference(True, 5),
                                    add=ObjectReference(True, 7))
        self.assertEqual(12, foo_ref.deref(Context()))
    def test_reference__cyclic_reference(self):
        a = FuncCallReference(True, None)
        a.func_ref = a
        with self.assertRaises(CyclicReferenceError):
            a.deref(Context())

        repr(a)  # make sure it doesn't raise an exception
Ejemplo n.º 3
0
 def test_bit__numeric_out_of_range(self):
     range1 = bytes_ref[3:4].bits[5:9]
     with self.assertRaises(ValueError):
         range1.deref(Context())
Ejemplo n.º 4
0
 def test_bit__numeric(self):
     range1 = bytes_ref[3:4].bits[5]
     self.assertEqualRangeList([(3 + 5.0 / 8, 3 + 6.0 / 8)],
                               range1.deref(Context()))
Ejemplo n.º 5
0
 def test_range_factory__slice_and_list(self):
     range1 = bytes_ref[1:4, 5, 7]
     self.assertEqualRangeList([(1, 4), (5, 6), (7, 8)],
                               range1.deref(Context()))
Ejemplo n.º 6
0
 def test_range_factory__list_range_reference(self):
     range1 = bytes_ref[1, 5, 7]
     self.assertEqualRangeList([(1, 2), (5, 6), (7, 8)],
                               range1.deref(Context()))
 def test_numeric_binary_expression_radd(self):
     obj = NumberHolder(37)
     a = GetAttrReference(True, obj, 'n')
     self.assertEqual(42, (5 + a).deref(Context()))
 def test_numeric_binary_expression_add__two_references(self):
     obj = NumberHolder(21)
     a = GetAttrReference(True, obj, 'n')
     b = GetAttrReference(True, obj, 'k')
     self.assertEqual(31, (a + b).deref(Context()))
 def test_numeric_reference(self):
     obj = NumberHolder(42)
     a = GetAttrReference(True, obj, 'n')
     self.assertEqual(42, a.deref(Context()))