summaryrefslogtreecommitdiffstats
path: root/WebKitTools/Scripts/webkitpy/test
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/Scripts/webkitpy/test')
-rw-r--r--WebKitTools/Scripts/webkitpy/test/__init__.py1
-rw-r--r--WebKitTools/Scripts/webkitpy/test/cat.py42
-rw-r--r--WebKitTools/Scripts/webkitpy/test/cat_unittest.py52
-rw-r--r--WebKitTools/Scripts/webkitpy/test/echo.py52
-rw-r--r--WebKitTools/Scripts/webkitpy/test/echo_unittest.py64
-rw-r--r--WebKitTools/Scripts/webkitpy/test/main.py140
-rw-r--r--WebKitTools/Scripts/webkitpy/test/skip.py52
-rw-r--r--WebKitTools/Scripts/webkitpy/test/skip_unittest.py77
8 files changed, 0 insertions, 480 deletions
diff --git a/WebKitTools/Scripts/webkitpy/test/__init__.py b/WebKitTools/Scripts/webkitpy/test/__init__.py
deleted file mode 100644
index ef65bee..0000000
--- a/WebKitTools/Scripts/webkitpy/test/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# Required for Python to search this directory for module files
diff --git a/WebKitTools/Scripts/webkitpy/test/cat.py b/WebKitTools/Scripts/webkitpy/test/cat.py
deleted file mode 100644
index ae1e143..0000000
--- a/WebKitTools/Scripts/webkitpy/test/cat.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-import sys
-
-# Add WebKitTools/Scripts to the path to ensure we can find webkitpy.
-sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
-
-from webkitpy.common.system import fileutils
-
-
-def command_arguments(*args):
- return ['python', __file__] + list(args)
-
-
-def main():
- fileutils.make_stdout_binary()
- sys.stdout.write(sys.stdin.read())
- return 0
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/WebKitTools/Scripts/webkitpy/test/cat_unittest.py b/WebKitTools/Scripts/webkitpy/test/cat_unittest.py
deleted file mode 100644
index 4ed1f67..0000000
--- a/WebKitTools/Scripts/webkitpy/test/cat_unittest.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import StringIO
-import os.path
-import sys
-import unittest
-
-from webkitpy.common.system import executive, outputcapture
-from webkitpy.test import cat
-
-
-class CatTest(outputcapture.OutputCaptureTestCaseBase):
- def assert_cat(self, input):
- saved_stdin = sys.stdin
- sys.stdin = StringIO.StringIO(input)
- cat.main()
- self.assertStdout(input)
- sys.stdin = saved_stdin
-
- def test_basic(self):
- self.assert_cat('foo bar baz\n')
-
- def test_no_newline(self):
- self.assert_cat('foo bar baz')
-
- def test_unicode(self):
- self.assert_cat(u'WebKit \u2661 Tor Arne Vestb\u00F8!')
-
- def test_as_command(self):
- input = 'foo bar baz\n'
- output = executive.Executive().run_command(cat.command_arguments(), input=input)
- self.assertEqual(input, output)
diff --git a/WebKitTools/Scripts/webkitpy/test/echo.py b/WebKitTools/Scripts/webkitpy/test/echo.py
deleted file mode 100644
index f7468f7..0000000
--- a/WebKitTools/Scripts/webkitpy/test/echo.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-import sys
-
-# Add WebKitTools/Scripts to the path to ensure we can find webkitpy.
-sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
-
-from webkitpy.common.system import fileutils
-
-
-def command_arguments(*args):
- return ['python', __file__] + list(args)
-
-
-def main(args=None):
- if args is None:
- args = sys.argv[1:]
-
- fileutils.make_stdout_binary()
-
- print_newline = True
- if len(args) and args[0] == '-n':
- print_newline = False
- del args[0]
- sys.stdout.write(' '.join(args))
- if print_newline:
- sys.stdout.write('\n')
- return 0
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/WebKitTools/Scripts/webkitpy/test/echo_unittest.py b/WebKitTools/Scripts/webkitpy/test/echo_unittest.py
deleted file mode 100644
index bc13b5e..0000000
--- a/WebKitTools/Scripts/webkitpy/test/echo_unittest.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-import sys
-import unittest
-
-from webkitpy.common.system import executive, outputcapture
-from webkitpy.test import echo
-
-
-class EchoTest(outputcapture.OutputCaptureTestCaseBase):
- def test_basic(self):
- echo.main(['foo', 'bar', 'baz'])
- self.assertStdout('foo bar baz\n')
-
- def test_no_newline(self):
- echo.main(['-n', 'foo', 'bar', 'baz'])
- self.assertStdout('foo bar baz')
-
- def test_unicode(self):
- echo.main([u'WebKit \u2661', 'Tor Arne', u'Vestb\u00F8!'])
- self.assertStdout(u'WebKit \u2661 Tor Arne Vestb\u00F8!\n')
-
- def test_argument_order(self):
- echo.main(['foo', '-n', 'bar'])
- self.assertStdout('foo -n bar\n')
-
- def test_empty_arguments(self):
- old_argv = sys.argv
- sys.argv = ['echo.py', 'foo', 'bar', 'baz']
- echo.main([])
- self.assertStdout('\n')
- sys.argv = old_argv
-
- def test_no_arguments(self):
- old_argv = sys.argv
- sys.argv = ['echo.py', 'foo', 'bar', 'baz']
- echo.main()
- self.assertStdout('foo bar baz\n')
- sys.argv = old_argv
-
- def test_as_command(self):
- output = executive.Executive().run_command(echo.command_arguments('foo', 'bar', 'baz'))
- self.assertEqual(output, 'foo bar baz\n')
diff --git a/WebKitTools/Scripts/webkitpy/test/main.py b/WebKitTools/Scripts/webkitpy/test/main.py
deleted file mode 100644
index 1038d82..0000000
--- a/WebKitTools/Scripts/webkitpy/test/main.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (C) 2010 Chris Jerdonek (cjerdonek@webkit.org)
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-"""Contains the entry method for test-webkitpy."""
-
-import logging
-import os
-import sys
-import unittest
-
-import webkitpy
-
-
-_log = logging.getLogger(__name__)
-
-
-class Tester(object):
-
- """Discovers and runs webkitpy unit tests."""
-
- def _find_unittest_files(self, webkitpy_dir):
- """Return a list of paths to all unit-test files."""
- unittest_paths = [] # Return value.
-
- for dir_path, dir_names, file_names in os.walk(webkitpy_dir):
- for file_name in file_names:
- if not file_name.endswith("_unittest.py"):
- continue
- unittest_path = os.path.join(dir_path, file_name)
- unittest_paths.append(unittest_path)
-
- return unittest_paths
-
- def _modules_from_paths(self, package_root, paths):
- """Return a list of fully-qualified module names given paths."""
- package_path = os.path.abspath(package_root)
- root_package_name = os.path.split(package_path)[1] # Equals "webkitpy".
-
- prefix_length = len(package_path)
-
- modules = []
- for path in paths:
- path = os.path.abspath(path)
- # This gives us, for example: /common/config/ports_unittest.py
- rel_path = path[prefix_length:]
- # This gives us, for example: /common/config/ports_unittest
- rel_path = os.path.splitext(rel_path)[0]
-
- parts = []
- while True:
- (rel_path, tail) = os.path.split(rel_path)
- if not tail:
- break
- parts.insert(0, tail)
- # We now have, for example: common.config.ports_unittest
- # FIXME: This is all a hack around the fact that we always prefix webkitpy includes with "webkitpy."
- parts.insert(0, root_package_name) # Put "webkitpy" at the beginning.
- module = ".".join(parts)
- modules.append(module)
-
- return modules
-
- def run_tests(self, sys_argv, external_package_paths=None):
- """Run the unit tests in all *_unittest.py modules in webkitpy.
-
- This method excludes "webkitpy.common.checkout.scm_unittest" unless
- the --all option is the second element of sys_argv.
-
- Args:
- sys_argv: A reference to sys.argv.
-
- """
- if external_package_paths is None:
- external_package_paths = []
- else:
- # FIXME: We should consider moving webkitpy off of using "webkitpy." to prefix
- # all includes. If we did that, then this would use path instead of dirname(path).
- # QueueStatusServer.__init__ has a sys.path import hack due to this code.
- sys.path.extend(set(os.path.dirname(path) for path in external_package_paths))
-
- if len(sys_argv) > 1 and not sys_argv[-1].startswith("-"):
- # Then explicit modules or test names were provided, which
- # the unittest module is equipped to handle.
- unittest.main(argv=sys_argv, module=None)
- # No need to return since unitttest.main() exits.
-
- # Otherwise, auto-detect all unit tests.
-
- # FIXME: This should be combined with the external_package_paths code above.
- webkitpy_dir = os.path.dirname(webkitpy.__file__)
-
- modules = []
- for path in [webkitpy_dir] + external_package_paths:
- modules.extend(self._modules_from_paths(path, self._find_unittest_files(path)))
- modules.sort()
-
- # This is a sanity check to ensure that the unit-test discovery
- # methods are working.
- if len(modules) < 1:
- raise Exception("No unit-test modules found.")
-
- for module in modules:
- _log.debug("Found: %s" % module)
-
- # FIXME: This is a hack, but I'm tired of commenting out the test.
- # See https://bugs.webkit.org/show_bug.cgi?id=31818
- if len(sys_argv) > 1 and sys.argv[1] == "--all":
- sys.argv.remove("--all")
- else:
- excluded_module = "webkitpy.common.checkout.scm_unittest"
- _log.info("Excluding: %s (use --all to include)" % excluded_module)
- modules.remove(excluded_module)
-
- sys_argv.extend(modules)
-
- # We pass None for the module because we do not want the unittest
- # module to resolve module names relative to a given module.
- # (This would require importing all of the unittest modules from
- # this module.) See the loadTestsFromName() method of the
- # unittest.TestLoader class for more details on this parameter.
- unittest.main(argv=sys_argv, module=None)
diff --git a/WebKitTools/Scripts/webkitpy/test/skip.py b/WebKitTools/Scripts/webkitpy/test/skip.py
deleted file mode 100644
index 8587d56..0000000
--- a/WebKitTools/Scripts/webkitpy/test/skip.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import logging
-
-_log = logging.getLogger(__name__)
-
-
-def skip_if(klass, condition, message=None, logger=None):
- """Makes all test_* methods in a given class no-ops if the given condition
- is False. Backported from Python 3.1+'s unittest.skipIf decorator."""
- if not logger:
- logger = _log
- if not condition:
- return klass
- for name in dir(klass):
- attr = getattr(klass, name)
- if not callable(attr):
- continue
- if not name.startswith('test_'):
- continue
- setattr(klass, name, _skipped_method(attr, message, logger))
- klass._printed_skipped_message = False
- return klass
-
-
-def _skipped_method(method, message, logger):
- def _skip(*args):
- if method.im_class._printed_skipped_message:
- return
- method.im_class._printed_skipped_message = True
- logger.info('Skipping %s.%s: %s' % (method.__module__, method.im_class.__name__, message))
- return _skip
diff --git a/WebKitTools/Scripts/webkitpy/test/skip_unittest.py b/WebKitTools/Scripts/webkitpy/test/skip_unittest.py
deleted file mode 100644
index f61a1bb..0000000
--- a/WebKitTools/Scripts/webkitpy/test/skip_unittest.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import StringIO
-import logging
-import unittest
-
-from webkitpy.test.skip import skip_if
-
-
-class SkipTest(unittest.TestCase):
- def setUp(self):
- self.logger = logging.getLogger(__name__)
-
- self.old_level = self.logger.level
- self.logger.setLevel(logging.INFO)
-
- self.old_propagate = self.logger.propagate
- self.logger.propagate = False
-
- self.log_stream = StringIO.StringIO()
- self.handler = logging.StreamHandler(self.log_stream)
- self.logger.addHandler(self.handler)
-
- self.foo_was_called = False
-
- def tearDown(self):
- self.logger.removeHandler(self.handler)
- self.propagate = self.old_propagate
- self.logger.setLevel(self.old_level)
-
- def create_fixture_class(self):
- class TestSkipFixture(object):
- def __init__(self, callback):
- self.callback = callback
-
- def test_foo(self):
- self.callback()
-
- return TestSkipFixture
-
- def foo_callback(self):
- self.foo_was_called = True
-
- def test_skip_if_false(self):
- klass = skip_if(self.create_fixture_class(), False, 'Should not see this message.', logger=self.logger)
- klass(self.foo_callback).test_foo()
- self.assertEqual(self.log_stream.getvalue(), '')
- self.assertTrue(self.foo_was_called)
-
- def test_skip_if_true(self):
- klass = skip_if(self.create_fixture_class(), True, 'Should see this message.', logger=self.logger)
- klass(self.foo_callback).test_foo()
- self.assertEqual(self.log_stream.getvalue(), 'Skipping webkitpy.test.skip_unittest.TestSkipFixture: Should see this message.\n')
- self.assertFalse(self.foo_was_called)
-
-if __name__ == '__main__':
- unittest.main()