blob: 15a1aaff4a40c7d39a05bc38dc1c93996d0cc4de [file] [log] [blame]
# Copyright 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import shutil
import tempfile
import unittest
from telemetry.core import util
class TestWait(unittest.TestCase):
def testNonTimeout(self):
def test():
return True
util.WaitFor(test, 0.1)
def testTimeout(self):
def test():
return False
self.assertRaises(util.TimeoutException, lambda: util.WaitFor(test, 0.1))
def testCallable(self):
"""Test methods and anonymous functions, functions are tested elsewhere."""
class Test(object):
def Method(self):
return 'test'
util.WaitFor(Test().Method, 0.1)
util.WaitFor(lambda: 1, 0.1)
# Test noncallable condition.
self.assertRaises(TypeError, lambda: util.WaitFor('test', 0.1))
def testReturn(self):
self.assertEquals('test', util.WaitFor(lambda: 'test', 0.1))
class TestGetSequentialFileName(unittest.TestCase):
def __init__(self, *args, **kwargs):
super(TestGetSequentialFileName, self).__init__(*args, **kwargs)
self.test_directory = None
def setUp(self):
self.test_directory = tempfile.mkdtemp()
def testGetSequentialFileNameNoOtherSequentialFile(self):
next_json_test_file_path = util.GetSequentialFileName(
os.path.join(self.test_directory, 'test'))
self.assertEquals(os.path.join(self.test_directory, 'test_000'),
next_json_test_file_path)
def testGetSequentialFileNameWithOtherSequentialFiles(self):
# Create test_000.json, test_001.json, test_002.json in test directory.
for i in xrange(3):
with open(
os.path.join(self.test_directory, 'test_%03d.json' % i), 'w') as _:
pass
next_json_test_file_path = util.GetSequentialFileName(
os.path.join(self.test_directory, 'test'))
self.assertEquals(os.path.join(self.test_directory, 'test_003'),
next_json_test_file_path)
def tearDown(self):
shutil.rmtree(self.test_directory)