summaryrefslogtreecommitdiffstats
path: root/ipatests/test_xmlrpc
diff options
context:
space:
mode:
Diffstat (limited to 'ipatests/test_xmlrpc')
-rw-r--r--ipatests/test_xmlrpc/test_add_remove_cert_cmd.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py b/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py
index edc97f07b..7706133ed 100644
--- a/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py
+++ b/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py
@@ -11,6 +11,30 @@ from ipapython.dn import DN
from ipatests.util import assert_deepequal, raises
from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test
from ipatests.test_xmlrpc.testcert import get_testcert
+from ipatests.test_xmlrpc.tracker.user_plugin import UserTracker
+from ipatests.test_xmlrpc.tracker.idview_plugin import IdviewTracker
+
+
+@pytest.fixture(scope='class')
+def idview(request):
+ tracker = IdviewTracker(cn=u'MyView')
+ return tracker.make_fixture(request)
+
+
+@pytest.fixture(scope='class')
+def testuser(request):
+ tracker = UserTracker(name=u'testuser', givenname=u'John', sn=u'Donne')
+ return tracker.make_fixture(request)
+
+
+@pytest.fixture(scope='class')
+def cert1(request):
+ return get_testcert(DN(('CN', u'testuser')), u'testuser')
+
+
+@pytest.fixture(scope='class')
+def cert2(request):
+ return get_testcert(DN(('CN', u'testuser')), u'testuser')
@pytest.mark.tier1
@@ -352,3 +376,61 @@ class TestCertManipCmdService(CertManipCmdTestBase):
api.Command.host_del(TestCertManipCmdHost.entity_pkey)
except errors.NotFound:
pass
+
+
+@pytest.mark.tier1
+class TestCertManipIdOverride(XMLRPC_test):
+ entity_subject = u'testuser'
+ entity_principal = u'testuser'
+
+ def test_00_add_idoverrideuser(self, testuser, idview):
+ testuser.create()
+ idview.create()
+ idview.idoverrideuser_add(testuser)
+
+ def test_01_add_cert_to_idoverride(self, testuser, idview, cert1):
+ assert_deepequal(
+ dict(usercertificate=(base64.b64decode(cert1),),
+ summary=u'Added certificates to'
+ ' idoverrideuser \"%s\"' % testuser.name,
+ value=testuser.name,
+ ),
+ idview.add_cert_to_idoverrideuser(testuser.name, cert1)
+ )
+
+ def test_02_add_second_cert_to_idoverride(self, testuser,
+ idview, cert1, cert2):
+ assert_deepequal(
+ dict(
+ usercertificate=(base64.b64decode(cert1),
+ base64.b64decode(cert2)),
+ summary=u'Added certificates to'
+ ' idoverrideuser \"%s\"' % testuser.name,
+ value=testuser.name,
+ ),
+ idview.add_cert_to_idoverrideuser(testuser.name, cert2)
+ )
+
+ def test_03_add_the_same_cert_to_idoverride(self, testuser,
+ idview, cert1, cert2):
+ pytest.raises(errors.ExecutionError,
+ idview.add_cert_to_idoverrideuser,
+ testuser.name, cert1)
+
+ def test_04_user_show_displays_cert(self, testuser, idview, cert1, cert2):
+ result = api.Command.idoverrideuser_show(idview.cn, testuser.name)
+ assert_deepequal((base64.b64decode(cert1),
+ base64.b64decode(cert2)),
+ result['result']['usercertificate']
+ )
+
+ def test_05_remove_cert(self, testuser, idview, cert1, cert2):
+ assert_deepequal(
+ dict(
+ usercertificate=(base64.b64decode(cert2),),
+ value=testuser.name,
+ summary=u'Removed certificates from'
+ ' idoverrideuser "%s"' % testuser.name
+ ),
+ idview.del_cert_from_idoverrideuser(testuser.name, cert1)
+ )