Browse Source

added _ChainStatus.first_backup_time()

Fabian Peter Hammerle 7 years ago
parent
commit
1c90c3d0b4
2 changed files with 26 additions and 0 deletions
  1. 4 0
      duplitab/__init__.py
  2. 22 0
      tests/test_collection.py

+ 4 - 0
duplitab/__init__.py

@@ -76,6 +76,10 @@ class _ChainStatus(_Status):
     def __init__(self, sets):
         self.sets = sets
 
+    @property
+    def first_backup_time(self):
+        return min([s.backup_time for s in self.sets])
+
     @property
     def last_backup_time(self):
         return max([s.backup_time for s in self.sets])

+ 22 - 0
tests/test_collection.py

@@ -113,6 +113,28 @@ def test_chain_status_get_last_backup_time(chain_status, expected_time):
     assert expected_time == chain_status.last_backup_time
 
 
+@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, 33),
+    ],
+])
+def test_chain_status_get_first_backup_time(chain_status, expected_time):
+    assert expected_time == chain_status.first_backup_time
+
+
 @pytest.mark.parametrize(('collection_status', 'expected_time'), [
     [
         duplitab._CollectionStatus(