#5451 test_xmlrpc/test_cert_plugin & test_certprofile_plugin failing on Fedora 23
Closed: Invalid None Opened 8 years ago by pspacek.

Environment: Fedora 23 with IPA build from master branch: efe8f26

Packages:

  • pki-tools-10.2.6-12.fc23.x86_64
  • pki-base-10.2.6-12.fc23.noarch
  • pki-ca-10.2.6-12.fc23.noarch
  • pki-server-10.2.6-12.fc23.noarch
  • pki-kra-10.2.6-12.fc23.noarch

Failure:

test_xmlrpc/test_cert_plugin.py ..F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <ipatests.test_xmlrpc.test_cert_plugin.test_cert object at 0x7f2ee8bc4b90>

    def test_0003_service_show(self):
        """
            Verify that service-show has the right certificate using service-show.
            """
        global cert

        res = api.Command['service_show'](self.service_princ)['result']
>       assert base64.b64encode(res['usercertificate'][0]) == cert
E       KeyError: 'usercertificate'

/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py:162: KeyError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py(162)test_0003_service_show()
-> assert base64.b64encode(res['usercertificate'][0]) == cert
(Pdb) c
F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <ipatests.test_xmlrpc.test_cert_plugin.test_cert object at 0x7f2ee8bcf690>

    def test_0004_service_find(self):
        """
            Verify that service-find has the right certificate using service-find.
            """
        global cert

        # Assume there is only one service
        res = api.Command['service_find'](self.service_princ)['result']
>       assert base64.b64encode(res[0]['usercertificate'][0]) == cert
E       KeyError: 'usercertificate'

/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py:172: KeyError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py(172)test_0004_service_find()
-> assert base64.b64encode(res[0]['usercertificate'][0]) == cert
.F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <ipatests.test_xmlrpc.test_cert_plugin.test_cert object at 0x7f2ee8b5d850>

    def test_0006_service_show(self):
        """
            Verify the new certificate with service-show.
            """
        global cert, newcert

        res = api.Command['service_show'](self.service_princ)['result']

        # Both the old and the new certs should be listed as certificates now
>       certs_encoded = (base64.b64encode(cert) for cert in res['usercertificate'])
E       KeyError: 'usercertificate'

/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py:195: KeyError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py(195)test_0006_service_show()
-> certs_encoded = (base64.b64encode(cert) for cert in res['usercertificate'])
(Pdb) c
......F
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <ipatests.test_xmlrpc.test_cert_plugin.test_cert_find object at 0x7f2ee8b91bd0>

    def test_0006_find_this_short_host_exact(self):
        """
            Find all certificates for this IPA server short name (exact)
            """
        res = api.Command['cert_find'](subject=self.short, exactly=True)
>       assert 'count' in res and res['count'] == 0
E       assert ('count' in {'count': 9, 'result': ({'serial_number': 3, 'serial_number_hex': '0x3', 'status': 'VALID', 'subject': 'CN=vm-058-076....dhat.com,O=DOM-058-076.ABC.IDM.LAB.ENG.BRQ.REDHAT.COM'}, ...), 'summary': '9 certificates matched', 'truncated': False} and 9 == 0)

/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py:272: AssertionError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_cert_plugin.py(272)test_0006_find_this_short_host_exact()
-> assert 'count' in res and res['count'] == 0


test_xmlrpc/test_certprofile_plugin.py F                                                                                                                            [84/1866]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> traceback >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

self = <ipatests.test_xmlrpc.test_certprofile_plugin.TestDefaultProfile object at 0x7f2ee8bcd0d0>
default_profile = <ipatests.test_xmlrpc.test_certprofile_plugin.CertprofileTracker object at 0x7f2ee8bcdd10>

    def test_default_profile_present(self, default_profile):
>       default_profile.retrieve()

/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_certprofile_plugin.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/ldaptracker.py:252: in retrieve
    self.check_retrieve(result, all=all, raw=raw)
/usr/lib/python2.7/site-packages/ipatests/test_xmlrpc/test_certprofile_plugin.py:115: in check_retrieve
    ), result)
/usr/lib/python2.7/site-packages/ipatests/util.py:361: in assert_deepequal
    assert_deepequal(e_sub, g_sub, doc, stack + (key,))
/usr/lib/python2.7/site-packages/ipatests/util.py:361: in assert_deepequal
    assert_deepequal(e_sub, g_sub, doc, stack + (key,))
/usr/lib/python2.7/site-packages/ipatests/util.py:349: in assert_deepequal
    assert_deepequal(e_sub, g_sub, doc, stack + (i,))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

expected = 'TRUE', got = 'FALSE', doc = '', stack = ('result', 'ipacertprofilestoreissued', 0)

    def assert_deepequal(expected, got, doc='', stack=tuple()):
        """
        Recursively check for type and equality.

        If a value in expected is callable then it will used as a callback to
        test for equality on the got value. The callback is passed the got
        value and returns True if equal, False otherwise.

        If the tests fails, it will raise an ``AssertionError`` with detailed
        information, including the path to the offending value.  For example:

        >>> expected = [u'Hello', dict(world=u'how are you?')]
        >>> got = [u'Hello', dict(world='how are you?')]
        >>> expected == got
        True
        >>> assert_deepequal(expected, got, doc='Testing my nested data')
        Traceback (most recent call last):
          ...                                                                                                                                                       [42/1866]
        AssertionError: assert_deepequal: type(expected) is not type(got).
          Testing my nested data
          type(expected) = <type 'unicode'>
          type(got) = <type 'str'>
          expected = u'how are you?'
          got = 'how are you?'
          path = (0, 'world')

        Note that lists and tuples are considered equivalent, and the order of
        their elements does not matter.
        """
        if isinstance(expected, tuple):
            expected = list(expected)
        if isinstance(got, tuple):
            got = list(got)
        if isinstance(expected, DN):
            if isinstance(got, six.string_types):
                got = DN(got)
        if not (isinstance(expected, Fuzzy) or callable(expected) or type(expected) is type(got)):
            raise AssertionError(
                TYPE % (doc, type(expected), type(got), expected, got, stack)
            )
        if isinstance(expected, (list, tuple)):
            if len(expected) != len(got):
                raise AssertionError(
                    LEN % (doc, len(expected), len(got), expected, got, stack)
                )
            # Sort list elements, unless they are dictionaries
            if expected and isinstance(expected[0], dict):
                s_got = got
                s_expected = expected
            else:
                try:
                    s_got = sorted(got)
                except TypeError:
                    s_got = got
                try:
                    s_expected = sorted(expected)
                except TypeError:
                    s_expected = expected
            for (i, e_sub) in enumerate(s_expected):
                g_sub = s_got[i]
                assert_deepequal(e_sub, g_sub, doc, stack + (i,))
        elif isinstance(expected, dict):
            missing = set(expected).difference(got)
            extra = set(got).difference(expected)
            if missing or extra:
                raise AssertionError(KEYS % (
                        doc, sorted(missing), sorted(extra), expected, got, stack
                    )
                )
            for key in sorted(expected):
                e_sub = expected[key]
                g_sub = got[key]
                assert_deepequal(e_sub, g_sub, doc, stack + (key,))
        elif callable(expected):
            if not expected(got):
                raise AssertionError(
                    VALUE % (doc, expected, got, stack)
                    )
        elif expected != got:
            raise AssertionError(
>               VALUE % (doc, expected, got, stack)
            )
E           AssertionError: assert_deepequal: expected != got.
E             
E             expected = u'TRUE'
E             got = u'FALSE'
E             path = ('result', 'ipacertprofilestoreissued', 0)

/usr/lib/python2.7/site-packages/ipatests/util.py:369: AssertionError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /usr/lib/python2.7/site-packages/ipatests/util.py(369)assert_deepequal()
-> VALUE % (doc, expected, got, stack)

I cannot reproduce it on F23

[root@vm-091 ~]# ipa-run-tests test_xmlrpc/test_cert_plugin.py 
=============================================================================================== test session starts ===============================================================================================
platform linux2 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.3
rootdir: /usr/lib/python2.7/site-packages/ipatests, inifile: pytest.ini
plugins: sourceorder, multihost
collected 38 items

test_xmlrpc/test_cert_plugin.py ......................................

=========================================================================================== 38 passed in 15.25 seconds ============================================================================================
[root@vm-091 ~]# ipa-run-tests test_xmlrpc/test_certprofile_plugin.py 
=============================================================================================== test session starts ===============================================================================================
platform linux2 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.3
rootdir: /usr/lib/python2.7/site-packages/ipatests, inifile: pytest.ini
plugins: sourceorder, multihost
collected 18 items

test_xmlrpc/test_certprofile_plugin.py ..................

=========================================================================================== 18 passed in 16.05 seconds ============================================================================================

closing according to Martin's assessment

Metadata Update from @pspacek:
- Issue assigned to someone
- Issue set to the milestone: 0.0 NEEDS_TRIAGE

7 years ago

Login to comment on this ticket.

Metadata