예제 #1
0
    def test_can_run_action(self):
        self.assertEqual(self.state.can_run_action(), None)

        self.state = state.State(self.view)
        self.state.mode = modes.VISUAL
        self.assertEqual(self.state.can_run_action(), None)

        self.state = state.State(self.view)
        self.state.action = {'name': 'fake_action', 'motion_required': True}
        self.state.mode = modes.VISUAL
        self.assertEqual(self.state.can_run_action(), True)

        self.state = state.State(self.view)
        self.state.action = {'name': 'fake_action', 'motion_required': False}
        self.state.mode = modes.VISUAL
        self.assertEqual(self.state.can_run_action(), True)

        self.state = state.State(self.view)
        self.state.mode = modes.NORMAL
        self.state.action = {'motion_required': True}
        self.assertEqual(self.state.can_run_action(), None)

        self.state = state.State(self.view)
        self.state.mode = modes.NORMAL
        self.state.action = {'motion_required': False}
        self.assertEqual(self.state.can_run_action(), True)
예제 #2
0
    def test_runnable_IfActionAvailable(self):
        self.state.mode = modes.NORMAL
        self.state.action = {'name': 'fake_action', 'motion_required': False}
        self.assertEqual(self.state.runnable(), True)

        self.state = state.State(self.view)
        self.state.action = {'name': 'fake_action', 'motion_required': True}
        self.assertEqual(self.state.runnable(), False)

        self.state = state.State(self.view)
        self.state.mode = modes.OPERATOR_PENDING
        # ensure we can run the action
        self.state.action = {'name': 'fake_action', 'motion_required': False}
        self.assertRaises(ValueError, self.state.runnable)
예제 #3
0
    def testCanInitialize(self):
        s = state.State(self.view)
        # Make sure the actual usage of Vintageous doesn't change the pristine
        # state. This isn't great, though.
        self.view.window().settings().erase(
            '_vintageous_last_char_search_command')
        self.view.window().settings().erase(
            '_vintageous_last_character_search')
        self.view.window().settings().erase('_vintageous_last_buffer_search')

        self.assertEqual(s.sequence, '')
        self.assertEqual(s.partial_sequence, '')
        # TODO(guillermooo): This one fails in AppVeyor, but not locally.
        self.assertEqual(s.mode, modes.NORMAL)
        self.assertEqual(s.action, None)
        self.assertEqual(s.motion, None)
        self.assertEqual(s.action_count, '')
        self.assertEqual(s.glue_until_normal_mode, False)
        self.assertEqual(s.processing_notation, False)
        self.assertEqual(s.last_character_search, '')
        self.assertEqual(s.last_char_search_command, 'vi_f')
        self.assertEqual(s.non_interactive, False)
        self.assertEqual(s.must_capture_register_name, False)
        self.assertEqual(s.last_buffer_search, '')
        self.assertEqual(s.reset_during_init, True)
예제 #4
0
    def testCanInitialize(self):
        s = state.State(self.view)
        # Make sure the actual usage of Vintageous doesn't change the pristine
        # state. This isn't great, though.
        self.view.window().settings().erase(
            '_vintageous_last_character_search_forward')
        self.view.window().settings().erase(
            '_vintageous_last_character_search')
        self.view.window().settings().erase('_vintageous_last_buffer_search')

        self.assertEqual(s.sequence, '')
        self.assertEqual(s.partial_sequence, '')
        self.assertEqual(s.mode, modes.UNKNOWN)
        self.assertEqual(s.action, None)
        self.assertEqual(s.motion, None)
        self.assertEqual(s.action_count, '')
        self.assertEqual(s.glue_until_normal_mode, False)
        self.assertEqual(s.gluing_sequence, False)
        self.assertEqual(s.user_input, '')
        self.assertEqual(s.input_parsers, [])
        self.assertEqual(s.last_character_search, '')
        self.assertEqual(s.last_character_search_forward, False)
        self.assertEqual(s.non_interactive, False)
        self.assertEqual(s.capture_register, False)
        self.assertEqual(s.last_buffer_search, '')
        self.assertEqual(s.reset_during_init, True)
예제 #5
0
    def test_runnable_IfMotionAvailable(self):
        self.state.mode = modes.NORMAL
        self.state.motion = {'name': 'fake_motion'}
        self.assertEqual(self.state.runnable(), True)

        self.state = state.State(self.view)
        self.state.mode = modes.OPERATOR_PENDING
        self.state.motion = {'name': 'fake_motion'}
        self.assertRaises(ValueError, self.state.runnable)
예제 #6
0
    def test_runnable_IfActionAndMotionAvailable(self):
        self.state.mode = modes.NORMAL
        self.state.action = {'name': 'fake_action'}
        self.state.motion = {'name': 'fake_motion'}
        self.assertEqual(self.state.runnable(), True)

        self.state = state.State(self.view)
        self.state.mode = 'junk'
        self.state.action = {'name': 'fake_action'}
        self.state.motion = {'name': 'fake_motion'}
        self.assertRaises(ValueError, self.state.runnable)
예제 #7
0
 def setUp(self):
     super().setUp()
     self.state = state.State(self.view)