Spec: extract start_xvnc(), kill only if running

KASM-1609_select_de_to_run
Dmitry Maksyoma 4 years ago
parent a51444257a
commit ff8ab63aab

@ -2,10 +2,11 @@ import os
import shutil import shutil
import subprocess import subprocess
from path import Path from path import Path
from mamba import description, context, it, before, after from mamba import description, context, it, fit, before, after
from expects import expect, equal from expects import expect, equal
vncserver_cmd = 'vncserver :1 -cert /etc/ssl/certs/ssl-cert-snakeoil.pem -key /etc/ssl/private/ssl-cert-snakeoil.key -sslOnly -FrameRate=24 -interface 0.0.0.0 -httpd /usr/share/kasmvnc/www -depth 24 -geometry 1280x1050' vncserver_cmd = 'vncserver :1 -cert /etc/ssl/certs/ssl-cert-snakeoil.pem -key /etc/ssl/private/ssl-cert-snakeoil.key -sslOnly -FrameRate=24 -interface 0.0.0.0 -httpd /usr/share/kasmvnc/www -depth 24 -geometry 1280x1050'
running_xvnc = False
def clean_env(): def clean_env():
@ -17,6 +18,15 @@ def clean_env():
Path(vnc_dir).rmtree(ignore_errors=True) Path(vnc_dir).rmtree(ignore_errors=True)
def start_xvnc(extra_args="", **kwargs):
global running_xvnc
completed_process = run_cmd(f'{vncserver_cmd} {extra_args}', **kwargs)
if completed_process.returncode == 0:
running_xvnc = True
return completed_process
def run_cmd(cmd, **kwargs): def run_cmd(cmd, **kwargs):
completed_process = subprocess.run(cmd, shell=True, text=True, completed_process = subprocess.run(cmd, shell=True, text=True,
capture_output=True, capture_output=True,
@ -34,13 +44,18 @@ def add_kasmvnc_user_docker():
def kill_xvnc(): def kill_xvnc():
global running_xvnc
if not running_xvnc:
return
run_cmd('vncserver -kill :1') run_cmd('vncserver -kill :1')
running_xvnc = False
def select_de(de_name): def select_de(de_name):
try: try:
cmd = f'{vncserver_cmd} -select-de {de_name}' extra_args = f'-select-de {de_name}'
completed_process = run_cmd(cmd) completed_process = start_xvnc(extra_args)
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
finally: finally:
kill_xvnc() kill_xvnc()
@ -62,7 +77,7 @@ with description('vncserver') as self:
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
choose_cinnamon = "1\n" choose_cinnamon = "1\n"
completed_process = run_cmd(vncserver_cmd, input=choose_cinnamon) completed_process = start_xvnc(input=choose_cinnamon)
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('cinnamon') check_de_was_setup_to_run('cinnamon')
@ -70,9 +85,8 @@ with description('vncserver') as self:
with it('asks to select a DE, when ran with -select-de'): with it('asks to select a DE, when ran with -select-de'):
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
cmd = f'{vncserver_cmd} -select-de'
choose_cinnamon = "1\n" choose_cinnamon = "1\n"
completed_process = run_cmd(cmd, input=choose_cinnamon) completed_process = start_xvnc('-select-de', input=choose_cinnamon)
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('cinnamon') check_de_was_setup_to_run('cinnamon')
@ -80,10 +94,7 @@ with description('vncserver') as self:
with it('selects passed DE with -s'): with it('selects passed DE with -s'):
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
cmd = f'{vncserver_cmd} -select-de mate' select_de('mate')
completed_process = run_cmd(cmd)
expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('mate') check_de_was_setup_to_run('mate')
with context('after DE was selected'): with context('after DE was selected'):
@ -91,7 +102,7 @@ with description('vncserver') as self:
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
select_de('mate') select_de('mate')
completed_process = run_cmd(vncserver_cmd) completed_process = start_xvnc()
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('mate') check_de_was_setup_to_run('mate')
@ -100,9 +111,9 @@ with description('vncserver') as self:
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
select_de('mate') select_de('mate')
cmd = f'{vncserver_cmd} -select-de'
choose_cinnamon_and_answer_yes = "1\ny\n" choose_cinnamon_and_answer_yes = "1\ny\n"
completed_process = run_cmd(cmd, input=choose_cinnamon_and_answer_yes) completed_process = start_xvnc('-select-de',
input=choose_cinnamon_and_answer_yes)
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('cinnamon') check_de_was_setup_to_run('cinnamon')
@ -111,8 +122,7 @@ with description('vncserver') as self:
add_kasmvnc_user_docker() add_kasmvnc_user_docker()
select_de('mate') select_de('mate')
cmd = f'{vncserver_cmd} -select-de cinnamon' completed_process = start_xvnc('-select-de cinnamon')
completed_process = run_cmd(cmd)
expect(completed_process.returncode).to(equal(0)) expect(completed_process.returncode).to(equal(0))
check_de_was_setup_to_run('cinnamon') check_de_was_setup_to_run('cinnamon')

Loading…
Cancel
Save