public inbox for [email protected]  
help / color / mirror / Atom feed
From: Khushboo Vashi <[email protected]>
To: Dave Page <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin4][Patch] : Fix PG utilities with Python 2.6
Date: Fri, 15 Jun 2018 19:25:06 +0530
Message-ID: <CAFOhELeXgn9iW63ObkVoVjYUNoEEo_czZo3m3Uxj9Ra_98joyw@mail.gmail.com> (raw)
In-Reply-To: <CA+OCxoxGpELwiPQdw3rcyQXj5RCa39R7GSK5=Ds7LKaJRhBcdQ@mail.gmail.com>
References: <CAFOhELdCNni62Vrr8swrJ7ySHNSfdEuGNtHLy8yLisZ5BGwM0w@mail.gmail.com>
	<CA+OCxoxGpELwiPQdw3rcyQXj5RCa39R7GSK5=Ds7LKaJRhBcdQ@mail.gmail.com>

Hi Dave,

Please find the attached patch for PG utilities - PY 2.6.

Thanks,
Khushboo

On Fri, Jun 15, 2018 at 5:08 PM, Dave Page <[email protected]> wrote:

> Thanks, applied.
>
> On Fri, Jun 15, 2018 at 12:27 PM, Khushboo Vashi <
> [email protected]> wrote:
>
>> Hi,
>>
>> Please find the attached patch which fixes the PG utilities with python
>> 2.6.
>>
>> Thanks,
>> Khushboo
>>
>
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>


Attachments:

  [text/x-patch] pg_utilities_fix_ver2.patch (4.0K, 3-pg_utilities_fix_ver2.patch)
  download | inline diff:
diff --git a/web/pgadmin/misc/bgprocess/processes.py b/web/pgadmin/misc/bgprocess/processes.py
index cb98291..c6151e3 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 \
@@ -601,6 +601,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):
         """
         Acknowledge from the user, he/she has alredy watched the status.
diff --git a/web/pgadmin/tools/backup/tests/test_batch_process.py b/web/pgadmin/tools/backup/tests/test_batch_process.py
index b020819..25342d4 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 f785c87..3700d96 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 ea33af2..8bc5ede 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,


view thread (4+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: [pgAdmin4][Patch] : Fix PG utilities with Python 2.6
  In-Reply-To: <CAFOhELeXgn9iW63ObkVoVjYUNoEEo_czZo3m3Uxj9Ra_98joyw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox