示例#1
0
    def test_mixed_attr(self):
        """Tests for fields in dir() but whose getattr() fails."""

        class InstanceOnlyDescriptor(object):
            def __get__(self, instance, owner):
                if instance is None:
                    raise AttributeError("You can't retrieve InstanceOnlyDescriptor.")
                return len(instance.__dict__)

        class MyClass(object):
            x = InstanceOnlyDescriptor()
            y = 13

        # Make sure the 'InstanceOnlyDescriptor' works.
        self.assertRaises(AttributeError, getattr, MyClass, 'x')

        obj = MyClass()
        self.assertEqual(0, obj.x)
        obj.y = 3
        self.assertEqual(1, obj.x)


        # Fetch fields
        fields = dict(utils.iterclass(MyClass))

        # Check for normal fields
        self.assertIn('y', fields)
        self.assertEqual(13, fields['y'])

        # Check that the invalid attribute is ignored.
        self.assertNotIn('x', fields)
示例#2
0
    def test_mixed_attr(self):
        """Tests for fields in dir() but whose getattr() fails."""
        class InstanceOnlyDescriptor(object):
            def __get__(self, instance, owner):
                if instance is None:
                    raise AttributeError(
                        "You can't retrieve InstanceOnlyDescriptor.")
                return len(instance.__dict__)

        class MyClass(object):
            x = InstanceOnlyDescriptor()
            y = 13

        # Make sure the 'InstanceOnlyDescriptor' works.
        self.assertRaises(AttributeError, getattr, MyClass, 'x')

        obj = MyClass()
        self.assertEqual(0, obj.x)
        obj.y = 3
        self.assertEqual(1, obj.x)

        # Fetch fields
        fields = dict(utils.iterclass(MyClass))

        # Check for normal fields
        self.assertIn('y', fields)
        self.assertEqual(13, fields['y'])

        # Check that the invalid attribute is ignored.
        self.assertNotIn('x', fields)
示例#3
0
    def test_simple_class(self):
        class MyClass(object):

            x = 42

            def inst_mth(self):  # pragma: no cover
                pass

            @classmethod
            def cls_mth(cls):  # pragma: no cover
                pass

            @staticmethod
            def st_mth(cls):  # pragma: no cover
                pass

        fields = list(utils.iterclass(MyClass))
        self.assertIn(('x', 42), fields)
        self.assertIn(('inst_mth', MyClass.inst_mth), fields)
        self.assertIn(('cls_mth', MyClass.cls_mth), fields)
        self.assertIn(('st_mth', MyClass.st_mth), fields)
示例#4
0
    def test_simple_class(self):
        class MyClass(object):

            x = 42

            def inst_mth(self):  # pragma: no cover
                pass

            @classmethod
            def cls_mth(cls):  # pragma: no cover
                pass

            @staticmethod
            def st_mth(cls):  # pragma: no cover
                pass

        fields = list(utils.iterclass(MyClass))
        self.assertIn(('x', 42), fields)
        self.assertIn(('inst_mth', MyClass.inst_mth), fields)
        self.assertIn(('cls_mth', MyClass.cls_mth), fields)
        self.assertIn(('st_mth', MyClass.st_mth), fields)