diff options
Diffstat (limited to 'lib/workspace_lib_unittest.py')
-rw-r--r-- | lib/workspace_lib_unittest.py | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/lib/workspace_lib_unittest.py b/lib/workspace_lib_unittest.py deleted file mode 100644 index b5378f930..000000000 --- a/lib/workspace_lib_unittest.py +++ /dev/null @@ -1,229 +0,0 @@ -# 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. - -"""Tests for the workspace_lib library.""" - -from __future__ import print_function - -import mock -import os - -from chromite.cbuildbot import constants -from chromite.lib import cros_build_lib -from chromite.lib import cros_test_lib -from chromite.lib import osutils -from chromite.lib import workspace_lib - -# pylint: disable=protected-access - -class WorkspaceLibTest(cros_test_lib.TempDirTestCase): - """Unittests for workspace_lib.py""" - - def setUp(self): - # Define assorted paths to test against. - self.bogus_dir = os.path.join(self.tempdir, 'bogus') - - self.workspace_dir = os.path.join(self.tempdir, 'workspace') - self.workspace_config = os.path.join(self.workspace_dir, - workspace_lib.WORKSPACE_CONFIG) - self.workspace_nested = os.path.join(self.workspace_dir, 'foo', 'bar') - # Create workspace directories and files. - osutils.Touch(self.workspace_config, makedirs=True) - osutils.SafeMakedirs(self.workspace_nested) - - @mock.patch('os.getcwd') - @mock.patch.object(cros_build_lib, 'IsInsideChroot', return_value=False) - def testWorkspacePathOutsideChroot(self, _mock_inside, mock_cwd): - # Set default to a dir outside the workspace. - mock_cwd.return_value = self.bogus_dir - - # Inside the workspace, specified dir. - self.assertEqual(self.workspace_dir, - workspace_lib.WorkspacePath(self.workspace_dir)) - self.assertEqual(self.workspace_dir, - workspace_lib.WorkspacePath(self.workspace_nested)) - - # Outside the workspace, specified dir. - self.assertEqual(None, workspace_lib.WorkspacePath(self.tempdir)) - self.assertEqual(None, workspace_lib.WorkspacePath(self.bogus_dir)) - - # Inside the workspace, default dir. - mock_cwd.return_value = self.workspace_dir - self.assertEqual(self.workspace_dir, workspace_lib.WorkspacePath()) - - mock_cwd.return_value = self.workspace_nested - self.assertEqual(self.workspace_dir, workspace_lib.WorkspacePath()) - - # Outside the workspace, default dir. - mock_cwd.return_value = self.tempdir - self.assertEqual(None, workspace_lib.WorkspacePath()) - - mock_cwd.return_value = self.bogus_dir - self.assertEqual(None, workspace_lib.WorkspacePath()) - - @mock.patch.object(cros_build_lib, 'IsInsideChroot', return_value=True) - def testWorkspacePathInsideChroot(self, _mock_inside): - orig_root = constants.CHROOT_WORKSPACE_ROOT - try: - # Set default to a dir outside the workspace. - constants.CHROOT_WORKSPACE_ROOT = self.bogus_dir - - # Inside the workspace, specified dir. - self.assertEqual(self.workspace_dir, - workspace_lib.WorkspacePath(self.workspace_dir)) - self.assertEqual(self.workspace_dir, - workspace_lib.WorkspacePath(self.workspace_nested)) - - # Outside the workspace, specified dir. - self.assertEqual(None, workspace_lib.WorkspacePath(self.tempdir)) - self.assertEqual(None, workspace_lib.WorkspacePath(self.bogus_dir)) - - # Inside the workspace, default dir. - constants.CHROOT_WORKSPACE_ROOT = self.workspace_dir - self.assertEqual(self.workspace_dir, workspace_lib.WorkspacePath()) - - constants.CHROOT_WORKSPACE_ROOT = self.workspace_nested - self.assertEqual(self.workspace_dir, workspace_lib.WorkspacePath()) - - # Outside the workspace, default dir. - constants.CHROOT_WORKSPACE_ROOT = self.tempdir - self.assertEqual(None, workspace_lib.WorkspacePath()) - - constants.CHROOT_WORKSPACE_ROOT = self.bogus_dir - self.assertEqual(None, workspace_lib.WorkspacePath()) - - finally: - # Restore our constant to it's real value. - constants.CHROOT_WORKSPACE_ROOT = orig_root - - def testChrootPath(self): - # Check the default value. - self.assertEqual(os.path.join(self.workspace_dir, '.chroot'), - workspace_lib.ChrootPath(self.workspace_dir)) - - # Set a new absolute value, check that we get it back. - workspace_lib.SetChrootDir(self.workspace_dir, self.bogus_dir) - self.assertEqual(self.bogus_dir, - workspace_lib.ChrootPath(self.workspace_dir)) - - # Set a new relative path, check that it is properly appended to the - # workspace path. - workspace_lib.SetChrootDir(self.workspace_dir, 'some/path') - self.assertEqual(os.path.join(self.workspace_dir, 'some/path'), - workspace_lib.ChrootPath(self.workspace_dir)) - - @mock.patch.object(osutils, 'IsInsideVm', return_value=True) - def testChrootPathUnderVm(self, _mock_inside_vm): - """Make sure that inside the VM, chroot dir is under /chroots/...""" - self.assertEqual( - os.path.join(workspace_lib.MAIN_CHROOT_DIR_IN_VM, - os.path.basename(self.workspace_dir)), - workspace_lib.ChrootPath(self.workspace_dir) - ) - - def testReadWriteLocalConfig(self): - # Non-existent config should read as an empty dictionary. - config = workspace_lib._ReadLocalConfig(self.workspace_dir) - self.assertEqual({}, config) - - # Write out an empty dict, and make sure we can read it back. - workspace_lib._WriteLocalConfig(self.workspace_dir, {}) - config = workspace_lib._ReadLocalConfig(self.workspace_dir) - self.assertEqual({}, config) - - # Write out a value, and verify we can read it. - workspace_lib._WriteLocalConfig(self.workspace_dir, {'version': 'foo'}) - config = workspace_lib._ReadLocalConfig(self.workspace_dir) - self.assertEqual({'version': 'foo'}, config) - - # Overwrite value, and verify we can read it. - workspace_lib._WriteLocalConfig(self.workspace_dir, {'version': 'bar'}) - config = workspace_lib._ReadLocalConfig(self.workspace_dir) - self.assertEqual({'version': 'bar'}, config) - - def testReadWriteActiveSdkVersion(self): - # If no version is set, value should be None. - version = workspace_lib.GetActiveSdkVersion(self.workspace_dir) - self.assertEqual(None, version) - - # Set value, and make sure we can read it. - workspace_lib.SetActiveSdkVersion(self.workspace_dir, 'foo') - version = workspace_lib.GetActiveSdkVersion(self.workspace_dir) - self.assertEqual('foo', version) - - # Set different value, and make sure we can read it. - workspace_lib.SetActiveSdkVersion(self.workspace_dir, 'bar') - version = workspace_lib.GetActiveSdkVersion(self.workspace_dir) - self.assertEqual('bar', version) - - # Create config with unrelated values, should be same as no config. - workspace_lib._WriteLocalConfig(self.workspace_dir, {'foo': 'bar'}) - version = workspace_lib.GetActiveSdkVersion(self.workspace_dir) - self.assertEqual(None, version) - - # Set version, and make sure it works. - workspace_lib.SetActiveSdkVersion(self.workspace_dir, '1.2.3') - version = workspace_lib.GetActiveSdkVersion(self.workspace_dir) - self.assertEqual('1.2.3', version) - - # Ensure all of config is there afterwords. - config = workspace_lib._ReadLocalConfig(self.workspace_dir) - self.assertEqual({'version': '1.2.3', 'foo': 'bar'}, config) - - @mock.patch('os.getcwd') - @mock.patch.object(cros_build_lib, 'IsInsideChroot', return_value=False) - def testPathToLocator(self, _mock_inside, mock_cwd): - """Tests the path to locator conversion.""" - ws = self.workspace_dir - mock_cwd.return_value = ws - - foo_path = workspace_lib.PathToLocator(os.path.join(ws, 'foo')) - baz_path = workspace_lib.PathToLocator(os.path.join(ws, 'bar', 'foo', - 'baz')) - daisy_path = workspace_lib.PathToLocator(os.path.join(constants.SOURCE_ROOT, - 'src', 'overlays', - 'overlay-daisy')) - some_path = workspace_lib.PathToLocator(os.path.join(constants.SOURCE_ROOT, - 'srcs', 'bar')) - - self.assertEqual('//foo', foo_path) - self.assertEqual('//bar/foo/baz', baz_path) - self.assertEqual('board:daisy', daisy_path) - self.assertEqual(None, some_path) - - def assertReversible(loc): - path = workspace_lib.LocatorToPath(loc) - self.assertEqual(loc, workspace_lib.PathToLocator(path)) - - assertReversible('//foo') - assertReversible('//foo/bar/baz') - assertReversible('board:gizmo') - - -class ConfigurationTest(cros_test_lib.TempDirTestCase): - """Test WriteConfigFile() and ReadConfigFile().""" - - def testWriteReadConfigFile(self): - """Tests WriteConfigFile() then ReadConfigFile().""" - path = os.path.join(self.tempdir, 'foo.json') - config = {'foo': 1, 'bar': 2} - - workspace_lib.WriteConfigFile(path, config) - self.assertDictEqual(config, workspace_lib.ReadConfigFile(path)) - - def testWriteConfigFileInvalid(self): - """Tests writing an invalid configuration file.""" - path = os.path.join(self.tempdir, 'foo.json') - config = Exception() - - with self.assertRaises(workspace_lib.ConfigFileError): - workspace_lib.WriteConfigFile(path, config) - - def testReadConfigFileInvalid(self): - """Tests reading an invalid configuration file.""" - path = os.path.join(self.tempdir, 'foo.json') - osutils.WriteFile(path, 'invalid contents') - - with self.assertRaises(workspace_lib.ConfigFileError): - workspace_lib.ReadConfigFile(path) |