def METHOD_NAME(self):
    from Merlin.Testing.Accessibility import CliClass, DerivedCliClass
    for C in [CliClass, DerivedCliClass]:
        # hasattr reports false because accessing the attribute
        # raises, this is consistent w/ CPython when accessing a
        # user defined property w/ a getter that raises.
        self.assertTrue(not hasattr(C, 'internal_static_field'))
        self.assertTrue(hasattr(C, 'protected_static_field'))
        self.assertTrue('internal_static_field' not in dir(C))
        self.assertTrue('protected_static_field' in dir(C))
        x = C()
        with self.assertRaises(TypeError):
            hasattr(x, 'protected_instance_field')
        self.assertTrue('protected_instance_field' in dir(C))
        self.assertTrue('protected_instance_field' in dir(x))
        self.assertRaises(TypeError, lambda : x.protected_instance_field)