Implement basic test cases
This commit is contained in:
parent
4beed1056a
commit
a8d73483cf
52
tests.py
Normal file
52
tests.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user