Add twisted-15.5.0 module to webkitpy.thirdparty.autoinstalled.
[WebKit.git] / Tools / Scripts / webkitpy / thirdparty / __init___unittest.py
1 # Copyright (C) 2011 Google Inc. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are
5 # met:
6 #
7 #     * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 #     * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer
11 # in the documentation and/or other materials provided with the
12 # distribution.
13 #     * Neither the name of Google Inc. nor the names of its
14 # contributors may be used to endorse or promote products derived from
15 # this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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.
28
29 import sys
30 import unittest
31
32 from webkitpy.thirdparty import AutoinstallImportHook
33
34
35 class ThirdpartyTest(unittest.TestCase):
36     def test_import_hook(self):
37         # Add another import hook and make sure we get called.
38         class MockImportHook(AutoinstallImportHook):
39             def __init__(self):
40                 AutoinstallImportHook.__init__(self)
41                 self.eliza_installed = False
42
43             def _install_eliza(self):
44                 self.eliza_installed = True
45
46         mock_import_hook = MockImportHook()
47         try:
48             # The actual AutoinstallImportHook should be installed before us,
49             # so these modules will get installed before MockImportHook runs.
50             sys.meta_path.append(mock_import_hook)
51             # unused-variable, import failures - pylint: disable-msg=W0612,E0611,F0401
52             from webkitpy.thirdparty.autoinstalled import eliza
53             self.assertTrue(mock_import_hook.eliza_installed)
54
55         finally:
56             sys.meta_path.remove(mock_import_hook)
57
58     def test_imports(self):
59         # This method tests that we can actually import everything.
60         # unused-variable, import failures - pylint: disable-msg=W0612,E0611,F0401
61         import webkitpy.thirdparty.autoinstalled.buildbot
62         import webkitpy.thirdparty.autoinstalled.coverage
63         import webkitpy.thirdparty.autoinstalled.eliza
64         import webkitpy.thirdparty.autoinstalled.mechanize
65         import webkitpy.thirdparty.autoinstalled.pylint
66         import webkitpy.thirdparty.autoinstalled.pep8
67         import webkitpy.thirdparty.autoinstalled.twisted
68         import webkitpy.thirdparty.autoinstalled.twisted_15_5_0