def METHOD_NAME(self):
    # Ignoring work_skipper and punct checker since their values
    # are not default, but they are also not None
    def check_recursively(c: MixingConfig):
        for field_name, field in c.fields().items():
            with self.subTest(f'{type(c).__name__}:{field_name}'):
                val = getattr(c, field_name)
                if field_name in ConfigTests._NON_DEFAULT_NON_NONE_FIELDS:
                    self.assertIsNotNone(val)
                else:
                    self.assertEqual(val, field.default)
            if isinstance(val, MixingConfig):
                check_recursively(val)
    check_recursively(Config())