diff options
author | Sebastian Pipping <sebastian@pipping.org> | 2010-01-04 05:36:34 +0100 |
---|---|---|
committer | Sebastian Pipping <sebastian@pipping.org> | 2010-01-04 05:36:34 +0100 |
commit | 836dea135b73c2b0e802888702c6b67c86f2bea4 (patch) | |
tree | 2dde4565291ae18112053c66210beb936a9ac2d1 | |
parent | Make Overlay derive from object so we can use super() in subclasses (diff) | |
download | layman-836dea135b73c2b0e802888702c6b67c86f2bea4.tar.gz layman-836dea135b73c2b0e802888702c6b67c86f2bea4.tar.bz2 layman-836dea135b73c2b0e802888702c6b67c86f2bea4.zip |
Introduce equality and inequality tests
-rw-r--r-- | layman/overlay.py | 9 | ||||
-rw-r--r-- | layman/overlays/cvs.py | 8 | ||||
-rw-r--r-- | layman/overlays/overlay.py | 10 | ||||
-rw-r--r-- | layman/overlays/tar.py | 10 |
4 files changed, 37 insertions, 0 deletions
diff --git a/layman/overlay.py b/layman/overlay.py index ae19f28..643e652 100644 --- a/layman/overlay.py +++ b/layman/overlay.py @@ -84,6 +84,15 @@ class Overlays: if os.path.exists(path): self.read_file(path) + def __eq__(self, other): + for key in set(self.overlays.keys() + other.overlays.keys()): + if self.overlays[key] != other.overlays[key]: + return False + return True + + def __ne__(self, other): + return not self.__eq__(other) + def read_file(self, path): '''Read the overlay definition file.''' diff --git a/layman/overlays/cvs.py b/layman/overlays/cvs.py index a4ff74d..a9c4f0f 100644 --- a/layman/overlays/cvs.py +++ b/layman/overlays/cvs.py @@ -48,6 +48,14 @@ class CvsOverlay(Overlay): else: self.subpath = '' + def __eq__(self, other): + res = super(CvsOverlay, self).__eq__(other) \ + and self.subpath == other.subpath + return res + + def __ne__(self, other): + return not self.__eq__(other) + def add(self, base, quiet = False): '''Add overlay.''' diff --git a/layman/overlays/overlay.py b/layman/overlays/overlay.py index 8e1abc2..aa20f9d 100644 --- a/layman/overlays/overlay.py +++ b/layman/overlays/overlay.py @@ -147,6 +147,16 @@ class Overlay(object): else: self.homepage = None + def __eq__(self, other): + for i in ('description', 'homepage', 'name', 'owner_email', + 'owner_name', 'priority', 'src', 'status'): + if getattr(self, i) != getattr(other, i): + return False + return True + + def __ne__(self, other): + return not self.__eq__(other) + def set_priority(self, priority): '''Set the priority of this overlay.''' diff --git a/layman/overlays/tar.py b/layman/overlays/tar.py index 2ef69af..d65befc 100644 --- a/layman/overlays/tar.py +++ b/layman/overlays/tar.py @@ -88,6 +88,16 @@ class TarOverlay(Overlay): else: self.category = '' + def __eq__(self, other): + res = super(TarOverlay, self).__eq__(other) \ + and self.format == other.format \ + and self.subpath == other.subpath \ + and self.category == other.category + return res + + def __ne__(self, other): + return not self.__eq__(other) + def add(self, base, quiet = False): '''Add overlay.''' |