def METHOD_NAME(self):
    from splunklib.searchcommands import Configuration, StreamingCommand
    @Configuration()
    class TestCommand(StreamingCommand):
        def stream(self, records):
            pass
    command = TestCommand()
    command._protocol_version = 1
    self.assertEqual(
        [(name, value) for name, value in six.iteritems(command.configuration)],
        [('streaming', True)])
    self.assertIs(command.configuration.clear_required_fields, None)
    self.assertIs(command.configuration.local, None)
    self.assertIs(command.configuration.overrides_timeorder, None)
    self.assertIs(command.configuration.required_fields, None)
    self.assertIs(command.configuration.streaming, True)
    command.configuration.clear_required_fields = True
    command.configuration.local = True
    command.configuration.overrides_timeorder = True
    command.configuration.required_fields = ['field_1', 'field_2', 'field_3']
    try:
        command.configuration.streaming = False
    except AttributeError:
        pass
    except Exception as error:
        self.fail('Expected AttributeError, not {}: {}'.format(type(error).__name__, error))
    else:
        self.fail('Expected AttributeError')
    self.assertEqual(
        [(name, value) for name, value in six.iteritems(command.configuration)],
        [('clear_required_fields', True), ('local', True), ('overrides_timeorder', True), ('required_fields', ['field_1', 'field_2', 'field_3']), ('streaming', True)])
    command = TestCommand()
    command._protocol_version = 2
    self.assertEqual(
        [(name, value) for name, value in six.iteritems(command.configuration)],
        [('type', 'streaming')])
    self.assertIs(command.configuration.distributed, True)
    self.assertEqual(command.configuration.type, 'streaming')
    command.configuration.distributed = False
    command.configuration.required_fields = ['field_1', 'field_2', 'field_3']
    try:
        command.configuration.type = 'events'
    except AttributeError:
        pass
    except Exception as error:
        self.fail('Expected AttributeError, not {}: {}'.format(type(error).__name__, error))
    else:
        self.fail('Expected AttributeError')
    self.assertEqual(
        [(name, value) for name, value in six.iteritems(command.configuration)],
        [('required_fields', ['field_1', 'field_2', 'field_3']), ('type', 'stateful')])
    return