73 lines
1.8 KiB
Python
73 lines
1.8 KiB
Python
import pytest
|
|
|
|
class ConfigShim(object):
|
|
def get(self, *args, **kwargs):
|
|
return ''
|
|
|
|
from poezio import config
|
|
config.config = ConfigShim()
|
|
|
|
from poezio.windows import Input, HistoryInput, MessageInput
|
|
|
|
@pytest.fixture
|
|
def input():
|
|
input = Input()
|
|
input.rewrite_text = lambda: None
|
|
return input
|
|
|
|
class TestInput(object):
|
|
|
|
def test_do_command(self, input):
|
|
|
|
input.do_command('a')
|
|
assert input.text == 'a'
|
|
|
|
for char in 'coucou':
|
|
input.do_command(char)
|
|
assert input.text == 'acoucou'
|
|
|
|
def test_empty(self, input):
|
|
assert input.is_empty() == True
|
|
input.do_command('a')
|
|
assert input.is_empty() == False
|
|
|
|
def test_key_left(self, input):
|
|
for char in 'this is a line':
|
|
input.do_command(char)
|
|
for i in range(4):
|
|
input.key_left()
|
|
for char in 'long ':
|
|
input.do_command(char)
|
|
|
|
assert input.text == 'this is a long line'
|
|
|
|
def test_key_right(self, input):
|
|
for char in 'this is a line':
|
|
input.do_command(char)
|
|
for i in range(4):
|
|
input.key_left()
|
|
input.key_right()
|
|
|
|
for char in 'iii':
|
|
input.do_command(char)
|
|
|
|
assert input.text == 'this is a liiiine'
|
|
|
|
def test_key_home(self, input):
|
|
for char in 'this is a line of text':
|
|
input.do_command(char)
|
|
input.do_command('z')
|
|
input.key_home()
|
|
input.do_command('a')
|
|
|
|
assert input.text == 'athis is a line of textz'
|
|
|
|
def test_key_end(self, input):
|
|
for char in 'this is a line of text':
|
|
input.do_command(char)
|
|
input.key_home()
|
|
input.key_end()
|
|
input.do_command('z')
|
|
|
|
assert input.text == 'this is a line of textz'
|
|
|