URL: https://github.com/freeipa/freeipa/pull/225 Author: ofayans Title: #225: tests: Added basic tests for certs in idoverrides Action: opened
PR body: """ https://fedorahosted.org/freeipa/ticket/6412 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/225/head:pr225 git checkout pr225
From 5ee3edd752f347e873e51c01ef853fb1c5e3ffd9 Mon Sep 17 00:00:00 2001 From: Oleg Fayans <ofay...@redhat.com> Date: Fri, 21 Oct 2016 10:53:19 +0200 Subject: [PATCH] tests: Added basic tests for certs in idoverrides https://fedorahosted.org/freeipa/ticket/6412 --- ipatests/test_xmlrpc/test_add_remove_cert_cmd.py | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py b/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py index edc97f0..cc19032 100644 --- a/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py +++ b/ipatests/test_xmlrpc/test_add_remove_cert_cmd.py @@ -352,3 +352,94 @@ def delete_entity(cls): api.Command.host_del(TestCertManipCmdHost.entity_pkey) except errors.NotFound: pass + + +@pytest.mark.tier1 +class TestCertManipIdOverride(XMLRPC_test): + idview = u'testview' + testuser = u'testuser' + entity_subject = testuser + entity_principal = testuser + + cert_add_cmd = api.Command.idoverrideuser_add_cert + cert_del_cmd = api.Command.idoverrideuser_remove_cert + + def del_cert_from_idoverride(self, username, view_name, cert): + result = self.cert_del_cmd(view_name, + username, + "--certificate=%s" % cert) + return dict( + usercertificate=result['result'].get('usercertificate', []), + value=result.get('value'), + summary=result.get('summary') + ) + + def add_cert_to_idoverride(self, username, view_name, cert): + result = self.cert_add_cmd(view_name, + username, + usercertificate=cert) + return dict( + usercertificate=result['result'].get('usercertificate', []), + value=result.get('value'), + summary=result.get('summary') + ) + + @classmethod + def teardown_class(cls): + api.Command.user_del(cls.testuser) + api.Command.idview_del(cls.idview) + super(TestCertManipIdOverride, cls).teardown_class() + + @classmethod + def setup_class(cls): + # Create an idview + api.Command.idview_add(cls.idview) + # Create a user + api.Command.user_add(cls.testuser, givenname=u'Bob', sn=u'Dylan') + # Add the user to the idview + api.Command.idoverrideuser_add(cls.idview, cls.testuser) + # Create certificates + cls.certs = [ + get_testcert(DN(('CN', cls.entity_subject)), cls.entity_principal) + for _i in range(2) + ] + cls.cert1 = cls.certs[0] + cls.cert2 = cls.certs[1] + + super(TestCertManipIdOverride, cls).setup_class() + + def test_00_add_cert_to_idoverride(self): + assert_deepequal( + dict(usercertificate=(base64.b64decode(self.cert1),), + summary="Added certificates to" + " idoverrideuser \"%s\"" % self.testuser, + value=self.testuser, + ), + self.add_cert_to_idoverride(self.testuser, + self.idview, + self.cert1) + ) + + def test_01_add_second_cert_to_idoverride(self): + assert_deepequal( + dict( + usercertificate=(base64.b64decode(self.cert1), + base64.b64decode(self.cert2)), + summary="Added certificates to" + " idoverrideuser \"%s\"" % self.testuser, + value=self.testuser, + ), + self.add_cert_to_idoverride(self.testuser, self.idview, self.cert2) + ) + + def test_02_add_the_same_cert_to_idoverride(self): + raises(errors.ExecutionError, + self.add_cert_to_idoverride, + self.testuser, self.idview, self.cert1) + + def test_04_user_show_displays_cert(self): + result = api.Command.idoverrideuser_show(self.idview, self.testuser) + assert_deepequal((base64.b64decode(self.cert1), + base64.b64decode(self.cert2)), + result['result']['usercertificate'] + )
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code