tests: certmap: Add test for user-{add,remove}-certmap

https://pagure.io/freeipa/issue/7105

Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
This commit is contained in:
David Kupka 2017-02-09 14:02:12 +01:00 committed by Tomas Krizek
parent 7bce62d5d4
commit bda3dd722b
No known key found for this signature in database
GPG Key ID: 22A2A94B5E49415A
2 changed files with 68 additions and 1 deletions

View File

@ -11,6 +11,7 @@ from ipapython.dn import DN
from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test
from ipatests.test_xmlrpc.tracker.certmap_plugin import (CertmapruleTracker,
CertmapconfigTracker)
from ipatests.test_xmlrpc.tracker.user_plugin import UserTracker
from ipatests.util import assert_deepequal
from ipatests.util import change_principal, unlock_principal_password
@ -144,6 +145,64 @@ class TestConfig(XMLRPC_test):
certmap_config.retrieve()
certmapdata_create_params = {
u'issuer': u'CN=CA,O=EXAMPLE.ORG',
u'subject': u'CN={},O=EXAMPLE.ORG'.format(CERTMAP_USER),
u'ipacertmapdata': (u'X509:<I>O=EXAMPLE.ORG,CN=CA'
u'<S>O=EXAMPLE.ORG,CN={}'.format(CERTMAP_USER)),
u'certificate': (
u'MIICwzCCAaugAwIBAgICP9wwDQYJKoZIhvcNAQELBQAwIzEUMBIGA1UEChMLRVhB\n\r'
'TVBMRS5PUkcxCzAJBgNVBAMTAkNBMB4XDTE3MDIxMDEzMjAyNVoXDTE3MDUxMDEz\n\r'
'MjAyNVowJjEUMBIGA1UEChMLRVhBTVBMRS5PUkcxDjAMBgNVBAMTBWN1c2VyMIIB\n\r'
'IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlEBxZ6RULSZZ+nW1YfJUfCaX\n\r'
'wHIIWJeAoU98m7dbdUtkZMgLCPXiceIkCkcHu0DLS3wYlsL6VDG+0nIpT56Qkxph\n\r'
'+qpWGdVptnuVZ5dEthbluoopzxpkAAz3ywM3NqfTCM78G9GQvftUZEOlwnfyEBbY\n\r'
'XXs2wBhynrVTZcpL+ORXMpzVAallU63/YUExNvBzHlqdGHy+pPJSw1gsRTpLm75p\n\r'
'36r3bn/5cnIih1WUygC0WnjxXQwqOdGUauBp/Z8JVRuLSe8qbPfcl/voQGnSt3u2\n\r'
'9CFkDKpMMp6pv/3RbnOmMwSZGO0/n4G13qEdoneIghF1SE9qaxFGWk8mSDYc5QID\n\r'
'AQABMA0GCSqGSIb3DQEBCwUAA4IBAQCKrvO7AUCt9YOyJ0RioDxgQZVJqQ0/E877\n\r'
'vBP3HPwN0xkiGgASKtEDi3uLWGQfDgJFX5qXtK1qu7yiM86cbKq9PlkLTC6UowjP\n\r'
'iaFAaVBwbS3nLVo731gn5cCJqZ0QrDt2NDiXaGxo4tBcqc/Y/taw5Py3f59tMDk6\n\r'
'TnTmKmFnI+hB4+oxZhpcFj6bX35XMJXnRyekraE5VWtSbq57SXiRnINW4gNS5B6w\n\r'
'dYUGo551tfFq+DOnSl0H7NnnL3q4VzCH/1AMOownorgVsw4LqMgY0NiaD/yqJyKe\n\r'
'SggODAjRznNYx/Sk/At/eStqDxMHjP9X8AucGFIt76bEwHAAL2uu\n'
),
}
@pytest.fixture
def certmap_user(request):
user = UserTracker(CERTMAP_USER, u'certmap', u'user')
return user.make_fixture(request)
def addcertmap_id(options):
if options:
return u', '.join([k for k in options])
else:
return u' '
class TestAddRemoveCertmap(XMLRPC_test):
@pytest.mark.parametrize(
'options', [
dict(o) for l in range(len(certmapdata_create_params)+1)
for o in itertools.combinations(
certmapdata_create_params.items(), l)
],
ids=addcertmap_id,
)
def test_add_certmap(self, options, certmap_user):
certmap_user.ensure_exists()
certmap_user.add_certmap(**options)
certmap_user.ensure_missing()
def test_remove_certmap(self, certmap_user):
certmap_user.ensure_exists()
certmap_user.add_certmap(ipacertmapdata=u'rawdata')
certmap_user.remove_certmap(ipacertmapdata=u'rawdata')
class EWE(object):
"""
Context manager that checks the outcome of wrapped statement executed

View File

@ -13,12 +13,13 @@ from ipatests.test_xmlrpc.xmlrpc_test import (
fuzzy_digits, fuzzy_uuid, raises_exact)
from ipatests.test_xmlrpc.tracker.base import Tracker
from ipatests.test_xmlrpc.tracker.kerberos_aliases import KerberosAliasMixin
from ipatests.test_xmlrpc.tracker.certmapdata import CertmapdataMixin
if six.PY3:
unicode = str
class UserTracker(KerberosAliasMixin, Tracker):
class UserTracker(CertmapdataMixin, KerberosAliasMixin, Tracker):
""" Class for host plugin like tests """
retrieve_keys = {
@ -530,3 +531,10 @@ class UserTracker(KerberosAliasMixin, Tracker):
def _make_remove_alias_cmd(self):
return self.make_command('user_remove_principal', self.name)
# Certificate identity mapping methods
def _make_add_certmap(self):
return self.make_command('user_add_certmapdata', self.name)
def _make_remove_certmap(self):
return self.make_command('user_remove_certmapdata', self.name)