KasmVNC/spec/vncserver_spec.py

60 lines
1.8 KiB
Python
Raw Permalink Normal View History

import os
import stat
import tempfile
from mamba import description, context, fcontext, it, fit, before, after
from expects import expect, equal, contain, match
from helper.spec_helper import start_xvnc, kill_xvnc, run_cmd, clean_env, \
add_kasmvnc_user_docker, clean_kasm_users, start_xvnc_pexpect, \
write_config, config_filename
def run_vncserver():
return start_xvnc(f'-config {config_filename}')
def temp_file_name():
return f'/tmp/vncserver.{next(tempfile._get_candidate_names())}'
with description('vncserver') as self:
with before.each:
clean_env()
with after.each:
kill_xvnc()
with context("SSL certs"):
with before.each:
add_kasmvnc_user_docker()
with it("complains if SSL certs don't exist"):
non_existent_file_name = temp_file_name()
write_config(f'''
network:
ssl:
pem_certificate: {non_existent_file_name}
''')
completed_process = run_vncserver()
expect(completed_process.returncode).to(equal(1))
expect(completed_process.stderr).to(
match(r'certificate file doesn\'t exist'))
with it("complains if SSL cert not available"):
cert_file_name = temp_file_name()
with open(cert_file_name, 'w') as f:
f.write('test')
os.chmod(cert_file_name, stat.S_IXUSR)
write_config(f'''
network:
ssl:
pem_certificate: {cert_file_name}
''')
completed_process = run_vncserver()
expect(completed_process.returncode).to(equal(1))
expect(completed_process.stderr).to(
match(r'certificate isn\'t readable'))
expect(completed_process.stderr).to(
match(r'addgroup \$USER'))