Implement basic test cases

This commit is contained in:
Kristóf Tóth 2018-12-14 15:40:11 +01:00
parent 4beed1056a
commit a8d73483cf

52
tests.py Normal file
View File

@ -0,0 +1,52 @@
from os import stat
from os.path import exists
from stat import S_ISFIFO
import pytest
from echo_server import EchoPipeIOServer
@pytest.fixture
def pipe_io():
pipe_server = EchoPipeIOServer()
pipe_server.run()
yield pipe_server
pipe_server.stop()
def test_pipes_exist(pipe_io):
for path in (pipe_io.in_pipe, pipe_io.out_pipe):
assert exists(path)
def test_pipes_isfifo(pipe_io):
for path in (pipe_io.in_pipe, pipe_io.out_pipe):
assert S_ISFIFO(stat(path).st_mode)
@pytest.mark.parametrize(
'test_data', [
'cats',
'cheese',
'You ever wonder why we are here?',
'Lorem ipsum dolor sit amet',
'You always have a plan, Dutch!'
]
)
def test_echo_server(pipe_io, test_data):
File(pipe_io.in_pipe).write(test_data)
assert File(pipe_io.out_pipe).read() == test_data
class File:
def __init__(self, path):
self.path = path
def write(self, what):
with open(self.path, 'w') as ofile:
ofile.write(what)
def read(self):
with open(self.path, 'r') as ifile:
return ifile.read()