Skip to content

Commit 9ee5d3a

Browse files
committed
Changes from the review
1 parent e333050 commit 9ee5d3a

File tree

3 files changed

+23
-39
lines changed

3 files changed

+23
-39
lines changed

k5test/realm.py

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import copy
2727
import os
2828
import os.path
29+
import shlex
2930
import shutil
3031
import signal
3132
import socket
@@ -39,11 +40,6 @@
3940

4041
from k5test import _utils
4142

42-
try:
43-
from shlex import quote as shlex_quote
44-
except ImportError:
45-
from pipes import quote as shlex_quote
46-
4743

4844
_LOG = logging.getLogger(__name__)
4945

@@ -71,24 +67,22 @@ def _cfg_merge(cfg1, cfg2):
7167

7268

7369
def _discover_path(name, default, paths):
74-
stderr_out = getattr(subprocess, 'DEVNULL', subprocess.PIPE)
70+
stderr_out = subprocess.DEVNULL
7571
try:
7672
path = subprocess.check_output(['which', name],
7773
stderr=stderr_out).strip()
7874
path = path.decode(sys.getfilesystemencoding() or
79-
sys.getdefaultencoding())
75+
sys.getdefaultencoding())
8076
_LOG.debug("Using discovered path for {name} ({path})".format(
8177
name=name, path=path))
8278
return path
8379
except subprocess.CalledProcessError as e:
8480
path = paths.get(name, default)
85-
_LOG.debug("Using default path for {name} ({path}): {err}".format(
86-
name=name, path=path, err=e))
81+
_LOG.debug(f"Using default path for {name} ({path}): {e}")
8782
return path
8883

8984

90-
@six.add_metaclass(abc.ABCMeta)
91-
class K5Realm(object):
85+
class K5Realm(metaclass=abc.ABCMeta):
9286
"""An object representing a functional krb5 test realm."""
9387

9488
def __new__(cls, *args, **kwargs):
@@ -104,13 +98,10 @@ def __new__(cls, *args, **kwargs):
10498
krb5_version = krb5_version.decode(
10599
sys.getfilesystemencoding() or sys.getdefaultencoding())
106100

107-
if (
108-
'heimdal' in krb5_version.lower() or
109-
(
110-
# macOS output doesn't contain Heimdal
111-
sys.platform == 'darwin' and
112-
krb5_config == '/usr/bin/krb5-config'
113-
)
101+
# macOS output doesn't contain Heimdal
102+
if 'heimdal' in krb5_version.lower() or (
103+
sys.platform == 'darwin' and
104+
krb5_config == '/usr/bin/krb5-config'
114105
):
115106
provider_cls = HeimdalRealm
116107

@@ -148,7 +139,6 @@ def __init__(self, realm='KRBTEST.COM', portbase=61000,
148139
self.client_keytab = os.path.join(self.tmpdir, 'client_keytab')
149140
self.ccache = os.path.join(self.tmpdir, 'ccache')
150141
self.kadmin_ccache = os.path.join(self.tmpdir, 'kadmin_ccache')
151-
152142
self._kdc_proc = None
153143
self._kadmind_proc = None
154144
krb5_conf_path = os.path.join(self.tmpdir, 'krb5.conf')
@@ -159,8 +149,6 @@ def __init__(self, realm='KRBTEST.COM', portbase=61000,
159149

160150
self._init_paths(**paths)
161151

162-
self._devnull = open(os.devnull, 'r')
163-
164152
if existing is None:
165153
self._create_conf(_cfg_merge(self._krb5_conf, krb5_conf),
166154
krb5_conf_path)
@@ -339,7 +327,7 @@ def run(self, args, env=None, input=None, expected_code=0):
339327
if input:
340328
infile = subprocess.PIPE
341329
else:
342-
infile = self._devnull
330+
infile = subprocess.DEVNULL
343331

344332
proc = subprocess.Popen(args, stdin=infile, stdout=subprocess.PIPE,
345333
stderr=subprocess.STDOUT, env=env)
@@ -361,7 +349,7 @@ def run(self, args, env=None, input=None, expected_code=0):
361349
return outdata
362350

363351
def __del__(self):
364-
self._devnull.close()
352+
pass
365353

366354
def kprop_port(self):
367355
return self.portbase + 3
@@ -373,8 +361,8 @@ def _start_daemon(self, args, env=None, sentinel=None):
373361
if env is None:
374362
env = self.env
375363

376-
stdout = subprocess.PIPE if sentinel else self._devnull
377-
proc = subprocess.Popen(args, stdin=self._devnull,
364+
stdout = subprocess.PIPE if sentinel else subprocess.DEVNULL
365+
proc = subprocess.Popen(args, stdin=subprocess.DEVNULL,
378366
stdout=stdout,
379367
stderr=subprocess.STDOUT, env=env)
380368
cmd = ' '.join(args)
@@ -564,7 +552,7 @@ def run_kadmin(self, query, **keywords):
564552

565553
def run_kadminl(self, query, **keywords):
566554
if isinstance(query, list):
567-
query = " ".join([shlex_quote(q) for q in query])
555+
query = " ".join([shlex.quote(q) for q in query])
568556

569557
return self.run([self.kadmin_local, '-q', query], **keywords)
570558

@@ -597,15 +585,15 @@ def provider(self):
597585

598586
@property
599587
def _default_paths(self):
600-
basedir = '/usr/libexec'
601-
if sys.platform == 'darwin':
602-
basedir = '/System/Library/PrivateFrameworks/Heimdal.framework/Helpers'
588+
base = '/System/Library/PrivateFrameworks/Heimdal.framework/Helpers'
589+
if sys.platform != 'darwin':
590+
base = '/usr/libexec'
603591

604592
return [
605-
('krb5kdc', 'kdc', os.path.join(basedir, 'kdc')),
593+
('krb5kdc', 'kdc', os.path.join(base, 'kdc')),
606594
('kadmin', 'kadmin', '/usr/bin/kadmin'),
607595
('kadmin_local', 'kadmin', '/usr/bin/kadmin'),
608-
('kadmind', 'kadmind', os.path.join(basedir, 'kadmind')),
596+
('kadmind', 'kadmind', os.path.join(base, 'kadmind')),
609597
('_kinit', 'kinit', '/usr/bin/kinit'),
610598
('_klist', 'klist', '/usr/bin/klist'),
611599
('_ktutil', 'ktutil', '/usr/bin/ktutil'),
@@ -677,7 +665,6 @@ def extract_keytab(self, princname, keytab):
677665

678666
def kinit(self, princname, password=None, flags=None, verbose=True,
679667
**keywords):
680-
681668
cmd = [self._kinit]
682669

683670
input = None

k5test/unit.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,8 @@ def krb_minversion_test(target_version, problem, provider=None):
4343

4444
def make_ext_test(func):
4545
def ext_test(self, *args, **kwargs):
46-
if (
47-
not provider or (
48-
self.realm.provider.lower() == provider.lower()
49-
) and
50-
_KRB_VERSION < target_version.split('.')
46+
if _KRB_VERSION < target_version.split('.') and (
47+
not provider or self.realm.lower() == provider.lower()
5148
):
5249
self.skipTest("Your GSSAPI (version %s) is known to have "
5350
"problems with %s" % (_KRB_VERSION, problem))

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
long_description=open('README.md').read(),
1414
license='LICENSE.txt',
1515
url="https://github.com/pythongssapi/k5test",
16+
python_requires=">=3.6",
1617
classifiers=[
1718
'Development Status :: 4 - Beta',
1819
'Programming Language :: Python',
19-
'Programming Language :: Python :: 2.7',
2020
'Programming Language :: Python :: 3',
21-
'Programming Language :: Python :: 3.3',
21+
'Programming Language :: Python :: 3.6',
2222
'Intended Audience :: Developers',
2323
'License :: OSI Approved :: ISC License (ISCL)',
2424
'License :: OSI Approved :: MIT License',

0 commit comments

Comments
 (0)