From 92b3c8f777f40bb9ee586b9f28d882e8b90f47e9 Mon Sep 17 00:00:00 2001 From: Hardirc Date: Sat, 16 Apr 2016 19:35:06 -0400 Subject: [PATCH] New Auth tests --- gluon/tests/test_tools.py | 47 +++++++++++++++++++++++++++++++++++++++ gluon/tools.py | 4 +--- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/gluon/tests/test_tools.py b/gluon/tests/test_tools.py index 38c05170..d30c7003 100644 --- a/gluon/tests/test_tools.py +++ b/gluon/tests/test_tools.py @@ -516,6 +516,49 @@ class TestAuth(unittest.TestCase): pass return + def test_log_event(self): + self.auth.login_user(self.db(self.db.auth_user.username == 'bart').select().first()) # bypass login_bare() + bart_id = self.db(self.db.auth_user.username == 'bart').select(self.db.auth_user.id).first().id + # user logged in + self.auth.log_event(description='some_log_event_description_%(var1)s', + vars={"var1": "var1"}, + origin='log_event_test_1') + rtn = self.db(self.db.auth_event.origin == 'log_event_test_1' + ).select(*[self.db.auth_event[f] + for f in self.db.auth_event.fields if f not in ('id', 'time_stamp')]).first().as_dict() + self.assertEqual(set(rtn.items()), set({'origin': 'log_event_test_1', + 'client_ip': None, + 'user_id': bart_id, + 'description': 'some_log_event_description_var1'}.items())) + # user not logged + self.auth.logout_bare() + self.auth.log_event(description='some_log_event_description_%(var2)s', + vars={"var2": "var2"}, + origin='log_event_test_2') + rtn = self.db(self.db.auth_event.origin == 'log_event_test_2' + ).select(*[self.db.auth_event[f] + for f in self.db.auth_event.fields if f not in ('id', 'time_stamp')]).first().as_dict() + self.assertEqual(set(rtn.items()), set({'origin': 'log_event_test_2', + 'client_ip': None, + 'user_id': None, + 'description': 'some_log_event_description_var2'}.items())) + # no logging tests + self.auth.settings.logging_enabled = False + count_log_event_test_before = self.db(self.db.auth_event.id > 0).count() + self.auth.log_event(description='some_log_event_description_%(var3)s', + vars={"var3": "var3"}, + origin='log_event_test_3') + count_log_event_test_after = self.db(self.db.auth_event.id > 0).count() + self.assertEqual(count_log_event_test_after, count_log_event_test_before) + self.auth.settings.logging_enabled = True + count_log_event_test_before = self.db(self.db.auth_event.id > 0).count() + self.auth.log_event(description=None, + vars={"var4": "var4"}, + origin='log_event_test_4') + count_log_event_test_after = self.db(self.db.auth_event.id > 0).count() + self.assertEqual(count_log_event_test_after, count_log_event_test_before) + # TODO: Corner case translated description... + def test_get_or_create_user(self): self.db.auth_user.insert(email='user1@test.com', username='user1', password='password_123') self.db.commit() @@ -663,6 +706,10 @@ class TestAuth(unittest.TestCase): self.current.request.ajax = 'facke_ajax_request' self.assertRaisesRegexp(HTTP, "403*", self.auth.not_authorized) + def test_add_group(self): + self.assertEqual(self.auth.add_group(role='a_group', description='a_group_role_description'), + self.db(self.db.auth_group.role == 'a_group').select(self.db.auth_group.id).first().id) + def test_del_group(self): bart_group_id = 1 # Should be group 1, 'user_1' self.assertEqual(self.auth.del_group(group_id=bart_group_id), None) diff --git a/gluon/tools.py b/gluon/tools.py index 1b40b2db..e8cd4d10 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -2527,9 +2527,7 @@ class Auth(object): # log messages should not be translated if type(description).__name__ == 'lazyT': description = description.m - self.table_event().insert( - description=str(description % vars), - origin=origin, user_id=user_id) + self.table_event().insert(description=str(description % vars), origin=origin, user_id=user_id) def get_or_create_user(self, keys, update_fields=['email'], login=True, get=True):