aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-12-07 02:15:34 +0100
committerMarcin Kuzminski <marcin@python-works.com>2012-12-07 02:15:34 +0100
commit6eee7121051a34eea8861bd5f75367e00560aa29 (patch)
tree69d75f1a0d8ef1a7dc7ad3bbdebe2afa4c715e39
parentf84bbebe44337f185b1261397b2b6a58da932e83 (diff)
python2.5 safe parsing of datetime string with microseconds
--HG-- branch : beta
-rw-r--r--rhodecode/tests/functional/test_admin.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/rhodecode/tests/functional/test_admin.py b/rhodecode/tests/functional/test_admin.py
index 4bb9c8e9..57ed6688 100644
--- a/rhodecode/tests/functional/test_admin.py
+++ b/rhodecode/tests/functional/test_admin.py
@@ -17,15 +17,28 @@ class TestAdminController(TestController):
def setup_class(cls):
UserLog.query().delete()
Session().commit()
+
+ def strptime(val):
+ fmt = '%Y-%m-%d %H:%M:%S'
+ if '.' not in val:
+ return datetime.datetime.strptime(val, fmt)
+
+ nofrag, frag = val.split(".")
+ date = datetime.datetime.strptime(nofrag, fmt)
+
+ frag = frag[:6] # truncate to microseconds
+ frag += (6 - len(frag)) * '0' # add 0s
+ return date.replace(microsecond=int(frag))
+
with open(os.path.join(FIXTURES, 'journal_dump.csv')) as f:
for row in csv.DictReader(f):
ul = UserLog()
for k, v in row.iteritems():
v = safe_unicode(v)
if k == 'action_date':
- v = datetime.datetime.strptime(v, '%Y-%m-%d %H:%M:%S.%f')
+ v = strptime(v)
if k in ['user_id', 'repository_id']:
- #nullable due to FK problems
+ # nullable due to FK problems
v = None
setattr(ul, k, v)
Session().add(ul)
@@ -134,4 +147,4 @@ class TestAdminController(TestController):
self.log_user()
response = self.app.get(url(controller='admin/admin', action='index',
filter='date:20121020'))
- response.mustcontain('17 entries') \ No newline at end of file
+ response.mustcontain('17 entries')