| OLD | NEW |
| 1 # -*- coding: utf-8; -*- | 1 # -*- coding: utf-8; -*- |
| 2 # | 2 # |
| 3 # Copyright (C) 2009 Google Inc. All rights reserved. | 3 # Copyright (C) 2009 Google Inc. All rights reserved. |
| 4 # Copyright (C) 2009 Torch Mobile Inc. | 4 # Copyright (C) 2009 Torch Mobile Inc. |
| 5 # Copyright (C) 2009 Apple Inc. All rights reserved. | 5 # Copyright (C) 2009 Apple Inc. All rights reserved. |
| 6 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) | 6 # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) |
| 7 # | 7 # |
| 8 # Redistribution and use in source and binary forms, with or without | 8 # Redistribution and use in source and binary forms, with or without |
| 9 # modification, are permitted provided that the following conditions are | 9 # modification, are permitted provided that the following conditions are |
| 10 # met: | 10 # met: |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 from webkitpy.style.filereader import TextFileReader | 65 from webkitpy.style.filereader import TextFileReader |
| 66 | 66 |
| 67 | 67 |
| 68 class ConfigureLoggingTestBase(unittest.TestCase): | 68 class ConfigureLoggingTestBase(unittest.TestCase): |
| 69 | 69 |
| 70 """Base class for testing configure_logging(). | 70 """Base class for testing configure_logging(). |
| 71 | 71 |
| 72 Sub-classes should implement: | 72 Sub-classes should implement: |
| 73 | 73 |
| 74 is_verbose: The is_verbose value to pass to configure_logging(). | 74 is_verbose: The is_verbose value to pass to configure_logging(). |
| 75 | |
| 76 """ | 75 """ |
| 77 | 76 |
| 78 def setUp(self): | 77 def setUp(self): |
| 79 is_verbose = self.is_verbose | 78 is_verbose = self.is_verbose |
| 80 | 79 |
| 81 log_stream = TestLogStream(self) | 80 log_stream = TestLogStream(self) |
| 82 | 81 |
| 83 # Use a logger other than the root logger or one prefixed with | 82 # Use a logger other than the root logger or one prefixed with |
| 84 # webkit so as not to conflict with test-webkitpy logging. | 83 # webkit so as not to conflict with test-webkitpy logging. |
| 85 logger = logging.getLogger("unittest") | 84 logger = logging.getLogger("unittest") |
| 86 | 85 |
| 87 # Configure the test logger not to pass messages along to the | 86 # Configure the test logger not to pass messages along to the |
| 88 # root logger. This prevents test messages from being | 87 # root logger. This prevents test messages from being |
| 89 # propagated to loggers used by test-webkitpy logging (e.g. | 88 # propagated to loggers used by test-webkitpy logging (e.g. |
| 90 # the root logger). | 89 # the root logger). |
| 91 logger.propagate = False | 90 logger.propagate = False |
| 92 | 91 |
| 93 self._handlers = configure_logging(stream=log_stream, logger=logger, | 92 self._handlers = configure_logging(stream=log_stream, logger=logger, |
| 94 is_verbose=is_verbose) | 93 is_verbose=is_verbose) |
| 95 self._log = logger | 94 self._log = logger |
| 96 self._log_stream = log_stream | 95 self._log_stream = log_stream |
| 97 | 96 |
| 98 def tearDown(self): | 97 def tearDown(self): |
| 99 """Reset logging to its original state. | 98 """Reset logging to its original state. |
| 100 | 99 |
| 101 This method ensures that the logging configuration set up | 100 This method ensures that the logging configuration set up |
| 102 for a unit test does not affect logging in other unit tests. | 101 for a unit test does not affect logging in other unit tests. |
| 103 | |
| 104 """ | 102 """ |
| 105 logger = self._log | 103 logger = self._log |
| 106 for handler in self._handlers: | 104 for handler in self._handlers: |
| 107 logger.removeHandler(handler) | 105 logger.removeHandler(handler) |
| 108 | 106 |
| 109 def assert_log_messages(self, messages): | 107 def assert_log_messages(self, messages): |
| 110 """Assert that the logged messages equal the given messages.""" | 108 """Assert that the logged messages equal the given messages.""" |
| 111 self._log_stream.assertMessages(messages) | 109 self._log_stream.assertMessages(messages) |
| 112 | 110 |
| 113 | 111 |
| (...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 expected_messages = ['foo.txt(2): Line contains tab character. ' | 624 expected_messages = ['foo.txt(2): Line contains tab character. ' |
| 627 '[whitespace/tab] [5]\n'] | 625 '[whitespace/tab] [5]\n'] |
| 628 self.assertEqual(self._messages, expected_messages) | 626 self.assertEqual(self._messages, expected_messages) |
| 629 | 627 |
| 630 | 628 |
| 631 class StyleProcessor_CodeCoverageTest(LoggingTestCase): | 629 class StyleProcessor_CodeCoverageTest(LoggingTestCase): |
| 632 | 630 |
| 633 """Test the StyleProcessor class with an emphasis on code coverage. | 631 """Test the StyleProcessor class with an emphasis on code coverage. |
| 634 | 632 |
| 635 This class makes heavy use of mock objects. | 633 This class makes heavy use of mock objects. |
| 636 | |
| 637 """ | 634 """ |
| 638 | 635 |
| 639 class MockDispatchedChecker(object): | 636 class MockDispatchedChecker(object): |
| 640 | 637 |
| 641 """A mock checker dispatched by the MockDispatcher.""" | 638 """A mock checker dispatched by the MockDispatcher.""" |
| 642 | 639 |
| 643 def __init__(self, file_path, min_confidence, style_error_handler): | 640 def __init__(self, file_path, min_confidence, style_error_handler): |
| 644 self.file_path = file_path | 641 self.file_path = file_path |
| 645 self.min_confidence = min_confidence | 642 self.min_confidence = min_confidence |
| 646 self.style_error_handler = style_error_handler | 643 self.style_error_handler = style_error_handler |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 """Test that carriage returns aren't stripped from files that are allowe
d to contain them.""" | 804 """Test that carriage returns aren't stripped from files that are allowe
d to contain them.""" |
| 808 file_path = 'carriage_returns_allowed.txt' | 805 file_path = 'carriage_returns_allowed.txt' |
| 809 lines = ['line1\r', 'line2\r'] | 806 lines = ['line1\r', 'line2\r'] |
| 810 line_numbers = [100] | 807 line_numbers = [100] |
| 811 self._processor.process(lines=lines, | 808 self._processor.process(lines=lines, |
| 812 file_path=file_path, | 809 file_path=file_path, |
| 813 line_numbers=line_numbers) | 810 line_numbers=line_numbers) |
| 814 # The carriage return checker should never have been invoked, and so | 811 # The carriage return checker should never have been invoked, and so |
| 815 # should not have saved off any lines. | 812 # should not have saved off any lines. |
| 816 self.assertFalse(hasattr(self.carriage_checker, 'lines')) | 813 self.assertFalse(hasattr(self.carriage_checker, 'lines')) |
| OLD | NEW |