From 4bfa9c1686a83983239bbf8ecdd13c5b50f877ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Wed, 8 Nov 2017 22:21:51 +0000 Subject: [PATCH] Fix a problem with Expressions in SQLTABLE possibly fixes #1735 and fixes web2py/pydal#487 --- gluon/sqlhtml.py | 2 +- gluon/tests/test_sqlhtml.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index afb2279e..594339dd 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -3328,7 +3328,7 @@ class SQLTABLE(TABLE): return REGEX_TABLE_DOT_FIELD = sqlrows.db._adapter.REGEX_TABLE_DOT_FIELD fieldmap = dict(zip(sqlrows.colnames, sqlrows.fields)) - tablemap = dict(((f.tablename, f.table) for f in fieldmap.values())) + tablemap = dict(((f.tablename, f.table) if isinstance(f, Field) else (f._table._tablename, f._table) for f in fieldmap.values())) for table in tablemap.values(): pref = table._tablename + '.' fieldmap.update(((pref+f.name, f) for f in table._virtual_fields)) diff --git a/gluon/tests/test_sqlhtml.py b/gluon/tests/test_sqlhtml.py index d0b519a0..1ba9b051 100644 --- a/gluon/tests/test_sqlhtml.py +++ b/gluon/tests/test_sqlhtml.py @@ -355,10 +355,10 @@ class TestSQLTABLE(unittest.TestCase): self.db.commit() -# def test_SQLTABLE(self): -# rows = self.db(self.db.auth_user.id > 0).select(self.db.auth_user.ALL) -# sqltable = SQLTABLE(rows) -# self.assertEqual(sqltable.xml(), '
auth_user.idauth_user.first_nameauth_user.last_nameauth_user.emailauth_user.usernameauth_user.passwordauth_user.registration_keyauth_user.reset_password_keyauth_user.registration_id
1BartSimpsonuser1@test.comuser1password_123NoneNone
') + def test_SQLTABLE(self): + rows = self.db(self.db.auth_user.id > 0).select(self.db.auth_user.ALL) + sqltable = SQLTABLE(rows) + self.assertEqual(sqltable.xml(), b'
auth_user.idauth_user.first_nameauth_user.last_nameauth_user.emailauth_user.usernameauth_user.passwordauth_user.registration_keyauth_user.reset_password_keyauth_user.registration_id
1BartSimpsonuser1@test.comuser1password_123NoneNone
') # class TestExportClass(unittest.TestCase):