Refactor TestAuth() with setUp() and add test case
This commit is contained in:
+70
-17
@@ -174,8 +174,7 @@ class TestMail(unittest.TestCase):
|
||||
@unittest.skipIf(IS_IMAP, "TODO: Imap raises 'Connection refused'")
|
||||
class TestAuth(unittest.TestCase):
|
||||
|
||||
def testRun(self):
|
||||
# setup
|
||||
def setUp(self):
|
||||
request = Request(env={})
|
||||
request.application = 'a'
|
||||
request.controller = 'c'
|
||||
@@ -190,38 +189,92 @@ class TestAuth(unittest.TestCase):
|
||||
current.response = response
|
||||
current.session = session
|
||||
current.T = T
|
||||
db = DAL(DEFAULT_URI, check_reserved=['all'])
|
||||
auth = Auth(db)
|
||||
auth.define_tables(username=True, signature=False)
|
||||
self.assertTrue('auth_user' in db)
|
||||
self.assertTrue('auth_group' in db)
|
||||
self.assertTrue('auth_membership' in db)
|
||||
self.assertTrue('auth_permission' in db)
|
||||
self.assertTrue('auth_event' in db)
|
||||
db.define_table('t0', Field('tt'), auth.signature)
|
||||
auth.enable_record_versioning(db)
|
||||
self.assertTrue('t0_archive' in db)
|
||||
self.db = DAL(DEFAULT_URI, check_reserved=['all'])
|
||||
self.auth = Auth(self.db)
|
||||
self.auth.define_tables(username=True, signature=False)
|
||||
self.db.define_table('t0', Field('tt'), self.auth.signature)
|
||||
self.auth.enable_record_versioning(self.db)
|
||||
# Create a user
|
||||
self.db.auth_user.insert(first_name='Bart',
|
||||
last_name='Simpson',
|
||||
username='user1',
|
||||
email='user1@test.com',
|
||||
password='password_123',
|
||||
registration_key=None,
|
||||
registration_id=None)
|
||||
|
||||
self.db.commit()
|
||||
|
||||
def test_assert_setup(self):
|
||||
self.assertEqual(self.db(self.db.auth_user.username == 'user1').select().first()['id'], 1)
|
||||
self.assertTrue('auth_user' in self.db)
|
||||
self.assertTrue('auth_group' in self.db)
|
||||
self.assertTrue('auth_membership' in self.db)
|
||||
self.assertTrue('auth_permission' in self.db)
|
||||
self.assertTrue('auth_event' in self.db)
|
||||
|
||||
def test_enable_record_versioning(self):
|
||||
self.assertTrue('t0_archive' in self.db)
|
||||
|
||||
def test_basic_blank_forms(self):
|
||||
for f in ['login', 'register', 'retrieve_password',
|
||||
'retrieve_username']:
|
||||
html_form = getattr(auth, f)().xml()
|
||||
html_form = getattr(self.auth, f)().xml()
|
||||
self.assertTrue('name="_formkey"' in html_form)
|
||||
|
||||
for f in ['logout', 'verify_email', 'reset_password',
|
||||
'change_password', 'profile', 'groups']:
|
||||
self.assertRaisesRegexp(HTTP, "303*", getattr(auth, f))
|
||||
self.assertRaisesRegexp(HTTP, "303*", getattr(self.auth, f))
|
||||
|
||||
self.assertRaisesRegexp(HTTP, "401*", auth.impersonate)
|
||||
self.assertRaisesRegexp(HTTP, "401*", self.auth.impersonate)
|
||||
|
||||
try:
|
||||
for t in ['t0_archive', 't0', 'auth_cas', 'auth_event',
|
||||
'auth_membership', 'auth_permission', 'auth_group',
|
||||
'auth_user']:
|
||||
db[t].drop()
|
||||
self.db[t].drop()
|
||||
except SyntaxError as e:
|
||||
# GAE doesn't support drop
|
||||
pass
|
||||
return
|
||||
|
||||
def test_get_or_create_user(self):
|
||||
self.db.auth_user.insert(email='user1@test.com', password='password_123')
|
||||
self.db.commit()
|
||||
# True case
|
||||
self.assertEqual(self.auth.get_or_create_user({'email': 'user1@test.com',
|
||||
'username': 'user1'})['username'], 'user1')
|
||||
# user2 doesn't exist yet and get created
|
||||
self.assertEqual(self.auth.get_or_create_user({'email': 'user2@test.com',
|
||||
'username': 'user2'})['username'], 'user2')
|
||||
# False case
|
||||
self.assertEqual(self.auth.get_or_create_user({'email': ''}), None)
|
||||
self.db.auth_user.truncate()
|
||||
self.db.commit()
|
||||
|
||||
def test_login_bare(self):
|
||||
# The following test case should succeed but failed as I never received the user record but False
|
||||
# TODO: Make this test pass
|
||||
# self.assertEqual(self.auth.login_bare(username='user1', password='password_123')['username'], 'user1')
|
||||
# Failing login because bad_password
|
||||
self.assertEqual(self.auth.login_bare(username='user1', password='bad_password'), False)
|
||||
|
||||
def test_register_bare(self):
|
||||
# failing register_bare user already exist
|
||||
self.assertEqual(self.auth.register_bare(username='user1', password='wrong_password'), False)
|
||||
# successful register_bare
|
||||
self.assertEqual(self.auth.register_bare(username='user2',
|
||||
email='user2@test.com',
|
||||
password='password_123')['username'], 'user2')
|
||||
# raise ValueError
|
||||
self.assertRaises(ValueError, self.auth.register_bare,
|
||||
**dict(wrong_field_name='user3', password='password_123'))
|
||||
# raise ValueError wrong email
|
||||
self.assertRaises(ValueError, self.auth.register_bare,
|
||||
**dict(email='user4@', password='password_123'))
|
||||
self.db.auth_user.truncate()
|
||||
self.db.commit()
|
||||
|
||||
|
||||
# TODO: class TestCrud(unittest.TestCase):
|
||||
# It deprecated so far from a priority
|
||||
|
||||
Reference in New Issue
Block a user