Build API: Additional controller_util functionality.
Added BuildTarget parsing in controller util.
Added eq support in BuildTarget and Chroot to make testing
easier and cleaner.
Enforce BuildTarget.name and Chroot.path immutability.
BUG=None
TEST=run_tests
Change-Id: I6699a83e67940799279a6bcb8fb8a4fbb559c2b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1739156
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: David Burger <dburger@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/lib/build_target_util.py b/lib/build_target_util.py
index d9f91d2..9806f7f 100644
--- a/lib/build_target_util.py
+++ b/lib/build_target_util.py
@@ -32,7 +32,7 @@
if not name:
raise InvalidNameError('Name is required.')
- self.name = name
+ self._name = name
self.board, _, self.variant = name.partition('_')
self.profile = profile
@@ -41,9 +41,22 @@
else:
self.root = GetDefaultSysrootPath(self.name)
+ def __eq__(self, other):
+ if self.__class__ is other.__class__:
+ return (self.name == other.name and self.profile == other.profile and
+ self.root == other.root)
+
+ return NotImplemented
+
+ def __hash__(self):
+ return hash(self.name)
+
def __str__(self):
return self.name
+ @property
+ def name(self):
+ return self._name
def GetDefaultSysrootPath(target_name):
if target_name: