| 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 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 # New-style ports need to move down into webkitpy.common. | 35 # New-style ports need to move down into webkitpy.common. |
| 36 from webkitpy.layout_tests.builder_list import BuilderList | 36 from webkitpy.layout_tests.builder_list import BuilderList |
| 37 from webkitpy.layout_tests.port.factory import PortFactory | 37 from webkitpy.layout_tests.port.factory import PortFactory |
| 38 from webkitpy.layout_tests.port.test import add_unit_tests_to_mock_filesystem | 38 from webkitpy.layout_tests.port.test import add_unit_tests_to_mock_filesystem |
| 39 | 39 |
| 40 | 40 |
| 41 class MockHost(MockSystemHost): | 41 class MockHost(MockSystemHost): |
| 42 | 42 |
| 43 def __init__(self, | 43 def __init__(self, |
| 44 log_executive=False, | 44 log_executive=False, |
| 45 initialize_scm_by_default=True, |
| 45 web=None, | 46 web=None, |
| 46 scm=None, | 47 scm=None, |
| 47 os_name=None, | 48 os_name=None, |
| 48 os_version=None, | 49 os_version=None, |
| 49 time_return_val=123): | 50 time_return_val=123): |
| 50 super(MockHost, self).__init__( | 51 super(MockHost, self).__init__( |
| 51 log_executive=log_executive, | 52 log_executive=log_executive, |
| 52 os_name=os_name, | 53 os_name=os_name, |
| 53 os_version=os_version, | 54 os_version=os_version, |
| 54 time_return_val=time_return_val) | 55 time_return_val=time_return_val) |
| 55 | 56 |
| 56 add_unit_tests_to_mock_filesystem(self.filesystem) | 57 add_unit_tests_to_mock_filesystem(self.filesystem) |
| 57 self.web = web or MockWeb() | 58 self.web = web or MockWeb() |
| 59 |
| 58 self._scm = scm | 60 self._scm = scm |
| 59 | 61 # TODO(qyearsley): we should never initialize the SCM by default, since |
| 62 # the real object doesn't either. This has caused at least one bug |
| 63 # (see bug 89498). |
| 64 if initialize_scm_by_default: |
| 65 self.initialize_scm() |
| 60 self.buildbot = MockBuildBot() | 66 self.buildbot = MockBuildBot() |
| 61 | 67 |
| 62 # Note: We're using a real PortFactory here. Tests which don't wish to
depend | 68 # Note: We're using a real PortFactory here. Tests which don't wish to
depend |
| 63 # on the list of known ports should override this with a MockPortFactory
. | 69 # on the list of known ports should override this with a MockPortFactory
. |
| 64 self.port_factory = PortFactory(self) | 70 self.port_factory = PortFactory(self) |
| 65 | 71 |
| 66 self.builders = BuilderList(BUILDERS) | 72 self.builders = BuilderList(BUILDERS) |
| 67 | 73 |
| 68 def scm(self, path=None): | 74 def initialize_scm(self, patch_directories=None): |
| 69 if path: | |
| 70 return MockGit(cwd=path, filesystem=self.filesystem, executive=self.
executive) | |
| 71 if not self._scm: | 75 if not self._scm: |
| 72 self._scm = MockGit(filesystem=self.filesystem, executive=self.execu
tive) | 76 self._scm = MockGit(filesystem=self.filesystem, executive=self.execu
tive) |
| 73 # Various pieces of code (wrongly) call filesystem.chdir(checkout_root). | 77 # Various pieces of code (wrongly) call filesystem.chdir(checkout_root). |
| 74 # Making the checkout_root exist in the mock filesystem makes that chdir
not raise. | 78 # Making the checkout_root exist in the mock filesystem makes that chdir
not raise. |
| 75 self.filesystem.maybe_make_directory(self._scm.checkout_root) | 79 self.filesystem.maybe_make_directory(self._scm.checkout_root) |
| 80 |
| 81 def scm(self): |
| 76 return self._scm | 82 return self._scm |
| 83 |
| 84 def scm_for_path(self, path): |
| 85 # FIXME: consider supporting more than one SCM so that we can do more co
mprehensive testing. |
| 86 self.initialize_scm() |
| 87 return self._scm |
| OLD | NEW |