From e1f582e34fdd3224c01c842a9214d2950778de80 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Nov 08 2019 14:17:45 +0000 Subject: Convert tests to use python3 - drop or change shebang to python3 - use $PYTHON when available, default to python3 - convert print statements to the print() function - remove u"..." literals - remove Integer literals l and L - xml Element.getchildren() method is deprecated - sys.stdout.write -> sys.stdout.buffer.write https://pagure.io/certmonger/issue/138 Signed-off-by: Rob Crittenden With contributions from Stanislav Levin --- diff --git a/certmonger.spec b/certmonger.spec index deb8c55..9e80952 100644 --- a/certmonger.spec +++ b/certmonger.spec @@ -72,7 +72,7 @@ BuildRequires: /usr/bin/unix2dos # for which BuildRequires: /usr/bin/which # for dbus tests -BuildRequires: dbus-python +BuildRequires: python3-dbus # for popt or popt-devel, depending on the build environment BuildRequires: /usr/include/popt.h diff --git a/tests/028-dbus/expected.out b/tests/028-dbus/expected.out index ca3179e..9f05e0e 100644 --- a/tests/028-dbus/expected.out +++ b/tests/028-dbus/expected.out @@ -187,13 +187,13 @@ dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA1'), dbus.Object dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/requests/Request2')], signature=dbus.Signature('o')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_key_types ] -dbus.Array([dbus.String(u'RSA'), dbus.String(u'DSA'), dbus.String(u'EC')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('RSA'), dbus.String('DSA'), dbus.String('EC')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_key_storage ] -dbus.Array([dbus.String(u'NSSDB'), dbus.String(u'FILE')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('NSSDB'), dbus.String('FILE')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_cert_storage ] -dbus.Array([dbus.String(u'NSSDB'), dbus.String(u'FILE')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('NSSDB'), dbus.String('FILE')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger : org.fedorahosted.certmonger.remove_known_ca ] OK @@ -433,19 +433,19 @@ Buddy [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_info ] -(dbus.String(u'CN=$UUID,CN=Local Signing Authority'), dbus.String(u'$UUID'), dbus.String(u'CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9L), dbus.Array([dbus.String(u'1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s'))) +(dbus.String('CN=$UUID,CN=Local Signing Authority'), dbus.String('$UUID'), dbus.String('CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s'))) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_last_checked ] recently [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_storage_info ] -(dbus.String(u'FILE'), dbus.String(u'$tmpdir/test.crt')) +(dbus.String('FILE'), dbus.String('$tmpdir/test.crt')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_csr_data ] [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_csr_info ] -(dbus.String(u'CN=localhost'), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9L), dbus.Array([dbus.String(u'id-kp-serverAuth')], signature=dbus.Signature('s'))) +(dbus.String('CN=localhost'), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('id-kp-serverAuth')], signature=dbus.Signature('s'))) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_pin ] @@ -454,19 +454,19 @@ recently [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_storage_info ] -(dbus.String(u'FILE'), dbus.String(u'$tmpdir/test.key')) +(dbus.String('FILE'), dbus.String('$tmpdir/test.key')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_type_and_size ] -(dbus.String(u'RSA'), dbus.Int64(512L)) +(dbus.String('RSA'), dbus.Int64(512)) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_monitoring ] 1 [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_notification_info ] -(dbus.String(u'stdout'), dbus.String(u'daemon.notice')) +(dbus.String('stdout'), dbus.String('daemon.notice')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_status ] -(dbus.String(u'MONITORING'), dbus.Boolean(False)) +(dbus.String('MONITORING'), dbus.Boolean(False)) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_ca ] /org/fedorahosted/certmonger/cas/CA1 @@ -482,7 +482,7 @@ recently [ /org/fedorahosted/certmonger/requests/Request2 : org.fedorahosted.certmonger.request.modify ] 1 on /org/fedorahosted/certmonger/requests/Request2 -After setting template-eku to 1.2.3.4.5.6.7.8.9.10, we got dbus.Array([dbus.String(u'1.2.3.4.5.6.7.8.9.10')], signature=dbus.Signature('s'), variant_level=1) +After setting template-eku to 1.2.3.4.5.6.7.8.9.10, we got dbus.Array([dbus.String('1.2.3.4.5.6.7.8.9.10')], signature=dbus.Signature('s'), variant_level=1) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.rekey ] 1 diff --git a/tests/028-dbus/expected.out.nodsa b/tests/028-dbus/expected.out.nodsa index 75d9371..20499bf 100644 --- a/tests/028-dbus/expected.out.nodsa +++ b/tests/028-dbus/expected.out.nodsa @@ -187,13 +187,13 @@ dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/cas/CA1'), dbus.Object dbus.Array([dbus.ObjectPath('/org/fedorahosted/certmonger/requests/Request2')], signature=dbus.Signature('o')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_key_types ] -dbus.Array([dbus.String(u'RSA'), dbus.String(u'EC')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('RSA'), dbus.String('EC')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_key_storage ] -dbus.Array([dbus.String(u'NSSDB'), dbus.String(u'FILE')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('NSSDB'), dbus.String('FILE')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger: org.fedorahosted.certmonger.get_supported_cert_storage ] -dbus.Array([dbus.String(u'NSSDB'), dbus.String(u'FILE')], signature=dbus.Signature('s')) +dbus.Array([dbus.String('NSSDB'), dbus.String('FILE')], signature=dbus.Signature('s')) [ /org/fedorahosted/certmonger : org.fedorahosted.certmonger.remove_known_ca ] OK @@ -433,19 +433,19 @@ Buddy [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_info ] -(dbus.String(u'CN=$UUID,CN=Local Signing Authority'), dbus.String(u'$UUID'), dbus.String(u'CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9L), dbus.Array([dbus.String(u'1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s'))) +(dbus.String('CN=$UUID,CN=Local Signing Authority'), dbus.String('$UUID'), dbus.String('CN=localhost'), dbus.Int64(tomorrow), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('1.3.6.1.5.5.7.3.1')], signature=dbus.Signature('s'))) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_last_checked ] recently [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_cert_storage_info ] -(dbus.String(u'FILE'), dbus.String(u'$tmpdir/test.crt')) +(dbus.String('FILE'), dbus.String('$tmpdir/test.crt')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_csr_data ] [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_csr_info ] -(dbus.String(u'CN=localhost'), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String(u'host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9L), dbus.Array([dbus.String(u'id-kp-serverAuth')], signature=dbus.Signature('s'))) +(dbus.String('CN=localhost'), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([dbus.String('localhost')], signature=dbus.Signature('s')), dbus.Array([dbus.String('host/localhost@LOCALHOST')], signature=dbus.Signature('s')), dbus.Int64(9), dbus.Array([dbus.String('id-kp-serverAuth')], signature=dbus.Signature('s'))) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_pin ] @@ -454,19 +454,19 @@ recently [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_storage_info ] -(dbus.String(u'FILE'), dbus.String(u'$tmpdir/test.key')) +(dbus.String('FILE'), dbus.String('$tmpdir/test.key')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_key_type_and_size ] -(dbus.String(u'RSA'), dbus.Int64(512L)) +(dbus.String('RSA'), dbus.Int64(512)) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_monitoring ] 1 [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_notification_info ] -(dbus.String(u'stdout'), dbus.String(u'daemon.notice')) +(dbus.String('stdout'), dbus.String('daemon.notice')) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_status ] -(dbus.String(u'MONITORING'), dbus.Boolean(False)) +(dbus.String('MONITORING'), dbus.Boolean(False)) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.get_ca ] /org/fedorahosted/certmonger/cas/CA1 @@ -482,7 +482,7 @@ recently [ /org/fedorahosted/certmonger/requests/Request2 : org.fedorahosted.certmonger.request.modify ] 1 on /org/fedorahosted/certmonger/requests/Request2 -After setting template-eku to 1.2.3.4.5.6.7.8.9.10, we got dbus.Array([dbus.String(u'1.2.3.4.5.6.7.8.9.10')], signature=dbus.Signature('s'), variant_level=1) +After setting template-eku to 1.2.3.4.5.6.7.8.9.10, we got dbus.Array([dbus.String('1.2.3.4.5.6.7.8.9.10')], signature=dbus.Signature('s'), variant_level=1) [ /org/fedorahosted/certmonger/requests/Request2: org.fedorahosted.certmonger.request.rekey ] 1 diff --git a/tests/028-dbus/prequal.sh b/tests/028-dbus/prequal.sh index e645c19..3e6e360 100755 --- a/tests/028-dbus/prequal.sh +++ b/tests/028-dbus/prequal.sh @@ -9,19 +9,22 @@ if test -z "$DBUSDAEMON" ; then echo dbus-daemon not found exit 1 fi -if ! python -c 'import os' 2> /dev/null ; then - echo python not found + +PYTHON=${PYTHON:-python3} + +if ! $PYTHON -c 'import os' 2> /dev/null ; then + echo $PYTHON not found exit 1 fi -if ! python -c 'import dbus' 2> /dev/null ; then - echo python-dbus not found +if ! $PYTHON -c 'import dbus' 2> /dev/null ; then + echo $PYTHON-dbus not found exit 1 fi -if ! python -c 'import xml' 2> /dev/null ; then - echo python-xml not found +if ! $PYTHON -c 'import xml' 2> /dev/null ; then + echo $PYTHON-xml not found exit 1 fi -if ! python -c 'import xml.etree.ElementTree' 2> /dev/null ; then - echo python-xml does not include etree.ElementTree +if ! $PYTHON -c 'import xml.etree.ElementTree' 2> /dev/null ; then + echo $PYTHON-xml does not include etree.ElementTree exit 1 fi diff --git a/tests/028-dbus/run.sh b/tests/028-dbus/run.sh index c468d51..d0be6ad 100755 --- a/tests/028-dbus/run.sh +++ b/tests/028-dbus/run.sh @@ -33,8 +33,8 @@ now=`date +%s` for i in `seq 240` ; do recently=$(($now-$i)) tomorrow=$(($now-$i+24*60*60)) - sed -i -e s/^$recently'$/recently/g' -e s/"("$recently"L)"/'(recently)'/g \ - -e s/^$tomorrow'$/tomorrow/g' -e s/"("$tomorrow"L)"/'(tomorrow)'/g $tmpdir/runsub.out + sed -i -e s/^$recently'$/recently/g' -e s/"("$recently")"/'(recently)'/g \ + -e s/^$tomorrow'$/tomorrow/g' -e s/"("$tomorrow")"/'(tomorrow)'/g $tmpdir/runsub.out done cat $tmpdir/runsub.out | \ @@ -43,4 +43,4 @@ sed -r -e 's,CN=........-........-........-........,CN=$UUID,g' \ -e "s|$libexecdir|\$libexecdir|g" \ -e "s|$tmpdir|\$tmpdir|g" \ -e "s|expires:.*|expires: sometime|g" \ - -e "s|u'(00)?[0-9a-fA-F]{32}|u'"'$UUID|g' + -e "s|'(00)?[0-9a-fA-F]{32}|'"'$UUID|g' \ diff --git a/tests/028-dbus/runsub.sh b/tests/028-dbus/runsub.sh index 3510d79..b27bc6e 100755 --- a/tests/028-dbus/runsub.sh +++ b/tests/028-dbus/runsub.sh @@ -1,4 +1,5 @@ #!/bin/bash +PYTHON=${PYTHON:-python3} exec > "$TMPDIR"/runsub.out 2> "$TMPDIR"/runsub.err for i in `seq 60` ; do if test -s "$TMPDIR"/test.crt ; then @@ -22,5 +23,5 @@ echo "" echo "[[ API ]]" for i in ./*.py ; do echo "[" `basename "$i"` "]" - python $i + $PYTHON $i done diff --git a/tests/028-dbus/simpleprop.py b/tests/028-dbus/simpleprop.py index e4f937e..c089bbb 100644 --- a/tests/028-dbus/simpleprop.py +++ b/tests/028-dbus/simpleprop.py @@ -1,4 +1,3 @@ -#!/usr/bin/python import dbus # Get a handle for the main certmonger interface. @@ -19,7 +18,7 @@ ca = dbus.Interface(o, 'org.freedesktop.DBus.Properties') # Toggle the helper a couple of times. ca_ext_h = o.Get('org.fedorahosted.certmonger.ca', 'external-helper') -print ca_ext_h, "->", +print(ca_ext_h, "-> ", end='') if ca_ext_h.split()[0] == ca_ext_h: ca_ext_h += ' -k admin@localhost' @@ -28,7 +27,7 @@ else: ca.Set('org.fedorahosted.certmonger.ca', 'external-helper', ca_ext_h) ca_ext_h = o.Get('org.fedorahosted.certmonger.ca', 'external-helper') -print ca_ext_h, "->", +print(ca_ext_h, "-> ", end='') if ca_ext_h.split()[0] == ca_ext_h: ca_ext_h += ' -k admin@localhost' @@ -37,20 +36,20 @@ else: ca.Set('org.fedorahosted.certmonger.ca', 'external-helper', ca_ext_h) ca_ext_h = o.Get('org.fedorahosted.certmonger.ca', 'external-helper') -print ca_ext_h +print(ca_ext_h) # Toggle the "is-default" value a couple of times. isdef = ca.Get('org.fedorahosted.certmonger.ca', 'is-default') -print isdef, "->", +print(isdef, "-> ", end='') ca.Set('org.fedorahosted.certmonger.ca', 'is-default', not isdef) isdef = ca.Get('org.fedorahosted.certmonger.ca', 'is-default') -print isdef, "->", +print(isdef, "-> ", end='') ca.Set('org.fedorahosted.certmonger.ca', 'is-default', not isdef) isdef = ca.Get('org.fedorahosted.certmonger.ca', 'is-default') -print isdef +print(isdef) cm.remove_known_ca(path) diff --git a/tests/028-dbus/walk.py b/tests/028-dbus/walk.py index f60ca93..bcaf5e2 100644 --- a/tests/028-dbus/walk.py +++ b/tests/028-dbus/walk.py @@ -1,4 +1,3 @@ -#!/usr/bin/python import dbus import xml.etree.ElementTree import os @@ -25,7 +24,7 @@ def examine_method(objpath, interface, method, idata): out_args = 0 o = bus.get_object('org.fedorahosted.certmonger', objpath) i = dbus.Interface(o, interface) - for child in idata.getchildren(): + for child in idata: if child.tag == 'arg': if child.get('direction') != 'out': in_args = in_args + 1 @@ -112,12 +111,12 @@ def examine_method(objpath, interface, method, idata): print('FIXME: need support for "%s"' % method) return False # If we caused things to start churning, wait for them to settle. - if method == 'resubmit': - props = dbus.Interface(o, 'org.freedesktop.DBus.Properties') - prop = props.Get(interface, 'status') - while prop != 'MONITORING': - time.sleep(1) - prop = props.Get(interface, 'status') + if method == 'resubmit': + props = dbus.Interface(o, 'org.freedesktop.DBus.Properties') + prop = props.Get(interface, 'status') + while prop != 'MONITORING': + time.sleep(1) + prop = props.Get(interface, 'status') return True def iget(child, proxy, interface, prop): @@ -139,7 +138,7 @@ def iget(child, proxy, interface, prop): def examine_interface(objpath, interface, idata): o = bus.get_object('org.fedorahosted.certmonger', objpath) i = dbus.Interface(o, 'org.freedesktop.DBus.Properties') - for child in idata.getchildren(): + for child in idata: if child.tag == 'property': prop = child.get('name') if child.get('access') == 'read': @@ -185,7 +184,7 @@ def examine_interface(objpath, interface, idata): elif child.tag == 'signal': continue else: - print "FIXME: handle child tag %s" % child.tag + print("FIXME: handle child tag %s" % child.tag) return False return True @@ -197,13 +196,13 @@ def examine_object(objpath): # Check if the object supports properties interfaces. props = False - for child in x.getchildren(): + for child in x: if child.tag == 'interface': if child.get('name') == 'org.freedesktop.DBus.Properties': props = True # Look at the interfaces and child nodes. - for child in x.getchildren(): + for child in x: if child.tag == 'interface': if props and not check_props(objpath, child.get('name')): return False @@ -216,7 +215,7 @@ def examine_object(objpath): childpath = objpath + '/' + child.get('name') examine_object(childpath) else: - print "FIXME: handle child tag %s" % child.tag + print("FIXME: handle child tag %s" % child.tag) return False return True diff --git a/tests/038-ms-v2-template/extract-extdata.py b/tests/038-ms-v2-template/extract-extdata.py index 1a845fd..8b6b14f 100755 --- a/tests/038-ms-v2-template/extract-extdata.py +++ b/tests/038-ms-v2-template/extract-extdata.py @@ -1,4 +1,4 @@ -#!/usr/bin/python2 +#!/usr/bin/python3 # Given `openssl asn1parse` output of a CSR, look for the V2 Template # extension and output its data if found. Nonzero exit status if @@ -21,7 +21,7 @@ for line in sys.stdin: # if state == STATE_FOUND and 'OCTET STRING' in line: result = re.search(r'\[HEX DUMP\]:(\w*)', line) - sys.stdout.write(binascii.unhexlify(result.group(1))) + sys.stdout.buffer.write(binascii.unhexlify(result.group(1))) state = STATE_DONE break