mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add basic tests for "migration" end point
Fixes: https://pagure.io/freeipa/issue/7641 Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com> Reviewed-By: Petr Vobornik <pvoborni@redhat.com> Reviewed-By: Serhii Tsymbaliuk <stsymbal@localhost.localdomain>
This commit is contained in:
parent
9f6d5322dd
commit
4088b283b4
92
ipatests/test_ipaserver/test_migratepw.py
Normal file
92
ipatests/test_ipaserver/test_migratepw.py
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2018 FreeIPA Contributors see COPYING for license
|
||||||
|
#
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from ipatests.test_ipaserver.httptest import Unauthorized_HTTP_test
|
||||||
|
from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test
|
||||||
|
from ipatests.util import assert_equal
|
||||||
|
from ipalib import api, errors
|
||||||
|
|
||||||
|
testuser = u'tuser'
|
||||||
|
password = u'password'
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.tier1
|
||||||
|
class test_migratepw(XMLRPC_test, Unauthorized_HTTP_test):
|
||||||
|
"""
|
||||||
|
Test password migrate end point
|
||||||
|
"""
|
||||||
|
app_uri = '/ipa/migration/migration.py'
|
||||||
|
|
||||||
|
def setup(self):
|
||||||
|
"""
|
||||||
|
Prepare for tests
|
||||||
|
"""
|
||||||
|
api.Command['user_add'](uid=testuser, givenname=u'Test', sn=u'User')
|
||||||
|
api.Command['passwd'](testuser, password=password)
|
||||||
|
|
||||||
|
def teardown(self):
|
||||||
|
"""
|
||||||
|
Clean up
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
api.Command['user_del']([testuser])
|
||||||
|
except errors.NotFound:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def _migratepw(self, user, password, method='POST'):
|
||||||
|
"""
|
||||||
|
Make password migrate request to server
|
||||||
|
"""
|
||||||
|
return self.send_request(method, params={'username': str(user),
|
||||||
|
'password': str(password)},
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_bad_params(self):
|
||||||
|
"""
|
||||||
|
Test against bad (missing, empty) params
|
||||||
|
"""
|
||||||
|
for params in (None, # no params
|
||||||
|
{'username': 'foo'}, # missing password
|
||||||
|
{'password': 'bar'}, # missing username
|
||||||
|
{'username': '',
|
||||||
|
'password': ''}, # empty options
|
||||||
|
{'username': '',
|
||||||
|
'password': 'bar'}, # empty username
|
||||||
|
{'username': 'foo',
|
||||||
|
'password': ''}, # empty password
|
||||||
|
):
|
||||||
|
response = self.send_request(params=params)
|
||||||
|
assert_equal(response.status, 400)
|
||||||
|
assert_equal(response.reason, 'Bad Request')
|
||||||
|
|
||||||
|
def test_not_post_method(self):
|
||||||
|
"""
|
||||||
|
Test redirection of non POST request
|
||||||
|
"""
|
||||||
|
response = self._migratepw(testuser, password, method='GET')
|
||||||
|
|
||||||
|
assert_equal(response.status, 302)
|
||||||
|
assert response.msg
|
||||||
|
assert_equal(response.msg['Location'], 'index.html')
|
||||||
|
|
||||||
|
def test_invalid_password(self):
|
||||||
|
"""
|
||||||
|
Test invalid password
|
||||||
|
"""
|
||||||
|
response = self._migratepw(testuser, 'wrongpassword')
|
||||||
|
|
||||||
|
assert_equal(response.status, 200)
|
||||||
|
assert_equal(response.getheader('X-IPA-Migrate-Result'),
|
||||||
|
'invalid-password')
|
||||||
|
|
||||||
|
def test_migration_success(self):
|
||||||
|
"""
|
||||||
|
Test successful migration scenario
|
||||||
|
"""
|
||||||
|
response = self._migratepw(testuser, password)
|
||||||
|
|
||||||
|
assert_equal(response.status, 200)
|
||||||
|
assert_equal(response.getheader('X-IPA-Migrate-Result'), 'ok')
|
Loading…
Reference in New Issue
Block a user