def test_auto_advance_context_manager_restores_state(self): s1 = Session(self.session_name, enable_auto_advance=True) s2 = Session(self.session_name) self.assertTrue(s1.auto_advancing) with s1.auto_advance(): self.assertTrue(s1.auto_advancing) self.assertTrue(s1.auto_advancing) self.assertFalse(s2.auto_advancing) with s2.auto_advance(): self.assertTrue(s1.auto_advancing) self.assertFalse(s2.auto_advancing)
def test_prompt_without_keys(self): def test_fn(*args, **kwargs): pass fn = prompt(test_fn, input_func=self.fake_input) fn(Session('test'))
from lib import helpers, settings from oraide import Session, keys # stary clean helpers.reset() s = Session('demo') with s.auto_advance(): s.enter('cd') s.enter('mkdir {}'.format(settings.DEMO_PATH)) s.enter('cd {}'.format(settings.DEMO_PATH)) with s.auto_advance(): s.enter('vim Dockerfile') s.teletype('i') s.enter('FROM debian:jessie') s.enter('RUN apt-get update') s.enter('RUN apt-get install -y cowsay', after=keys.escape) s.enter(':x') s.enter('docker build -t cowsay .') s.enter('docker run cowsay') s.enter('docker run cowsay /usr/games/cowsay') s.enter('docker run cowsay /usr/games/cowsay "hola mundo"') with s.auto_advance(): s.enter('vim Dockerfile') s.teletype('jjo') s.enter('CMD ["/usr/games/cowsay"]', after=keys.escape) s.enter(':x')
def setUp(self): self.start_tmux_session() self.session = Session(self.session_name, enable_auto_advance=True)
class TestSessionEnter(LiveSessionMixin, unittest.TestCase): session_name = TESTING_SESSION_NAME def setUp(self): self.start_tmux_session() self.session = Session(self.session_name, enable_auto_advance=True) def test_noop(self): """Test some cases of calling Enter that don't actually do anything.""" contents = self.get_tmux_session_contents() self.session.enter(after=None) self.session.enter(teletype=False, after=None) self.assertEqual(contents, self.get_tmux_session_contents()) def test_enter_without_text(self): original_contents = self.get_tmux_session_contents() original_count = original_contents.count(SHELL_PROMPT) logging.debug("Before: %s", repr(original_contents)) self.session.enter() self.session.enter(teletype=False) @assert_after_timeout def _assertion(): contents = self.get_tmux_session_contents() logging.debug("After: %s", repr(contents)) self.assertEqual(original_count + 2, contents.count(SHELL_PROMPT)) _assertion() def test_keys_with_enter(self): self.session.enter("echo 'test_keys_with_enter'") output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_with_enter'), 2) def test_keys_without_enter(self): self.session.enter("echo 'test_keys_without_enter'", after=None) output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_without_enter'), 1) self.session.enter() def test_keys_without_teletype_without_after(self): self.session.enter("echo 'test_keys_without_teletype_without_after'", teletype=False, after=None) self.assertIn('test_keys_without_teletype_without_after', self.get_tmux_session_contents()) def test_keys_without_teletype_with_enter(self): self.session.enter("echo 'test_keys_without_teletype_with_enter'") output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_without_teletype_with_enter'), 2) def tearDown(self): self.kill_tmux_session()
def test_delay_default(self): s = Session(self.session_name, enable_auto_advance=True) s.teletype("echo 'this is the default delay'") s.send_keys('Enter', literal=False)
def test_delay_set_by_session_attribute(self): s = Session(self.session_name, enable_auto_advance=True, teletype_delay=10) s.teletype("echo 'this is the delay set on the session at-large'") s.send_keys('Enter', literal=False)
def test_delay_set_by_argument(self): s = Session(self.session_name, enable_auto_advance=True) s.teletype("echo 'this is the delay set on the method'", delay=10) s.send_keys('Enter', literal=False)
class TestSessionEnter(LiveSessionMixin, unittest.TestCase): session_name = TESTING_SESSION_NAME def setUp(self): self.start_tmux_session() self.session = Session(self.session_name, enable_auto_advance=True) def test_noop(self): """Test some cases of calling Enter that don't actually do anything.""" contents = self.get_tmux_session_contents() self.session.enter(after=None) self.session.enter(teletype=False, after=None) self.assertEqual(contents, self.get_tmux_session_contents()) def test_enter_without_text(self): original_contents = self.get_tmux_session_contents() original_count = original_contents.count(SHELL_PROMPT) logging.debug("Before: %s", repr(original_contents)) self.session.enter() self.session.enter(teletype=False) @assert_after_timeout def _assertion(): contents = self.get_tmux_session_contents() logging.debug("After: %s", repr(contents)) self.assertEqual(original_count + 2, contents.count(SHELL_PROMPT)) _assertion() def test_keys_with_enter(self): self.session.enter("echo 'test_keys_with_enter'") output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_with_enter'), 2) def test_keys_without_enter(self): self.session.enter("echo 'test_keys_without_enter'", after=None) output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_without_enter'), 1) self.session.enter() def test_keys_without_teletype_without_after(self): self.session.enter("echo 'test_keys_without_teletype_without_after'", teletype=False, after=None) self.assertIn( 'test_keys_without_teletype_without_after', self.get_tmux_session_contents() ) def test_keys_without_teletype_with_enter(self): self.session.enter("echo 'test_keys_without_teletype_with_enter'") output = self.get_tmux_session_contents() self.assertEqual(output.count('test_keys_without_teletype_with_enter'), 2) def tearDown(self): self.kill_tmux_session()