Browse Source

added _SetStatus.last_backup_time property

Fabian Peter Hammerle 7 years ago
parent
commit
33217ffc4d
2 changed files with 25 additions and 11 deletions
  1. 3 11
      duplitab/__init__.py
  2. 22 0
      tests/test_collection.py

+ 3 - 11
duplitab/__init__.py

@@ -70,11 +70,9 @@ class _ChainStatus(_Status):
     def __init__(self, sets):
         self.sets = sets
 
-    def __eq__(self, other):
-        return isinstance(self, type(other)) and vars(self) == vars(other)
-
-    def __neq__(self, other):
-        return not (self == other)
+    @property
+    def last_backup_time(self):
+        return max([s.backup_time for s in self.sets])
 
     @classmethod
     def _parse(cls, text):
@@ -97,9 +95,3 @@ class _SetStatus(_Status):
 
     def __init__(self, backup_time):
         self.backup_time = backup_time
-
-    def __eq__(self, other):
-        return isinstance(self, type(other)) and vars(self) == vars(other)
-
-    def __neq__(self, other):
-        return not (self == other)

+ 22 - 0
tests/test_collection.py

@@ -86,3 +86,25 @@ def test_collection_init_fail(init_kwargs, ex_class):
 def test_collection_request_status(url, expected_status):
     c = duplitab.Collection(url=url)
     assert expected_status == c.request_status()
+
+
+@pytest.mark.parametrize(('chain_status', 'expected_time'), [
+    [
+        duplitab._ChainStatus(
+            sets=[
+                duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 33)),
+            ]),
+        datetime.datetime(2016, 10, 27, 19, 57, 33),
+    ],
+    [
+        duplitab._ChainStatus(
+            sets=[
+                duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 33)),
+                duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 35)),
+                duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 39)),
+            ]),
+        datetime.datetime(2016, 10, 27, 19, 57, 39),
+    ],
+])
+def test_chain_status_get_last_backup_time(chain_status, expected_time):
+    assert expected_time == chain_status.last_backup_time