From: Paul Vinciguerra Date: Tue, 1 Dec 2020 16:33:28 +0000 (-0500) Subject: tests: add type annotations to the vpp object abstract class X-Git-Tag: v21.06-rc0~82 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=45eff787cde1b6466fca494b2792898c42a9c06a;hp=4abc86639249f5c1ed2e0133dc336de549c96c40;p=vpp.git tests: add type annotations to the vpp object abstract class make it easier to detect logical mistakes. Type: test Change-Id: I853748ffaeebc545c8d31299f0d105405ad80bba Signed-off-by: Paul Vinciguerra --- diff --git a/test/vpp_object.py b/test/vpp_object.py index 2c07d472a65..df44efbbda7 100644 --- a/test/vpp_object.py +++ b/test/vpp_object.py @@ -11,36 +11,36 @@ class VppObject(object): """ Abstract vpp object """ @abc.abstractmethod - def add_vpp_config(self): + def add_vpp_config(self) -> None: """ Add the configuration for this object to vpp. """ pass @abc.abstractmethod - def query_vpp_config(self): + def query_vpp_config(self) -> bool: """Query the vpp configuration. :return: True if the object is configured""" pass @abc.abstractmethod - def remove_vpp_config(self): + def remove_vpp_config(self) -> None: """ Remove the configuration for this object from vpp. """ pass - def object_id(self): + def object_id(self) -> str: """ Return a unique string representing this object. """ return "Undefined. for <%s %s>" % (self.__class__.__name__, id(self)) - def __str__(self): + def __str__(self) -> str: return self.object_id() - def __repr__(self): + def __repr__(self) -> str: return '<%s>' % self.object_id() - def __hash__(self): + def __hash__(self) -> int: return hash(self.object_id()) - def __eq__(self, other): + def __eq__(self, other) -> bool: if not isinstance(other, self.__class__): return NotImplemented if other.object_id() == self.object_id(): @@ -56,14 +56,14 @@ class VppObjectRegistry(object): """ Class which handles automatic configuration cleanup. """ _shared_state = {} - def __init__(self): + def __init__(self) -> None: self.__dict__ = self._shared_state if not hasattr(self, "_object_registry"): self._object_registry = [] if not hasattr(self, "_object_dict"): self._object_dict = dict() - def register(self, obj, logger): + def register(self, obj: VppObject, logger) -> None: """ Register an object in the registry. """ if obj.object_id() not in self._object_dict: self._object_registry.append(obj) @@ -72,13 +72,13 @@ class VppObjectRegistry(object): else: logger.debug("REG: duplicate add, ignoring (%s)" % obj) - def unregister_all(self, logger): + def unregister_all(self, logger) -> None: """ Remove all object registrations from registry. """ logger.debug("REG: removing all object registrations") self._object_registry = [] self._object_dict = dict() - def remove_vpp_config(self, logger): + def remove_vpp_config(self, logger) -> None: """ Remove configuration (if present) from vpp and then remove all objects from the registry.