summaryrefslogtreecommitdiff
path: root/lib/workspace_lib_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/workspace_lib_unittest.py')
-rw-r--r--lib/workspace_lib_unittest.py229
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)