From ba8829b64ff6c75aebd823743e8833ab0b531a4f Mon Sep 17 00:00:00 2001 From: Khushboo Vashi Date: Fri, 15 Jun 2018 15:03:53 +0100 Subject: [PATCH] Further Python 2.6 fixes. --- web/pgadmin/misc/bgprocess/processes.py | 14 ++++++++++++-- .../tools/backup/tests/test_batch_process.py | 5 ++++- .../tests/test_batch_process_maintenance.py | 5 ++++- .../tools/restore/tests/test_batch_process.py | 5 ++++- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/web/pgadmin/misc/bgprocess/processes.py b/web/pgadmin/misc/bgprocess/processes.py index cb98291c6..c6151e328 100644 --- a/web/pgadmin/misc/bgprocess/processes.py +++ b/web/pgadmin/misc/bgprocess/processes.py @@ -463,7 +463,7 @@ class BatchProcess(object): stime = parser.parse(self.stime) etime = parser.parse(self.etime or get_current_time()) - execution_time = (etime - stime).total_seconds() + execution_time = BatchProcess.total_seconds(etime - stime) if process_output: out, out_completed = read_log( @@ -558,7 +558,7 @@ class BatchProcess(object): stime = parser.parse(p.start_time) etime = parser.parse(p.end_time or get_current_time()) - execution_time = (etime - stime).total_seconds() + execution_time = BatchProcess.total_seconds(etime - stime) desc = "" try: desc = loads(p.desc.encode('latin-1')) if \ @@ -600,6 +600,16 @@ class BatchProcess(object): return res + @staticmethod + def total_seconds(dt): + # Keep backward compatibility with Python 2.6 which doesn't have + # this method + if hasattr(dt, 'total_seconds'): + return dt.total_seconds() + else: + return (dt.microseconds + (dt.seconds + dt.days * 24 * 3600) * + 10**6) / 10**6 + @staticmethod def acknowledge(_pid): """ diff --git a/web/pgadmin/tools/backup/tests/test_batch_process.py b/web/pgadmin/tools/backup/tests/test_batch_process.py index b02081992..25342d4ef 100644 --- a/web/pgadmin/tools/backup/tests/test_batch_process.py +++ b/web/pgadmin/tools/backup/tests/test_batch_process.py @@ -119,7 +119,10 @@ class BatchProcessTest(BaseTestGenerator): current_app_mock.PGADMIN_RUNTIME = False def db_session_add_mock(j): - cmd_obj = loads(j.desc) + if sys.version_info < (2, 7): + cmd_obj = loads(str(j.desc)) + else: + cmd_obj = loads(j.desc) self.assertTrue(isinstance(cmd_obj, IProcessDesc)) self.assertEqual(cmd_obj.backup_type, self.class_params['type']) self.assertEqual(cmd_obj.bfile, self.class_params['bfile']) diff --git a/web/pgadmin/tools/maintenance/tests/test_batch_process_maintenance.py b/web/pgadmin/tools/maintenance/tests/test_batch_process_maintenance.py index f785c87e5..3700d9622 100644 --- a/web/pgadmin/tools/maintenance/tests/test_batch_process_maintenance.py +++ b/web/pgadmin/tools/maintenance/tests/test_batch_process_maintenance.py @@ -73,7 +73,10 @@ class BatchProcessTest(BaseTestGenerator): self.port = port def db_session_add_mock(j): - cmd_obj = loads(j.desc) + if sys.version_info < (2, 7): + cmd_obj = loads(str(j.desc)) + else: + cmd_obj = loads(j.desc) self.assertTrue(isinstance(cmd_obj, IProcessDesc)) self.assertEqual(cmd_obj.query, self.class_params['cmd']) self.assertEqual(cmd_obj.message, self.expected_msg) diff --git a/web/pgadmin/tools/restore/tests/test_batch_process.py b/web/pgadmin/tools/restore/tests/test_batch_process.py index ea33af288..8bc5ede97 100644 --- a/web/pgadmin/tools/restore/tests/test_batch_process.py +++ b/web/pgadmin/tools/restore/tests/test_batch_process.py @@ -64,7 +64,10 @@ class BatchProcessTest(BaseTestGenerator): current_app_mock.PGADMIN_RUNTIME = False def db_session_add_mock(j): - cmd_obj = loads(j.desc) + if sys.version_info < (2, 7): + cmd_obj = loads(str(j.desc)) + else: + cmd_obj = loads(j.desc) self.assertTrue(isinstance(cmd_obj, IProcessDesc)) self.assertEqual(cmd_obj.bfile, self.class_params['bfile']) self.assertEqual(cmd_obj.cmd,