From 4a1df081fd3868a75bfabe8099025069eb42248f Mon Sep 17 00:00:00 2001 From: wangxiyuan Date: Fri, 16 Mar 2018 16:07:09 +0800 Subject: [PATCH] Fix assert test error under py3.6 The function __str__ of class subprocess.CalledProcessError is different between py3.6 and lower python version. py3.6: Command '%s' returned non-zero exit status %d. lower version: Command '%s' returned non-zero exit status %d There is a . in py3.6. This patch fix the assert error under py3.6 Change-Id: I19ae5711ed7440791583940fa4a8fb770dcdc933 Closes-bug: #1751551 --- keystone/tests/unit/test_v3_federation.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/keystone/tests/unit/test_v3_federation.py b/keystone/tests/unit/test_v3_federation.py index 662c23e415..b40cc76420 100644 --- a/keystone/tests/unit/test_v3_federation.py +++ b/keystone/tests/unit/test_v3_federation.py @@ -13,6 +13,7 @@ import copy import os import random +import re import subprocess from testtools import matchers import uuid @@ -4042,11 +4043,15 @@ class SAMLGenerationTests(test_v3.RestfulTestCase): self.assertRaises(exception.SAMLSigningError, keystone_idp._sign_assertion, self.signed_assertion) + # The function __str__ in subprocess.CalledProcessError is different + # between py3.6 and lower python version. expected_log = ( "Error when signing assertion, reason: Command '%s' returned " - "non-zero exit status %s %s\n" % + "non-zero exit status %s\.? %s\n" % (CONF.saml.xmlsec1_binary, sample_returncode, sample_output)) - self.assertEqual(expected_log, logger_fixture.output) + + self.assertRegex(logger_fixture.output, + re.compile(r'%s' % expected_log)) @mock.patch('oslo_utils.fileutils.write_to_tempfile') def test_sign_assertion_fileutils_exc(self, write_to_tempfile_mock):