Compare commits
No commits in common. "d37bd67b2ed5f12ffc3d5435d0782b37d776caf5" and "8bc3173bbf88b1baa724b2e4d182d690fc3e67e6" have entirely different histories.
d37bd67b2e
...
8bc3173bbf
@ -77,8 +77,7 @@ def _config():
|
|||||||
if onemulti in config.sections():
|
if onemulti in config.sections():
|
||||||
for option in config.options(onemulti):
|
for option in config.options(onemulti):
|
||||||
for collection in configmap[multi]:
|
for collection in configmap[multi]:
|
||||||
if not option in configmap[multi][collection]:
|
configmap[multi][collection][option] = config.get(onemulti, option)
|
||||||
configmap[multi][collection][option] = config.get(onemulti, option)
|
|
||||||
if multi in ['boxes', 'suites']:
|
if multi in ['boxes', 'suites']:
|
||||||
if not len(lowconf):
|
if not len(lowconf):
|
||||||
_abort('No {} configured'.format(multi))
|
_abort('No {} configured'.format(multi))
|
||||||
|
@ -1,27 +1,14 @@
|
|||||||
[box]
|
[box]
|
||||||
bootstrap=tests/scripts/bootstrap.sh
|
bootstrap=tests/scripts/bootstrap.sh
|
||||||
image=https://download.opensuse.org/repositories/home:/crameleon:/appliances/openSUSE_Tumbleweed/Tumbleweed.x86_64-libvirt.box
|
|
||||||
|
|
||||||
[box.tumbleweed]
|
[box.tumbleweed]
|
||||||
name=tumbleweed
|
name=tumbleweed
|
||||||
|
image=https://download.opensuse.org/repositories/home:/crameleon:/appliances/openSUSE_Tumbleweed/Tumbleweed.x86_64-libvirt.box
|
||||||
[box.tumbleweed_bootstrap]
|
|
||||||
name=tumbleweed_bootstrap
|
|
||||||
bootstrap=tests/scripts/bootstrap_hello_world.sh
|
|
||||||
|
|
||||||
[suite.one_minion]
|
[suite.one_minion]
|
||||||
minions=1
|
minions=1
|
||||||
box=tumbleweed
|
box=tumbleweed
|
||||||
|
|
||||||
[suite.one_minion_bootstrap]
|
|
||||||
minions=1
|
|
||||||
box=tumbleweed_bootstrap
|
|
||||||
|
|
||||||
[suite.one_minion_one_master_bootstrap]
|
|
||||||
minions=1
|
|
||||||
masters=1
|
|
||||||
box=tumbleweed_bootstrap
|
|
||||||
|
|
||||||
[suite.two_minions]
|
[suite.two_minions]
|
||||||
minions=2
|
minions=2
|
||||||
box=tumbleweed
|
box=tumbleweed
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
import pytest
|
|
||||||
import os
|
|
||||||
import libvirt
|
|
||||||
import vagrant
|
|
||||||
import dotenv
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def script():
|
|
||||||
is_packaged = False
|
|
||||||
script = 'scullery'
|
|
||||||
if not is_packaged:
|
|
||||||
script = f'{script}.py'
|
|
||||||
return script
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def testbase():
|
|
||||||
return os.path.abspath(os.path.dirname(os.getenv('PYTEST_CURRENT_TEST')))
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def config(testbase, request):
|
|
||||||
return '{}/configs/{}.ini'.format(testbase, request.param)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def virt():
|
|
||||||
return libvirt.openReadOnly('qemu:///system')
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def vag():
|
|
||||||
return vagrant.Vagrant(quiet_stderr=False, quiet_stdout=False)
|
|
||||||
|
|
||||||
def loadenv():
|
|
||||||
env = os.environ.copy()
|
|
||||||
envmap = dotenv.dotenv_values('.scullery_env')
|
|
||||||
for variable, value in envmap.items():
|
|
||||||
if value is not None:
|
|
||||||
if isinstance(value, list):
|
|
||||||
value = ','.join(value)
|
|
||||||
env[variable] = value
|
|
||||||
return env
|
|
@ -1 +0,0 @@
|
|||||||
echo 'Hello world!' > /srv/hello_world.txt
|
|
@ -1,8 +1,33 @@
|
|||||||
import pytest
|
import pytest
|
||||||
#import os
|
import os
|
||||||
|
import vagrant
|
||||||
import dotenv
|
import dotenv
|
||||||
|
import libvirt
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def script():
|
||||||
|
is_packaged = False
|
||||||
|
script = 'scullery'
|
||||||
|
if not is_packaged:
|
||||||
|
script = f'{script}.py'
|
||||||
|
return script
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def testbase():
|
||||||
|
return os.path.abspath(os.path.dirname(os.getenv('PYTEST_CURRENT_TEST')))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def config(testbase, request):
|
||||||
|
return '{}/configs/{}.ini'.format(testbase, request.param)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def virt():
|
||||||
|
return libvirt.openReadOnly('qemu:///system')
|
||||||
|
|
||||||
def test_no_arguments(script_runner, script):
|
def test_no_arguments(script_runner, script):
|
||||||
result = script_runner.run(script)
|
result = script_runner.run(script)
|
||||||
assert result.success is False
|
assert result.success is False
|
||||||
@ -49,7 +74,7 @@ def test_config_undefined(script_runner, script, testbase, section, message):
|
|||||||
('two_minions_one_master', "[Status(name='scullery-master0', state='not_created', provider='libvirt'), Status(name='scullery-minion0', state='not_created', provider='libvirt'), Status(name='scullery-minion1', state='not_created', provider='libvirt')]")
|
('two_minions_one_master', "[Status(name='scullery-master0', state='not_created', provider='libvirt'), Status(name='scullery-minion0', state='not_created', provider='libvirt'), Status(name='scullery-minion1', state='not_created', provider='libvirt')]")
|
||||||
])
|
])
|
||||||
def test_status_report_not_running(script_runner, script, config, suite, report):
|
def test_status_report_not_running(script_runner, script, config, suite, report):
|
||||||
result = script_runner.run(script, '--config', config, '--suite', suite, '--status', '--debug', '--env')
|
result = script_runner.run(script, '--config', config, '--suite', suite, '--status')
|
||||||
assert result.success
|
assert result.success
|
||||||
assert result.stderr.endswith("INFO - main_interactive: Status report: {}\n".format(report))
|
assert result.stderr.endswith("INFO - main_interactive: Status report: {}\n".format(report))
|
||||||
|
|
||||||
@ -114,12 +139,10 @@ def test_envfile(script_runner, script, config, suite, masters, minions):
|
|||||||
'two_minions',
|
'two_minions',
|
||||||
'one_master',
|
'one_master',
|
||||||
'one_minion_one_master',
|
'one_minion_one_master',
|
||||||
'two_minions_one_master',
|
'two_minions_one_master'
|
||||||
'one_minion_bootstrap',
|
|
||||||
'one_minion_one_master_bootstrap'
|
|
||||||
])
|
])
|
||||||
def test_stop(script_runner, script, virt, config, suite):
|
def test_stop(script_runner, script, virt, config, suite):
|
||||||
cmd = (script, '--config', config, '--suite', suite, '--stop', '--force')
|
cmd = (script, '--config', config, '--suite', suite, '--stop')
|
||||||
result = script_runner.run(*cmd)
|
result = script_runner.run(*cmd)
|
||||||
assert result.success
|
assert result.success
|
||||||
domains = []
|
domains = []
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
import pytest
|
|
||||||
import os
|
|
||||||
from conftest import loadenv
|
|
||||||
import sys
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('config', ['complete'], indirect=True)
|
|
||||||
@pytest.mark.parametrize('suite', [
|
|
||||||
'one_minion_bootstrap',
|
|
||||||
'one_minion_one_master_bootstrap',
|
|
||||||
])
|
|
||||||
def test_bootstrap(script_runner, script, config, suite, vag, testbase):
|
|
||||||
bootstrap_script = '{}/scripts/bootstrap_hello_world.txt'.format(testbase)
|
|
||||||
do_digest = False
|
|
||||||
if sys.version_info[1] > 10:
|
|
||||||
do_digest = True
|
|
||||||
import hashlib
|
|
||||||
with open(bootstrap_script, 'rb') as fh:
|
|
||||||
digest_local = hashlib.file_digest(fh, 'md5')
|
|
||||||
cmd = (script, '--config', config, '--suite', suite)
|
|
||||||
result = script_runner.run(*cmd, '--env')
|
|
||||||
assert result.success
|
|
||||||
assert result.stderr.endswith('main_interactive: Launching {} ...\n'.format(suite))
|
|
||||||
v = vag
|
|
||||||
v.env = loadenv()
|
|
||||||
assert v.ssh(command='cat /srv/hello_world.txt') == 'Hello world!\n'
|
|
||||||
if do_digest:
|
|
||||||
digest_remote = v.ssh(command='md5sum /srv/hello_world.txt | awk "{ print $1 }"')
|
|
||||||
assert digest_local == digest_remote
|
|
||||||
assert script_runner.run(*cmd, '--stop')
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user