| # Copyright 2015 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Test the cros_import module.""" |
| |
| from __future__ import print_function |
| |
| from chromite.lib import cros_import |
| from chromite.lib import cros_test_lib |
| |
| |
| class ImportTest(cros_test_lib.TempDirTestCase): |
| """Tests for the ImportModule function.""" |
| |
| def testMissingModule(self): |
| """Check behavior on unknown modules.""" |
| self.assertRaises(ImportError, cros_import.ImportModule, 'asdf.aja.ew.q.a') |
| |
| def _testImportModule(self, target): |
| """Verify we can import |target| successfully.""" |
| module = cros_import.ImportModule(target) |
| self.assertTrue(hasattr(module, 'ImportModule')) |
| |
| def testImportString(self): |
| """Verify we can import using a string.""" |
| self._testImportModule('chromite.lib.cros_import') |
| |
| def testImportTupleList(self): |
| """Verify we can import using a tuple & list.""" |
| parts = ('chromite', 'lib', 'cros_import') |
| self._testImportModule(parts) |
| self._testImportModule(list(parts)) |
| |
| def testImportGenerator(self): |
| """Verify we can import using a generator.""" |
| def target(): |
| for p in ('chromite', 'lib', 'cros_import'): |
| yield p |
| self._testImportModule(target()) |