| OLD | NEW |
| 1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| 11 # in the documentation and/or other materials provided with the | 11 # in the documentation and/or other materials provided with the |
| 12 # distribution. | 12 # distribution. |
| 13 # * Neither the name of Google Inc. nor the names of its | 13 # * Neither the name of Google Inc. nor the names of its |
| 14 # contributors may be used to endorse or promote products derived from | 14 # contributors may be used to endorse or promote products derived from |
| 15 # this software without specific prior written permission. | 15 # this software without specific prior written permission. |
| 16 # | 16 # |
| 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 | 28 |
| 29 from webkitpy.common.checkout.checkout_mock import MockCheckout | |
| 30 from webkitpy.common.checkout.scm.scm_mock import MockSCM | 29 from webkitpy.common.checkout.scm.scm_mock import MockSCM |
| 31 from webkitpy.common.net.buildbot.buildbot_mock import MockBuildBot | 30 from webkitpy.common.net.buildbot.buildbot_mock import MockBuildBot |
| 32 from webkitpy.common.net.web_mock import MockWeb | 31 from webkitpy.common.net.web_mock import MockWeb |
| 33 from webkitpy.common.system.systemhost_mock import MockSystemHost | 32 from webkitpy.common.system.systemhost_mock import MockSystemHost |
| 34 | 33 |
| 35 # New-style ports need to move down into webkitpy.common. | 34 # New-style ports need to move down into webkitpy.common. |
| 36 from webkitpy.layout_tests.port.factory import PortFactory | 35 from webkitpy.layout_tests.port.factory import PortFactory |
| 37 from webkitpy.layout_tests.port.test import add_unit_tests_to_mock_filesystem | 36 from webkitpy.layout_tests.port.test import add_unit_tests_to_mock_filesystem |
| 38 | 37 |
| 39 | 38 |
| 40 class MockHost(MockSystemHost): | 39 class MockHost(MockSystemHost): |
| 41 def __init__(self, log_executive=False, executive_throws_when_run=None, init
ialize_scm_by_default=True, web=None): | 40 def __init__(self, log_executive=False, executive_throws_when_run=None, init
ialize_scm_by_default=True, web=None): |
| 42 MockSystemHost.__init__(self, log_executive, executive_throws_when_run) | 41 MockSystemHost.__init__(self, log_executive, executive_throws_when_run) |
| 43 add_unit_tests_to_mock_filesystem(self.filesystem) | 42 add_unit_tests_to_mock_filesystem(self.filesystem) |
| 44 self.web = web or MockWeb() | 43 self.web = web or MockWeb() |
| 45 | 44 |
| 46 self._checkout = MockCheckout() | |
| 47 self._scm = None | 45 self._scm = None |
| 48 # FIXME: we should never initialize the SCM by default, since the real | 46 # FIXME: we should never initialize the SCM by default, since the real |
| 49 # object doesn't either. This has caused at least one bug (see bug 89498
). | 47 # object doesn't either. This has caused at least one bug (see bug 89498
). |
| 50 if initialize_scm_by_default: | 48 if initialize_scm_by_default: |
| 51 self.initialize_scm() | 49 self.initialize_scm() |
| 52 self.buildbot = MockBuildBot() | 50 self.buildbot = MockBuildBot() |
| 53 self._chromium_buildbot = MockBuildBot() | 51 self._chromium_buildbot = MockBuildBot() |
| 54 | 52 |
| 55 # Note: We're using a real PortFactory here. Tests which don't wish to
depend | 53 # Note: We're using a real PortFactory here. Tests which don't wish to
depend |
| 56 # on the list of known ports should override this with a MockPortFactory
. | 54 # on the list of known ports should override this with a MockPortFactory
. |
| 57 self.port_factory = PortFactory(self) | 55 self.port_factory = PortFactory(self) |
| 58 | 56 |
| 59 def initialize_scm(self, patch_directories=None): | 57 def initialize_scm(self, patch_directories=None): |
| 60 self._scm = MockSCM(filesystem=self.filesystem, executive=self.executive
) | 58 self._scm = MockSCM(filesystem=self.filesystem, executive=self.executive
) |
| 61 # Various pieces of code (wrongly) call filesystem.chdir(checkout_root). | 59 # Various pieces of code (wrongly) call filesystem.chdir(checkout_root). |
| 62 # Making the checkout_root exist in the mock filesystem makes that chdir
not raise. | 60 # Making the checkout_root exist in the mock filesystem makes that chdir
not raise. |
| 63 self.filesystem.maybe_make_directory(self._scm.checkout_root) | 61 self.filesystem.maybe_make_directory(self._scm.checkout_root) |
| 64 | 62 |
| 65 def scm(self): | 63 def scm(self): |
| 66 return self._scm | 64 return self._scm |
| 67 | 65 |
| 68 def checkout(self): | 66 def checkout(self): |
| 69 return self._checkout | 67 return self._checkout |
| 70 | 68 |
| 71 def chromium_buildbot(self): | 69 def chromium_buildbot(self): |
| 72 return self._chromium_buildbot | 70 return self._chromium_buildbot |
| OLD | NEW |