##// END OF EJS Templates
cleanup code of get archive for repositories
cleanup code of get archive for repositories

File last commit:

r2248:72542dc5 beta
r2267:b872bc10 beta
Show More
test_login.py
267 lines | 12.3 KiB | text/x-python | PythonLexer
fixed bug in forms found due to testing,...
r728 # -*- coding: utf-8 -*-
renamed project to rhodecode
r547 from rhodecode.tests import *
test fixes
r1732 from rhodecode.model.db import User, Notification
utils/conf...
r2109 from rhodecode.lib.utils2 import generate_api_key
renamed project to rhodecode
r547 from rhodecode.lib.auth import check_password
test fixes
r1732 from rhodecode.model.meta import Session
renamed project to rhodecode
r547
utils/conf...
r2109
renamed project to rhodecode
r547 class TestLoginController(TestController):
test fixes
r1732 def tearDown(self):
for n in Notification.query().all():
commit less models...
r1749 Session.delete(n)
test fixes
r1732
commit less models...
r1749 Session.commit()
test fixes
r1732 self.assertEqual(Notification.query().all(), [])
renamed project to rhodecode
r547 def test_index(self):
response = self.app.get(url(controller='login', action='index'))
Fixes tests
r1418 self.assertEqual(response.status, '200 OK')
renamed project to rhodecode
r547 # Test response...
def test_login_admin_ok(self):
response = self.app.post(url(controller='login', action='index'),
{'username':'test_admin',
'password':'test12'})
Fixes tests
r1418 self.assertEqual(response.status, '302 Found')
reduce cookie size for better support of client side sessions
r1718 self.assertEqual(response.session['rhodecode_user'].get('username') ,
Fixes tests
r1418 'test_admin')
renamed project to rhodecode
r547 response = response.follow()
Fixes tests
r1418 self.assertTrue('%s repository' % HG_REPO in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_login_regular_ok(self):
response = self.app.post(url(controller='login', action='index'),
{'username':'test_regular',
'password':'test12'})
Fixes tests
r1418
self.assertEqual(response.status, '302 Found')
reduce cookie size for better support of client side sessions
r1718 self.assertEqual(response.session['rhodecode_user'].get('username') ,
Fixes tests
r1418 'test_regular')
renamed project to rhodecode
r547 response = response.follow()
Fixes tests
r1418 self.assertTrue('%s repository' % HG_REPO in response.body)
self.assertTrue('<a title="Admin" href="/_admin">' not in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_login_ok_came_from(self):
test_came_from = '/_admin/users'
Fixes tests
r1418 response = self.app.post(url(controller='login', action='index',
came_from=test_came_from),
renamed project to rhodecode
r547 {'username':'test_admin',
'password':'test12'})
Fixes tests
r1418 self.assertEqual(response.status, '302 Found')
renamed project to rhodecode
r547 response = response.follow()
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
Fixes tests
r1418 self.assertEqual(response.status, '200 OK')
self.assertTrue('Users administration' in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_login_short_password(self):
response = self.app.post(url(controller='login', action='index'),
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 {'username':'test_admin',
'password':'as'})
self.assertEqual(response.status, '200 OK')
Fixes tests
r1418
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 self.assertTrue('Enter 3 characters or more' in response.body)
renamed project to rhodecode
r547
def test_login_wrong_username_password(self):
response = self.app.post(url(controller='login', action='index'),
{'username':'error',
'password':'test12'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
Fixes tests
r1418 self.assertTrue('invalid user name' in response.body)
self.assertTrue('invalid password' in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
some tests update
r723 #==========================================================================
# REGISTRATIONS
#==========================================================================
renamed project to rhodecode
r547 def test_register(self):
response = self.app.get(url(controller='login', action='register'))
Fixes tests
r1418 self.assertTrue('Sign Up to RhodeCode' in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_register_err_same_username(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'test_admin',
some tests update
r723 'password':'test12',
'password_confirmation':'test12',
renamed project to rhodecode
r547 'email':'goodmail@domain.com',
'name':'test',
'lastname':'test'})
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
self.assertTrue('This username already exists' in response.body)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
added test for username and email case senstitive validators,...
r745 def test_register_err_same_email(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'test_admin_0',
'password':'test12',
'password_confirmation':'test12',
'email':'test_admin@mail.com',
'name':'test',
'lastname':'test'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixed issue with empty APIKEYS on registration #438
r2248 response.mustcontain('This e-mail address is already taken')
added test for username and email case senstitive validators,...
r745
def test_register_err_same_email_case_sensitive(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'test_admin_1',
'password':'test12',
'password_confirmation':'test12',
'email':'TesT_Admin@mail.COM',
'name':'test',
'lastname':'test'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixed issue with empty APIKEYS on registration #438
r2248 response.mustcontain('This e-mail address is already taken')
added test for username and email case senstitive validators,...
r745
renamed project to rhodecode
r547 def test_register_err_wrong_data(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'xs',
some tests update
r723 'password':'test',
'password_confirmation':'test',
renamed project to rhodecode
r547 'email':'goodmailm',
'name':'test',
'lastname':'test'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixed issue with empty APIKEYS on registration #438
r2248 response.mustcontain('An email address must contain a single @')
response.mustcontain('Enter a value 6 characters long or more')
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
added test for username and email case senstitive validators,...
r745 def test_register_err_username(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'error user',
'password':'test12',
'password_confirmation':'test12',
'email':'goodmailm',
'name':'test',
'lastname':'test'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixed issue with empty APIKEYS on registration #438
r2248 response.mustcontain('An email address must contain a single @')
response.mustcontain('Username may only contain '
fixed tests
r1021 'alphanumeric characters underscores, '
'periods or dashes and must begin with '
fixed issue with empty APIKEYS on registration #438
r2248 'alphanumeric character')
added test for username and email case senstitive validators,...
r745
def test_register_err_case_sensitive(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'Test_Admin',
'password':'test12',
'password_confirmation':'test12',
'email':'goodmailm',
'name':'test',
'lastname':'test'})
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixes #260 Put repo in group, then move group to another group -> repo becomes unavailable
r1539 self.assertTrue('An email address must contain a single @' in response.body)
self.assertTrue('This username already exists' in response.body)
added test for username and email case senstitive validators,...
r745
some tests update
r723 def test_register_special_chars(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'xxxaxn',
'password':'ąćźżąśśśś',
'password_confirmation':'ąćźżąśśśś',
fixed bug in forms found due to testing,...
r728 'email':'goodmailm@test.plx',
some tests update
r723 'name':'test',
fixed bug in forms found due to testing,...
r728 'lastname':'test'})
some tests update
r723
Fixes tests
r1418 self.assertEqual(response.status , '200 OK')
fixes #260 Put repo in group, then move group to another group -> repo becomes unavailable
r1539 self.assertTrue('Invalid characters in password' in response.body)
some tests update
r723
def test_register_password_mismatch(self):
response = self.app.post(url(controller='login', action='register'),
{'username':'xs',
'password':'123qwe',
'password_confirmation':'qwe123',
fixed bug in forms found due to testing,...
r728 'email':'goodmailm@test.plxa',
some tests update
r723 'name':'test',
fixed bug in forms found due to testing,...
r728 'lastname':'test'})
some tests update
r723
fixed issue with empty APIKEYS on registration #438
r2248 self.assertEqual(response.status, '200 OK')
response.mustcontain('Passwords do not match')
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_register_ok(self):
username = 'test_regular4'
password = 'qweqwe'
email = 'marcin@test.com'
name = 'testname'
lastname = 'testlastname'
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 response = self.app.post(url(controller='login', action='register'),
{'username':username,
'password':password,
some tests update
r723 'password_confirmation':password,
renamed project to rhodecode
r547 'email':email,
'name':name,
fixed issue with empty APIKEYS on registration #438
r2248 'lastname':lastname,
'admin':True}) # This should be overriden
self.assertEqual(response.status, '302 Found')
self.checkSessionFlash(response, 'You have successfully registered into rhodecode')
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
commit less models...
r1749 ret = self.Session.query(User).filter(User.username == 'test_regular4').one()
fixed issue with empty APIKEYS on registration #438
r2248 self.assertEqual(ret.username, username)
self.assertEqual(check_password(password, ret.password), True)
self.assertEqual(ret.email, email)
self.assertEqual(ret.name, name)
self.assertEqual(ret.lastname, lastname)
self.assertNotEqual(ret.api_key, None)
self.assertEqual(ret.admin, False)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
def test_forgot_password_wrong_mail(self):
fixed issue with empty APIKEYS on registration #438
r2248 response = self.app.post(
url(controller='login', action='password_reset'),
{'email': 'marcin@wrongmail.org',}
)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
fixed issue with empty APIKEYS on registration #438
r2248 response.mustcontain("This e-mail address doesn't exist")
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def test_forgot_password(self):
Fixes tests
r1418 response = self.app.get(url(controller='login',
action='password_reset'))
fixed issue with empty APIKEYS on registration #438
r2248 self.assertEqual(response.status, '200 OK')
renamed project to rhodecode
r547
username = 'test_password_reset_1'
password = 'qweqwe'
email = 'marcin@python-works.com'
name = 'passwd'
lastname = 'reset'
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
Fixes tests
r1418 new = User()
new.username = username
new.password = password
new.email = email
new.name = name
new.lastname = lastname
new.api_key = generate_api_key(username)
commit less models...
r1749 self.Session.add(new)
self.Session.commit()
Fixes tests
r1418
response = self.app.post(url(controller='login',
action='password_reset'),
{'email':email, })
self.checkSessionFlash(response, 'Your password reset link was sent')
response = response.follow()
# BAD KEY
key = "bad"
response = self.app.get(url(controller='login',
action='password_reset_confirmation',
key=key))
self.assertEqual(response.status, '302 Found')
self.assertTrue(response.location.endswith(url('reset_password')))
# GOOD KEY
Refactoring of model get functions
r1530 key = User.get_by_username(username).api_key
Fixes tests
r1418 response = self.app.get(url(controller='login',
action='password_reset_confirmation',
key=key))
self.assertEqual(response.status, '302 Found')
self.assertTrue(response.location.endswith(url('login_home')))
self.checkSessionFlash(response,
('Your password reset was successful, '
'new password has been sent to your email'))
response = response.follow()