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

Reply via email to