89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/python2
 | 
						|
 | 
						|
import common
 | 
						|
import os
 | 
						|
import unittest
 | 
						|
 | 
						|
from autotest_lib.client.common_lib import error, utils
 | 
						|
from autotest_lib.client.common_lib.test_utils import mock
 | 
						|
from autotest_lib.client.common_lib.hosts import base_classes
 | 
						|
 | 
						|
 | 
						|
class test_host_class(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        self.god = mock.mock_god()
 | 
						|
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        self.god.unstub_all()
 | 
						|
 | 
						|
 | 
						|
    def test_run_output_notimplemented(self):
 | 
						|
        host = base_classes.Host()
 | 
						|
        self.assertRaises(NotImplementedError, host.run_output, "fake command")
 | 
						|
 | 
						|
 | 
						|
    def _setup_test_check_diskspace(self, command, command_result,
 | 
						|
                                    command_exit_status, directory,
 | 
						|
                                    directory_exists):
 | 
						|
        self.god.stub_function(os.path, 'isdir')
 | 
						|
        self.god.stub_function(base_classes.Host, 'run')
 | 
						|
        host = base_classes.Host()
 | 
						|
        host.hostname = 'unittest-host'
 | 
						|
        host.run.expect_call(
 | 
						|
                'test -e "%s"' % directory,
 | 
						|
                ignore_status=True).and_return(
 | 
						|
                        utils.CmdResult(
 | 
						|
                                exit_status = 0 if directory_exists else 1))
 | 
						|
        if directory_exists:
 | 
						|
            fake_cmd_status = utils.CmdResult(
 | 
						|
                exit_status=command_exit_status, stdout=command_result)
 | 
						|
            host.run.expect_call(command).and_return(fake_cmd_status)
 | 
						|
        return host
 | 
						|
 | 
						|
 | 
						|
    def test_check_diskspace(self):
 | 
						|
        df_cmd = 'df -PB 1000000 /foo | tail -1'
 | 
						|
        test_df_tail = ('/dev/sda1                    1061       939'
 | 
						|
                        '       123      89% /')
 | 
						|
        host = self._setup_test_check_diskspace(
 | 
						|
            df_cmd, test_df_tail, 0, '/foo', True)
 | 
						|
        host.check_diskspace('/foo', 0.1)
 | 
						|
        self.god.check_playback()
 | 
						|
 | 
						|
 | 
						|
    def test_check_diskspace_disk_full(self):
 | 
						|
        df_cmd = 'df -PB 1000000 /foo | tail -1'
 | 
						|
        test_df_tail = ('/dev/sda1                    1061       939'
 | 
						|
                        '       123      89% /')
 | 
						|
        host = self._setup_test_check_diskspace(
 | 
						|
            df_cmd, test_df_tail, 0, '/foo', True)
 | 
						|
        self.assertRaises(error.AutoservDiskFullHostError,
 | 
						|
                          host.check_diskspace, '/foo', 0.2)
 | 
						|
        self.god.check_playback()
 | 
						|
 | 
						|
 | 
						|
    def test_check_diskspace_directory_not_found(self):
 | 
						|
        df_cmd = 'df -PB 1000000 /foo | tail -1'
 | 
						|
        test_df_tail = ('/dev/sda1                    1061       939'
 | 
						|
                        '       123      89% /')
 | 
						|
        host = self._setup_test_check_diskspace(
 | 
						|
            df_cmd, test_df_tail, 0, '/foo', False)
 | 
						|
        self.assertRaises(error.AutoservDirectoryNotFoundError,
 | 
						|
                          host.check_diskspace, '/foo', 0.2)
 | 
						|
        self.god.check_playback()
 | 
						|
 | 
						|
 | 
						|
    def test_check_diskspace_directory_du_failed(self):
 | 
						|
        df_cmd = 'df -PB 1000000 /foo | tail -1'
 | 
						|
        test_df_tail = ('df: /foo: No such file or directory')
 | 
						|
        host = self._setup_test_check_diskspace(
 | 
						|
            df_cmd, test_df_tail, 1, '/foo', True)
 | 
						|
        self.assertRaises(error.AutoservDiskSizeUnknownError,
 | 
						|
                          host.check_diskspace, '/foo', 0.1)
 | 
						|
        self.god.check_playback()
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    unittest.main()
 |