Subject: [pgAdmin4][Patch] Minor fix in test file for the Template loader

From: Murtuza Zabuawala <[email-masked]>
Date: Tue, 31 Jan 2017 10:55:47 +0530

Hi,

PFA patch to fix the issue in test suite for template loader.

*Issue(Python3):*
murtuza@vm:~/pgadmin4/web/regression$ python3 runtests.py
pgAdmin 4 - Application Initialisation
======================================

The configuration database - '/../.pgadmin/test_pgadmin4.db' does not exist.
Entering initial setup mode...
NOTE: Configuring authentication for SERVER mode.

The configuration database has been created at /../.pgadmin/test_pgadmin4.db
Traceback (most recent call last):
  File "runtests.py", line 250, in <module>
    test_module_list = get_test_modules(args)
  File "runtests.py", line 138, in get_test_modules
    TestsGeneratorRegistry.load_generators('pgadmin')
  File "../../pgadmin4/web/pgadmin/utils/route.py", line 66, in
load_generators
    import_module(module_name)
  File "/../../3.5/lib/python3.5/importlib/__init__.py", line 126, in
import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 658, in exec_module
  File "<frozen importlib._bootstrap_external>", line 764, in get_code
  File "<frozen importlib._bootstrap_external>", line 724, in source_to_code
  File "<frozen importlib._bootstrap>", line 222, in
_call_with_frames_removed
  File
"/../../pgadmin4/web/pgadmin/utils/tests/test_versioned_template_loader.py",
line 50
    except TemplateNotFound, e:
                           ^
SyntaxError: invalid syntax

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgadmin-hackers mailing list ([email-masked])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

---

From: Dave Page <[email-masked]>
Date: Tue, 31 Jan 2017 10:04:24 +0000

Thanks Murtuza. When you get a minute, can you also look at the
following issue I get with the tests under Python 3.5? It doesn't seem
to stop them working.

Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/route.py", line
75, in load_generators
    import_module(module_name)
  File "/Users/dpage/.virtualenvs/pgadmin4-py35/lib/python3.5/importlib/__init__.py",
line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/sqlautocomplete/counter.py",
line 6, in <module>
    from itertools import repeat, ifilter
ImportError: cannot import name 'ifilter'

On Tue, Jan 31, 2017 at 5:25 AM, Murtuza Zabuawala
<[email-masked]> wrote:
> Issue(Python3):

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Ashesh Vashi <[email-masked]>
Date: Tue, 31 Jan 2017 16:02:17 +0530

Murtuza,

FYI -
http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html#itertools

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company
<http://www.enterprisedb.com>

*http://www.linkedin.com/in/asheshvashi*
<http://www.linkedin.com/in/asheshvashi>

---

From: Murtuza Zabuawala <[email-masked]>
Date: Tue, 31 Jan 2017 16:06:08 +0530

Hi Dave,

Even I tested against Python3.5 but did not receive any such error and I
tried again after your mail but still did not receive error.

murtuza@vm:~/pgadmin4/web/regression$ python3 --version

Python 3.5.0

---

From: Dave Page <[email-masked]>
Date: Tue, 31 Jan 2017 10:40:35 +0000

> murtuza@vm:~/pgadmin4/web/regression$ python3 --version

Hmm, I have:

(pgadmin4-py35) piranha:web dpage$ python --version
Python 3.5.3
(pgadmin4-py35) piranha:web dpage$ pip freeze
Babel==1.3
beautifulsoup4==4.4.1
blinker==1.3
click==6.6
extras==0.0.3
fixtures==2.0.0
Flask==0.11.1
Flask-Babel==0.11.1
Flask-Gravatar==0.4.2
Flask-HTMLmin==1.2
Flask-Login==0.3.2
Flask-Mail==0.9.1
Flask-Principal==0.4.0
Flask-Security==1.7.5
Flask-SQLAlchemy==2.1
Flask-WTF==0.12
html5lib==1.0b3
htmlmin==0.1.10
itsdangerous==0.24
Jinja2==2.7.3
linecache2==1.0.0
MarkupSafe==0.23
passlib==1.6.2
pbr==1.9.1
psycopg2==2.6.2
pycrypto==2.6.1
pyrsistent==0.11.13
python-dateutil==2.5.0
python-mimeparse==1.5.1
pytz==2014.10
simplejson==3.6.5
six==1.9.0
speaklater==1.3
SQLAlchemy==1.0.14
sqlparse==0.1.19
testscenarios==0.5.0
testtools==2.0.0
traceback2==1.4.0
unittest2==1.1.0
Werkzeug==0.9.6
WTForms==2.0.2

---

From: Murtuza Zabuawala <[email-masked]>
Date: Tue, 31 Jan 2017 16:19:03 +0530

Hi Dave,

Please find minor patch for the same.

> (pgadmin4-py35) piranha:web dpage$ pip freeze
diff --git a/web/pgadmin/utils/sqlautocomplete/counter.py b/web/pgadmin/utils/sqlautocomplete/counter.py
index 081b390..1ccd99c 100644
--- a/web/pgadmin/utils/sqlautocomplete/counter.py
+++ b/web/pgadmin/utils/sqlautocomplete/counter.py
@@ -3,7 +3,12 @@ Copied from http://code.activestate.com/recipes/576611-counter-class/
 """
 
 from heapq import nlargest
-from itertools import repeat, ifilter
+from itertools import repeat
+try:
+    from itertools import ifilter
+except ImportError:
+    # ifilter is in-built function in Python3 as filter
+    ifilter = filter
 from operator import itemgetter

---

From: Dave Page <[email-masked]>
Date: Tue, 31 Jan 2017 12:12:48 +0000

Works a treat - thanks, applied.