summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2006-02-23 02:57:19 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2006-02-23 02:57:19 +0000
commit1f00040a3541728a517176d318f0c099a3f813c1 (patch)
tree5caecf363a4d135e779ff40e6cf6301abce5692e
parenta8190e19465aacc659c246123213c53d7f562f28 (diff)
downloadrdiff-backup-1f00040a3541728a517176d318f0c099a3f813c1.tar.gz
Times like "Mon Jun 5 11:00:23 1997" now recognized
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@757 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r--rdiff-backup/CHANGELOG3
-rw-r--r--rdiff-backup/rdiff_backup/Time.py9
-rw-r--r--rdiff-backup/rdiff_backup/compare.py1
-rw-r--r--rdiff-backup/testing/timetest.py8
4 files changed, 21 insertions, 0 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG
index a272df9..70bd2bc 100644
--- a/rdiff-backup/CHANGELOG
+++ b/rdiff-backup/CHANGELOG
@@ -13,6 +13,9 @@ Fix a traceback due to an off-by-1 error in "--remove-older-than nB".
Fix a security violation when restoring from a remote repository.
(Patch from Charles Duffy.)
+Added times like "Mon Jun 5 11:00:23 1997" to the recognized time
+strings. (Suggested by Wolfgang Dautermann.)
+
New in v1.1.5 (2006/01/01)
--------------------------
diff --git a/rdiff-backup/rdiff_backup/Time.py b/rdiff-backup/rdiff_backup/Time.py
index 6481a58..7885332 100644
--- a/rdiff-backup/rdiff_backup/Time.py
+++ b/rdiff-backup/rdiff_backup/Time.py
@@ -96,6 +96,11 @@ def stringtopretty(timestring):
"""Return pretty version of time given w3 time string"""
return timetopretty(stringtotime(timestring))
+def prettytotime(prettystring):
+ """Converts time like "Mon Jun 5 11:00:23" to epoch sec, or None"""
+ try: return time.mktime(time.strptime(prettystring))
+ except ValueError: return None
+
def inttopretty(seconds):
"""Convert num of seconds to readable string like "2 hours"."""
partlist = []
@@ -222,6 +227,10 @@ the day).""" % timestr)
if _session_regexp.search(timestr):
return time_from_session(int(timestr[:-1]), rp)
+ # Try for long time, like "Mon Jun 5 11:00:23 1990"
+ t = prettytotime(timestr)
+ if t is not None: return t
+
try: # test for an interval, like "2 days ago"
return curtime - intstringtoseconds(timestr)
except TimeException: pass
diff --git a/rdiff-backup/rdiff_backup/compare.py b/rdiff-backup/rdiff_backup/compare.py
index 892cf75..e9884ed 100644
--- a/rdiff-backup/rdiff_backup/compare.py
+++ b/rdiff-backup/rdiff_backup/compare.py
@@ -24,6 +24,7 @@ compare. This uses elements of the backup and restore modules.
"""
+from __future__ import generators
import Globals, restore, rorpiter, log, backup, static, rpath, hash, robust
def Compare(src_rp, mirror_rp, inc_rp, compare_time):
diff --git a/rdiff-backup/testing/timetest.py b/rdiff-backup/testing/timetest.py
index 56052ca..24c0cf9 100644
--- a/rdiff-backup/testing/timetest.py
+++ b/rdiff-backup/testing/timetest.py
@@ -72,6 +72,14 @@ class TimeTest(unittest.TestCase):
assert Time.inttopretty(3661) == "1 hour 1 minute 1 second"
assert Time.inttopretty(353.234234) == "5 minutes 53.23 seconds"
+ def testPrettyTimes(self):
+ """Convert seconds to pretty and back"""
+ now = int(time.time())
+ for i in [1, 200000, now]:
+ assert Time.prettytotime(Time.timetopretty(i)) == i, i
+ assert Time.prettytotime("now") is None
+ assert Time.prettytotime("12314") is None
+
def testGenericString(self):
"""Test genstrtotime, conversion of arbitrary string to time"""
g2t = Time.genstrtotime