Exemple #1
0
    def test_lookup_with_slots(self):
        s = Slots()
        s.s1 = "s1"
        self.assertEqual(inspection.getattr_safe(s, "s1"), "s1")
        with self.assertRaises(AttributeError):
            inspection.getattr_safe(s, "s2")

        self.assertEqual(inspection.hasattr_safe(s, "s1"), True)
        self.assertEqual(inspection.hasattr_safe(s, "s2"), False)
Exemple #2
0
    def test_lookup_on_object(self):
        a = A()
        a.x = 1
        self.assertEqual(inspection.getattr_safe(a, "x"), 1)
        self.assertEqual(inspection.getattr_safe(a, "a"), "a")
        b = B()
        b.y = 2
        self.assertEqual(inspection.getattr_safe(b, "y"), 2)
        self.assertEqual(inspection.getattr_safe(b, "a"), "a")
        self.assertEqual(inspection.getattr_safe(b, "b"), "b")

        self.assertEqual(inspection.hasattr_safe(b, "y"), True)
        self.assertEqual(inspection.hasattr_safe(b, "b"), True)
Exemple #3
0
 def test_lookup_with_property_and_slots(self):
     sga = inspection.getattr_safe
     s = SlotsSubclass()
     self.assertIsInstance(sga(Slots, "s3"), property)
     self.assertEqual(inspection.getattr_safe(s, "s3"),
                      Slots.__dict__["s3"])
     self.assertIsInstance(sga(SlotsSubclass, "s3"), property)
Exemple #4
0
 def test_avoid_running_properties(self):
     p = Property()
     self.assertEqual(inspection.getattr_safe(p, "prop"), Property.prop)
     self.assertEqual(inspection.hasattr_safe(p, "prop"), True)