Files
asciinema/tests/pty_recorder_test.py

43 lines
998 B
Python
Raw Normal View History

import os
import pty
from nose.tools import assert_equal
from .test_helper import Test
from asciinema.pty_recorder import PtyRecorder
2016-06-30 16:36:48 +02:00
class FakeStdout:
def __init__(self):
self.data = []
2017-09-22 22:21:35 +02:00
def write_stdout(self, data):
self.data.append(data)
2017-09-22 22:21:35 +02:00
def write_stdin(self, data):
pass
2016-07-05 17:57:21 +02:00
class TestPtyRecorder(Test):
def setUp(self):
self.real_os_write = os.write
os.write = self.os_write
def tearDown(self):
os.write = self.real_os_write
def os_write(self, fd, data):
if fd != pty.STDOUT_FILENO:
self.real_os_write(fd, data)
def test_record_command_writes_to_stdout(self):
pty_recorder = PtyRecorder()
output = FakeStdout()
2016-07-05 17:57:21 +02:00
command = ['python3', '-c', "import sys; import time; sys.stdout.write(\'foo\'); sys.stdout.flush(); time.sleep(0.01); sys.stdout.write(\'bar\')"]
pty_recorder.record_command(command, output)
assert_equal([b'foo', b'bar'], output.data)