1
0
mirror of https://github.com/rancher/os.git synced 2025-07-18 00:51:04 +00:00
os/tests/integration/rancherostest/test_system.py
2015-05-10 17:46:09 +05:00

57 lines
1.5 KiB
Python

import pytest
import subprocess
import time
@pytest.fixture(scope="module")
def qemu(request):
subprocess.check_call('rm ./state/*', shell=True)
print('\nrm ./state/*')
print('\nStarting QEMU')
p = subprocess.Popen('./scripts/run', stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
def fin():
print('\nTerminating QEMU')
p.stdout.close()
p.terminate()
request.addfinalizer(fin)
return p
@pytest.mark.timeout(30)
def test_system_boot(qemu):
for ln in iter(qemu.stdout.readline, ''):
ros_booted_substr = str.find(ln, 'RancherOS v0.3.1-rc2 started') # TODO use ./scripts/version
print(str.strip(ln))
if ros_booted_substr > -1:
assert True
return
assert False
@pytest.mark.timeout(10)
def wait_for_ssh():
while subprocess.call(['./scripts/ssh', '/bin/true']) != 0:
time.sleep(1)
@pytest.mark.timeout(40)
def test_run_system_container(qemu):
assert qemu.returncode is None
wait_for_ssh()
ssh = subprocess.Popen(
'./scripts/ssh sudo system-docker run --rm busybox /bin/true', shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
try:
for ln in iter(ssh.stdout.readline, ''):
print(str.strip(ln))
pass
ssh.wait()
assert ssh.returncode == 0
finally:
ssh.stdout.close()
if ssh.returncode is None:
ssh.terminate()