Exemple #1
0
    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)
Exemple #2
0
    def test_prompt_without_keys(self):
        def test_fn(*args, **kwargs):
            pass

        fn = prompt(test_fn, input_func=self.fake_input)

        fn(Session('test'))
Exemple #3
0
    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)
Exemple #4
0
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')
Exemple #5
0
 def setUp(self):
     self.start_tmux_session()
     self.session = Session(self.session_name, enable_auto_advance=True)
Exemple #6
0
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()
Exemple #7
0
 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)
Exemple #8
0
 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)
Exemple #9
0
 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)
Exemple #10
0
 def setUp(self):
     self.start_tmux_session()
     self.session = Session(self.session_name, enable_auto_advance=True)
Exemple #11
0
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()
Exemple #12
0
 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)
Exemple #13
0
 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)
Exemple #14
0
 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)