137 lines
4.5 KiB
Python
Executable file
137 lines
4.5 KiB
Python
Executable file
#!/usr/bin/python
|
|
#
|
|
# Copyright 2007 Google Inc. Released under the GPL v2
|
|
|
|
"""This module defines the unittests for the Autotest class
|
|
"""
|
|
|
|
__author__ = """stutsman@google.com (Ryan Stutsman)"""
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
|
|
import common
|
|
|
|
from autotest_lib.server import utils
|
|
from autotest_lib.server import autotest
|
|
from autotest_lib.server import hosts
|
|
|
|
|
|
class AutotestTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.autotest = autotest.Autotest()
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
|
|
def testGetAutoDir(self):
|
|
class MockInstallHost:
|
|
def __init__(self):
|
|
self.commands = []
|
|
self.result = "autodir='/stuff/autotest'\n"
|
|
|
|
def run(self, command):
|
|
if command == "grep autodir= /etc/autotest.conf":
|
|
result = hosts.CmdResult()
|
|
result.stdout = self.result
|
|
return result
|
|
else:
|
|
self.commands.append(command)
|
|
|
|
host = MockInstallHost()
|
|
self.assertEqual('/stuff/autotest',
|
|
autotest.Autotest.get_installed_autodir(host))
|
|
host.result = "autodir=/stuff/autotest\n"
|
|
self.assertEqual('/stuff/autotest',
|
|
autotest.Autotest.get_installed_autodir(host))
|
|
host.result = 'autodir="/stuff/auto test"\n'
|
|
self.assertEqual('/stuff/auto test',
|
|
autotest.Autotest.get_installed_autodir(host))
|
|
|
|
|
|
def testInstallFromDir(self):
|
|
class MockInstallHost:
|
|
def __init__(self):
|
|
self.commands = []
|
|
|
|
def run(self, command):
|
|
if command == "grep autodir= /etc/autotest.conf":
|
|
result= hosts.CmdResult()
|
|
result.stdout = "autodir=/usr/local/autotest\n"
|
|
return result
|
|
else:
|
|
self.commands.append(command)
|
|
|
|
def send_file(self, src, dst):
|
|
self.commands.append("send_file: %s %s" % (src,
|
|
dst))
|
|
|
|
host = MockInstallHost()
|
|
tmpdir = utils.get_tmp_dir()
|
|
self.autotest.get(tmpdir)
|
|
self.autotest.install(host)
|
|
self.assertEqual(host.commands[0],
|
|
'mkdir -p /usr/local/autotest')
|
|
self.assertTrue(host.commands[1].startswith('send_file: /tmp/'))
|
|
self.assertTrue(host.commands[1].endswith(
|
|
'/ /usr/local/autotest'))
|
|
|
|
|
|
|
|
|
|
def testInstallFromSVN(self):
|
|
class MockInstallHost:
|
|
def __init__(self):
|
|
self.commands = []
|
|
|
|
def run(self, command):
|
|
if command == "grep autodir= /etc/autotest.conf":
|
|
result= hosts.CmdResult()
|
|
result.stdout = "autodir=/usr/local/autotest\n"
|
|
return result
|
|
else:
|
|
self.commands.append(command)
|
|
|
|
host = MockInstallHost()
|
|
self.autotest.install(host)
|
|
self.assertEqual(host.commands,
|
|
['svn checkout '
|
|
+ autotest.AUTOTEST_SVN + ' '
|
|
+ "/usr/local/autotest"])
|
|
|
|
|
|
def testFirstInstallFromSVNFails(self):
|
|
class MockFirstInstallFailsHost:
|
|
def __init__(self):
|
|
self.commands = []
|
|
|
|
def run(self, command):
|
|
if command == "grep autodir= /etc/autotest.conf":
|
|
result= hosts.CmdResult()
|
|
result.stdout = "autodir=/usr/local/autotest\n"
|
|
return result
|
|
else:
|
|
self.commands.append(command)
|
|
first = ('svn checkout ' +
|
|
autotest.AUTOTEST_SVN + ' ' +
|
|
"/usr/local/autotest")
|
|
if (command == first):
|
|
raise autotest.AutoservRunError(
|
|
"svn not found")
|
|
|
|
host = MockFirstInstallFailsHost()
|
|
self.autotest.install(host)
|
|
self.assertEqual(host.commands,
|
|
['svn checkout ' + autotest.AUTOTEST_SVN +
|
|
' ' + "/usr/local/autotest",
|
|
'svn checkout ' + autotest.AUTOTEST_HTTP +
|
|
' ' + "/usr/local/autotest"])
|
|
|
|
|
|
def suite():
|
|
return unittest.TestLoader().loadTestsFromTestCase(AutotestTestCase)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.TextTestRunner(verbosity=2).run(suite())
|