From b5c8b3ad250e1848adce0f8b13fd21442ccb6069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Tue, 12 Apr 2016 15:10:14 +0100 Subject: [PATCH 1/4] closes #1286 --- gluon/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/tools.py b/gluon/tools.py index 171cf0e7..88511b21 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -4512,7 +4512,7 @@ class Auth(object): ignore_common_filters=True).select( limitby=(0, 1), orderby_on_limitby=False).first() if record: - if hasattr(record, 'is_active') and not record.is_ctive: + if hasattr(record, 'is_active') and not record.is_active: record.update_record(is_active=True) id = record.id else: From 00c65ad160b4a5c51c7fa4a21026b8c694dc26d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Tue, 12 Apr 2016 15:28:48 +0100 Subject: [PATCH 2/4] Complete coverage for Mail.Attachment --- gluon/tests/test_tools.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gluon/tests/test_tools.py b/gluon/tests/test_tools.py index 32b08fe4..f7173ca0 100644 --- a/gluon/tests/test_tools.py +++ b/gluon/tests/test_tools.py @@ -176,6 +176,19 @@ class TestMail(unittest.TestCase): attachment = parsed_msg.get_payload(1).get_payload(decode=True) with open(module_file, 'rb') as mf: self.assertEqual(attachment.decode('utf-8'), mf.read().decode('utf-8')) + # Test missing attachment name error + stream = open(module_file) + self.assertRaises(Exception, lambda *args, **kwargs: Mail.Attachment(*args, **kwargs), stream) + stream.close() + # Test you can define content-id and content type + self.assertTrue(mail.send(to=['somebody@example.com'], + subject='hello', + message='world', + attachments=Mail.Attachment(module_file, content_id='trololo', content_type='tra/lala'))) + message = TestMail.DummySMTP.inbox.pop() + self.assertTrue('Content-Type: tra/lala' in message.payload) + self.assertTrue('Content-Id: ' in message.payload) + # class TestRecaptcha(unittest.TestCase): # def test_Recaptcha(self): From 9ead66b6db836ad644731e3f14f0ef0f4e249b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Tue, 12 Apr 2016 16:00:33 +0100 Subject: [PATCH 3/4] test IS_IN_DB label is a Field and self.sort = True --- gluon/tests/test_validators.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gluon/tests/test_validators.py b/gluon/tests/test_validators.py index 76c8c6c0..b1a86282 100644 --- a/gluon/tests/test_validators.py +++ b/gluon/tests/test_validators.py @@ -230,6 +230,8 @@ class TestValidators(unittest.TestCase): self.assertEqual(rtn, ( ('%d,%d' % (george_id, costanza_id)).split(','), 'oops')) rtn = IS_IN_DB(db, db.person.id, '%(name)s', error_message='oops').options(zero=False) self.assertEqual(sorted(rtn), [('%d' % george_id, 'george'), ('%d' % costanza_id, 'costanza')]) + rtn = IS_IN_DB(db, db.person.id, db.person.name, error_message='oops', sort=True).options(zero=True) + self.assertEqual(sorted(rtn), [('', ''), ('%d' % george_id, 'george'), ('%d' % costanza_id, 'costanza')]) db.person.drop() def test_IS_NOT_IN_DB(self): From 9552d9d6d024fb2e9c70e5242e7d330fc1a0d746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonel=20C=C3=A2mara?= Date: Tue, 12 Apr 2016 16:28:33 +0100 Subject: [PATCH 4/4] fixed sort=True test --- gluon/tests/test_validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/tests/test_validators.py b/gluon/tests/test_validators.py index b1a86282..34e8b09d 100644 --- a/gluon/tests/test_validators.py +++ b/gluon/tests/test_validators.py @@ -231,7 +231,7 @@ class TestValidators(unittest.TestCase): rtn = IS_IN_DB(db, db.person.id, '%(name)s', error_message='oops').options(zero=False) self.assertEqual(sorted(rtn), [('%d' % george_id, 'george'), ('%d' % costanza_id, 'costanza')]) rtn = IS_IN_DB(db, db.person.id, db.person.name, error_message='oops', sort=True).options(zero=True) - self.assertEqual(sorted(rtn), [('', ''), ('%d' % george_id, 'george'), ('%d' % costanza_id, 'costanza')]) + self.assertEqual(rtn, [('', ''), ('%d' % costanza_id, 'costanza'), ('%d' % george_id, 'george')]) db.person.drop() def test_IS_NOT_IN_DB(self):