117 lines
4.1 KiB
Python
117 lines
4.1 KiB
Python
#!/usr/bin/python
|
|
|
|
import mock
|
|
import os
|
|
|
|
class VncTest(mock.TestCase):
|
|
|
|
def setUp(self):
|
|
self.setupModules(["_isys", "block", "logging", "ConfigParser"])
|
|
self.fs = mock.DiskIO()
|
|
|
|
self.anaconda = mock.Mock()
|
|
self.anaconda.ksdata.vnc.password = ''
|
|
|
|
import pyanaconda
|
|
pyanaconda.anaconda_log = mock.Mock()
|
|
|
|
self.OK = 22
|
|
|
|
import pyanaconda.vnc
|
|
pyanaconda.vnc.log = mock.Mock()
|
|
pyanaconda.vnc.os = mock.Mock()
|
|
pyanaconda.vnc.subprocess = mock.Mock()
|
|
pyanaconda.vnc.subprocess.Popen().communicate.return_value = (1, 2)
|
|
pyanaconda.vnc.subprocess.Popen().returncode = self.OK
|
|
pyanaconda.vnc.open = self.fs.open
|
|
|
|
self.ROOT = '/'
|
|
self.DISPLAY = '2'
|
|
self.DESKTOP = 'Desktop'
|
|
self.PASS = ''
|
|
self.LOG_FILE = '/tmp/vnc.log'
|
|
self.PW_FILE = '/tmp/vncpassword'
|
|
self.VNCCONNECTHOST = 'host'
|
|
|
|
def tearDown(self):
|
|
self.tearDownModules()
|
|
|
|
def set_vnc_password_1_test(self):
|
|
import pyanaconda.vnc
|
|
server = pyanaconda.vnc.VncServer()
|
|
server.anaconda = self.anaconda
|
|
pyanaconda.vnc.iutil = mock.Mock()
|
|
pyanaconda.vnc.os.pipe.return_value = (1, 2)
|
|
|
|
server.setVNCPassword()
|
|
self.assertEqual(
|
|
pyanaconda.vnc.iutil.execWithRedirect.call_args_list,
|
|
[(('vncpasswd', ['-f']), {'stdin': 1, 'stdout': '/tmp/vncpassword'})])
|
|
|
|
def initialize_test(self):
|
|
import pyanaconda.vnc
|
|
|
|
IP = '192.168.0.21'
|
|
HOSTNAME = 'desktop'
|
|
|
|
dev = mock.Mock()
|
|
dev.get.return_value = 'eth0'
|
|
pyanaconda.vnc.network = mock.Mock()
|
|
pyanaconda.vnc.network.Network().netdevices = [dev]
|
|
pyanaconda.vnc.network.getActiveNetDevs.return_value = [0]
|
|
pyanaconda.vnc.network.getDefaultHostname.return_value = HOSTNAME
|
|
pyanaconda.vnc.isys = mock.Mock()
|
|
pyanaconda.vnc.isys.getIPAddresses = mock.Mock(return_value=[IP])
|
|
|
|
server = pyanaconda.vnc.VncServer(display=self.DISPLAY)
|
|
server.initialize()
|
|
expected = "%s:%s (%s)" % (HOSTNAME, self.DISPLAY, IP)
|
|
self.assertEqual(server.connxinfo, expected)
|
|
|
|
def openlogfile_test(self):
|
|
import pyanaconda.vnc
|
|
FILE = 'file'
|
|
pyanaconda.vnc.os.O_RDWR = os.O_RDWR
|
|
pyanaconda.vnc.os.O_CREAT = os.O_CREAT
|
|
pyanaconda.vnc.os.open.return_value = FILE
|
|
|
|
server = pyanaconda.vnc.VncServer(log_file=self.LOG_FILE)
|
|
ret = server.openlogfile()
|
|
self.assertEqual(ret, FILE)
|
|
self.assertEqual(pyanaconda.vnc.os.open.call_args,
|
|
((self.LOG_FILE, os.O_RDWR | os.O_CREAT), {})
|
|
)
|
|
|
|
def connect_to_view_test(self):
|
|
import pyanaconda.vnc
|
|
pyanaconda.vnc.subprocess.Popen().communicate.return_value = (self.OK, '')
|
|
|
|
server = pyanaconda.vnc.VncServer(vncconnecthost=self.VNCCONNECTHOST)
|
|
ret = server.connectToView()
|
|
self.assertTrue(ret)
|
|
|
|
params = pyanaconda.vnc.subprocess.Popen.call_args[0][0]
|
|
self.assertTrue(self.VNCCONNECTHOST in params)
|
|
self.assertTrue(params[params.index(self.VNCCONNECTHOST)-1] == "-connect")
|
|
|
|
def start_server_test(self):
|
|
import pyanaconda.vnc
|
|
pyanaconda.vnc.VncServer.initialize = mock.Mock()
|
|
pyanaconda.vnc.VncServer.setVNCPassword = mock.Mock()
|
|
pyanaconda.vnc.VncServer.VNCListen = mock.Mock()
|
|
pyanaconda.vnc.subprocess.Popen().poll.return_value = None
|
|
pyanaconda.vnc.os.environ = {}
|
|
pyanaconda.vnc.time.sleep = mock.Mock()
|
|
|
|
server = pyanaconda.vnc.VncServer(root=self.ROOT, display=self.DISPLAY,
|
|
desktop=self.DESKTOP, password=self.PASS, vncconnecthost="")
|
|
server.openlogfile = mock.Mock()
|
|
server.startServer()
|
|
|
|
params = pyanaconda.vnc.subprocess.Popen.call_args[0][0]
|
|
self.assertTrue('desktop=%s'%self.DESKTOP in params)
|
|
self.assertTrue(':%s'%self.DISPLAY in params)
|
|
self.assertTrue(pyanaconda.vnc.VncServer.VNCListen.called)
|
|
self.assertTrue("DISPLAY" in pyanaconda.vnc.os.environ)
|
|
self.assertEqual(pyanaconda.vnc.os.environ['DISPLAY'], ":%s" % self.DISPLAY)
|