On Fri, 2011-02-25 at 10:52 -0800, Gregory Smith wrote: > Prevent the scheduler from logging the large pickled stdout return > value of drone_utility in the scheduler debug logs. Adds a unittest.
Applied, thanks! http://autotest.kernel.org/changeset/5277 > Signed-off-by: Gregory Smith <g...@google.com> > > --- autotest/scheduler/drones.py 2010-10-29 15:37:05.000000000 -0700 > +++ autotest/scheduler/drones.py 2011-01-27 16:51:47.000000000 -0800 > @@ -122,6 +122,12 @@ > self._autotest_install_dir = AUTOTEST_INSTALL_DIR > > > + @property > + def _drone_utility_path(self): > + return os.path.join(self._autotest_install_dir, > + 'scheduler', 'drone_utility.py') > + > + > def set_autotest_install_dir(self, path): > self._autotest_install_dir = path > > @@ -133,11 +139,9 @@ > > def _execute_calls_impl(self, calls): > logging.info("Running drone_utility on %s", self.hostname) > - drone_utility_path = os.path.join(self._autotest_install_dir, > - 'scheduler', 'drone_utility.py') > - result = self._host.run('python %s' % drone_utility_path, > - stdin=cPickle.dumps(calls), > connect_timeout=300) > - > + result = self._host.run('python %s' % self._drone_utility_path, > + stdin=cPickle.dumps(calls), stdout_tee=None, > + connect_timeout=300) > try: > return cPickle.loads(result.stdout) > except Exception: # cPickle.loads can throw all kinds of exceptions > ==== (added) > //depot/google_vendor_src_branch/autotest/scheduler/drones_unittest.py#1 ==== > --- /dev/null 2011-02-15 18:13:29.172335531 -0800 > +++ autotest/scheduler/drones_unittest.py 2011-01-27 16:51:47.000000000 > -0800 > @@ -0,0 +1,54 @@ > +#!/usr/bin/python2.4 > + > +"""Tests for autotest_lib.scheduler.drones.""" > + > +import cPickle > + > +import common > +from autotest_lib.client.common_lib import utils > +from autotest_lib.client.common_lib.test_utils import mock, unittest > +from autotest_lib.scheduler import drones > +from autotest_lib.server.hosts import ssh_host > + > + > +class RemoteDroneTest(unittest.TestCase): > + def setUp(self): > + self.god = mock.mock_god() > + self._mock_host = self.god.create_mock_class(ssh_host.SSHHost, > + 'mock SSHHost') > + self.god.stub_function(drones.drone_utility, 'create_host') > + > + > + def tearDown(self): > + self.god.unstub_all() > + > + > + def test_unreachable(self): > + drones.drone_utility.create_host.expect_call('fakehost').and_return( > + self._mock_host) > + self._mock_host.is_up.expect_call().and_return(False) > + self.assertRaises(drones.DroneUnreachable, > + drones._RemoteDrone, 'fakehost') > + > + > + def test_execute_calls_impl(self): > + self.god.stub_with(drones._RemoteDrone, '_drone_utility_path', > + 'mock-drone-utility-path') > + drones.drone_utility.create_host.expect_call('fakehost').and_return( > + self._mock_host) > + self._mock_host.is_up.expect_call().and_return(True) > + mock_calls = ('foo',) > + mock_result = utils.CmdResult(stdout=cPickle.dumps('mock return')) > + self._mock_host.run.expect_call( > + 'python mock-drone-utility-path', > + stdin=cPickle.dumps(mock_calls), stdout_tee=None, > + connect_timeout=mock.is_instance_comparator(int)).and_return( > + mock_result) > + > + drone = drones._RemoteDrone('fakehost') > + self.assertEqual('mock return', > drone._execute_calls_impl(mock_calls)) > + self.god.check_playback() > + > + > +if __name__ == '__main__': > + unittest.main() > _______________________________________________ > Autotest mailing list > Autotest@test.kernel.org > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest _______________________________________________ Autotest mailing list Autotest@test.kernel.org http://test.kernel.org/cgi-bin/mailman/listinfo/autotest