blob: 4965c030435fcc282393d1d4a966c284b5f11f3d [file] [log] [blame]
#!/usr/bin/python2
#
# Copyright 2014 Rackspace Australia
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import fixtures
import logging
import os
import testtools
from turbo_hipster.lib import utils
class TestExecuteToLog(testtools.TestCase):
def test_makes_dir(self):
tempdir = self.useFixture(fixtures.TempDir()).path
self.assertFalse(os.path.exists(os.path.join(tempdir, 'foo')))
utils.execute_to_log('echo yay',
os.path.join(tempdir, 'foo', 'banana.log'),
watch_logs=[])
self.assertTrue(os.path.exists(os.path.join(tempdir, 'foo')))
def test_logging_works(self):
# Setup python logging to do what we need
logging.basicConfig(format='%(asctime)s %(name)s %(message)s',
level=logging.DEBUG)
tempdir = self.useFixture(fixtures.TempDir()).path
log_path = os.path.join(tempdir, 'banana.log')
utils.execute_to_log('echo yay', log_path, watch_logs=[])
self.assertTrue(os.path.exists(log_path))
with open(log_path) as f:
d = f.read()
print d
self.assertNotEqual('', d)
self.assertEqual(4, len(d.split('\n')))
self.assertNotEqual(-1, d.find('yay'))
self.assertNotEqual(-1, d.find('[script exit code = 0]'))
def test_timeout(self):
# Setup python logging to do what we need
logging.basicConfig(format='%(asctime)s %(name)s %(message)s',
level=logging.DEBUG)
tempdir = self.useFixture(fixtures.TempDir()).path
log_path = os.path.join(tempdir, 'banana.log')
utils.execute_to_log('/bin/sleep 30', log_path, watch_logs=[],
timeout=0.1)
self.assertTrue(os.path.exists(log_path))
with open(log_path) as f:
d = f.read()
print d
self.assertNotEqual('', d)
self.assertNotEqual(-1, d.find('[timeout]'))
self.assertNotEqual(-1, d.find('[script exit code = -9]'))