Py3: Remove subclassing from object

Python 2 had old style and new style classes. Python 3 has only new
style classes. There is no point to subclass from object any more.

See: https://pagure.io/freeipa/issue/7715
Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
This commit is contained in:
Christian Heimes 2018-09-26 11:59:50 +02:00
parent 4a58adf79e
commit b431e9b684
107 changed files with 217 additions and 201 deletions

View File

@ -106,7 +106,7 @@ def get_ccname():
return krb5_unparse_ccache(scheme, location) return krb5_unparse_ccache(scheme, location)
class KRBCheater(object): class KRBCheater:
"""Add KRB5CCNAME to WSGI environ """Add KRB5CCNAME to WSGI environ
""" """
def __init__(self, app, ccname): def __init__(self, app, ccname):

View File

@ -89,7 +89,7 @@ parser.add_argument(
) )
class IPACustodiaTester(object): class IPACustodiaTester:
files = [ files = [
paths.IPA_DEFAULT_CONF, paths.IPA_DEFAULT_CONF,
paths.KRB5_KEYTAB, paths.KRB5_KEYTAB,

View File

@ -63,7 +63,7 @@ class FatalError(Error):
""" """
class KDCProxyConfig(object): class KDCProxyConfig:
ipaconfig_flag = 'ipaKDCProxyEnabled' ipaconfig_flag = 'ipaKDCProxyEnabled'
def __init__(self, time_limit=TIME_LIMIT): def __init__(self, time_limit=TIME_LIMIT):

View File

@ -57,7 +57,7 @@ CCACHE_FILE = None
KRB5_CONFIG = None KRB5_CONFIG = None
class SshExec(object): class SshExec:
def __init__(self, user, addr): def __init__(self, user, addr):
self.user = user self.user = user
self.addr = addr self.addr = addr
@ -95,7 +95,7 @@ class SshExec(object):
capture_output=True, capture_error=True) capture_output=True, capture_error=True)
class CheckedPort(object): class CheckedPort:
def __init__(self, port, port_type, description): def __init__(self, port, port_type, description):
self.port = port self.port = port
self.port_type = port_type self.port_type = port_type

View File

@ -75,7 +75,7 @@ class IPAExtension(jinja2.ext.Extension):
return data return data
class Formatter(object): class Formatter:
""" """
Class for processing a set of CSR generation rules into a template. Class for processing a set of CSR generation rules into a template.
@ -258,7 +258,7 @@ class OpenSSLFormatter(Formatter):
return self.SyntaxRule(prepared_template, is_extension) return self.SyntaxRule(prepared_template, is_extension)
class FieldMapping(object): class FieldMapping:
"""Representation of the rules needed to construct a complete cert field. """Representation of the rules needed to construct a complete cert field.
Attributes: Attributes:
@ -276,7 +276,7 @@ class FieldMapping(object):
self.data_rules = data_rules self.data_rules = data_rules
class Rule(object): class Rule:
__slots__ = ['name', 'template', 'options'] __slots__ = ['name', 'template', 'options']
def __init__(self, name, template, options): def __init__(self, name, template, options):
@ -285,7 +285,7 @@ class Rule(object):
self.options = options self.options = options
class RuleProvider(object): class RuleProvider:
def rules_for_profile(self, profile_id): def rules_for_profile(self, profile_id):
""" """
Return the rules needed to build a CSR using the given profile. Return the rules needed to build a CSR using the given profile.
@ -368,7 +368,7 @@ class FileRuleProvider(RuleProvider):
return field_mappings return field_mappings
class CSRGenerator(object): class CSRGenerator:
def __init__(self, rule_provider, formatter_class=OpenSSLFormatter): def __init__(self, rule_provider, formatter_class=OpenSSLFormatter):
self.rule_provider = rule_provider self.rule_provider = rule_provider
self.formatter = formatter_class() self.formatter = formatter_class()
@ -389,7 +389,7 @@ class CSRGenerator(object):
return config return config
class CSRLibraryAdaptor(object): class CSRLibraryAdaptor:
def get_subject_public_key_info(self): def get_subject_public_key_info(self):
raise NotImplementedError('Use a subclass of CSRLibraryAdaptor') raise NotImplementedError('Use a subclass of CSRLibraryAdaptor')
@ -401,7 +401,7 @@ class CSRLibraryAdaptor(object):
raise NotImplementedError('Use a subclass of CSRLibraryAdaptor') raise NotImplementedError('Use a subclass of CSRLibraryAdaptor')
class OpenSSLAdaptor(object): class OpenSSLAdaptor:
def __init__(self, key=None, key_filename=None, password_filename=None): def __init__(self, key=None, key_filename=None, password_filename=None):
""" """
Must provide either ``key_filename`` or ``key``. Must provide either ``key_filename`` or ``key``.
@ -458,7 +458,7 @@ class OpenSSLAdaptor(object):
return encoder.encode(csr) return encoder.encode(csr)
class NSSAdaptor(object): class NSSAdaptor:
def __init__(self, database, password_filename): def __init__(self, database, password_filename):
self.database = database self.database = database
self.password_filename = password_filename self.password_filename = password_filename

View File

@ -51,7 +51,7 @@ def openLocked(filename, perms):
#TODO: put section delimiters as separating element of the list #TODO: put section delimiters as separating element of the list
# so that we can process multiple sections in one go # so that we can process multiple sections in one go
#TODO: add a comment all but provided options as a section option #TODO: add a comment all but provided options as a section option
class IPAChangeConf(object): class IPAChangeConf:
def __init__(self, name): def __init__(self, name):
self.progname = name self.progname = name
self.indent = ("", "", "") self.indent = ("", "", "")

View File

@ -99,7 +99,7 @@ def get_ipa_basedn(conn):
return None return None
class IPADiscovery(object): class IPADiscovery:
def __init__(self): def __init__(self):
self.realm = None self.realm = None

View File

@ -546,7 +546,7 @@ class vault_mod(Local):
return response return response
class _TransportCertCache(object): class _TransportCertCache:
def __init__(self): def __init__(self):
self._dirname = os.path.join( self._dirname = os.path.join(
USER_CACHE_PATH, 'ipa', 'kra-transport-certs' USER_CACHE_PATH, 'ipa', 'kra-transport-certs'

View File

@ -95,7 +95,7 @@ class _SchemaObject(Object):
pass pass
class _SchemaPlugin(object): class _SchemaPlugin:
bases = None bases = None
schema_key = None schema_key = None
@ -352,7 +352,7 @@ class NotAvailable(Exception):
pass pass
class Schema(object): class Schema:
""" """
Store and provide schema for commands and topics Store and provide schema for commands and topics

View File

@ -41,7 +41,7 @@ PERMISSIONS = ["read", "write", "add", "delete", "search", "compare",
"selfwrite", "proxy", "all"] "selfwrite", "proxy", "all"]
class ACI(object): class ACI:
""" """
Holds the basic data for an ACI entry, as stored in the cn=accounts Holds the basic data for an ACI entry, as stored in the cn=accounts
entry in LDAP. Has methods to parse an ACI string and export to an entry in LDAP. Has methods to parse an ACI string and export to an

View File

@ -29,7 +29,7 @@ from ipalib.constants import NAME_REGEX, NAME_ERROR
from ipalib.constants import TYPE_ERROR, SET_ERROR, DEL_ERROR, OVERRIDE_ERROR from ipalib.constants import TYPE_ERROR, SET_ERROR, DEL_ERROR, OVERRIDE_ERROR
class ReadOnly(object): class ReadOnly:
""" """
Base class for classes that can be locked into a read-only state. Base class for classes that can be locked into a read-only state.
@ -269,7 +269,7 @@ class NameSpace(ReadOnly):
through a dictionary interface. For example, say we create a `NameSpace` through a dictionary interface. For example, say we create a `NameSpace`
instance from a list containing a single member, like this: instance from a list containing a single member, like this:
>>> class my_member(object): >>> class my_member:
... name = 'my_name' ... name = 'my_name'
... ...
>>> namespace = NameSpace([my_member]) >>> namespace = NameSpace([my_member])
@ -287,7 +287,7 @@ class NameSpace(ReadOnly):
For a more detailed example, say we create a `NameSpace` instance from a For a more detailed example, say we create a `NameSpace` instance from a
generator like this: generator like this:
>>> class Member(object): >>> class Member:
... def __init__(self, i): ... def __init__(self, i):
... self.i = i ... self.i = i
... self.name = self.__name__ = 'member%d' % i ... self.name = self.__name__ = 'member%d' % i

View File

@ -704,7 +704,7 @@ class help(frontend.Local):
""" """
Display help for a command or topic. Display help for a command or topic.
""" """
class Writer(object): class Writer:
""" """
Writer abstraction Writer abstraction
""" """
@ -1082,7 +1082,7 @@ cli_application_commands = (
) )
class Collector(object): class Collector:
def __init__(self): def __init__(self):
object.__setattr__(self, '_Collector__options', {}) object.__setattr__(self, '_Collector__options', {})

View File

@ -53,7 +53,8 @@ from ipalib import errors
if six.PY3: if six.PY3:
unicode = str unicode = str
class Env(object):
class Env:
""" """
Store and retrieve environment variables. Store and retrieve environment variables.

View File

@ -47,7 +47,7 @@ DBUS_CM_CA_IF = 'org.fedorahosted.certmonger.ca'
DBUS_PROPERTY_IF = 'org.freedesktop.DBus.Properties' DBUS_PROPERTY_IF = 'org.freedesktop.DBus.Properties'
class _cm_dbus_object(object): class _cm_dbus_object:
""" """
Auxiliary class for convenient DBus object handling. Auxiliary class for convenient DBus object handling.
""" """

View File

@ -55,7 +55,7 @@ SYSRESTORE_INDEXFILE = "sysrestore.index"
SYSRESTORE_STATEFILE = "sysrestore.state" SYSRESTORE_STATEFILE = "sysrestore.state"
class FileStore(object): class FileStore:
"""Class for handling backup and restore of files""" """Class for handling backup and restore of files"""
def __init__(self, path = SYSRESTORE_PATH, index_file = SYSRESTORE_INDEXFILE): def __init__(self, path = SYSRESTORE_PATH, index_file = SYSRESTORE_INDEXFILE):
@ -307,7 +307,7 @@ class FileStore(object):
return True return True
class StateFile(object): class StateFile:
"""A metadata file for recording system state which can """A metadata file for recording system state which can
be backed up and later restored. be backed up and later restored.
StateFile gets reloaded every time to prevent loss of information StateFile gets reloaded every time to prevent loss of information

View File

@ -89,7 +89,7 @@ def find_modules_in_dir(src_dir):
yield module yield module
class Registry(object): class Registry:
"""A decorator that makes plugins available to the API """A decorator that makes plugins available to the API
Usage:: Usage::
@ -240,7 +240,7 @@ class Plugin(ReadOnly):
if not self.__finalized: if not self.__finalized:
self.finalize() self.finalize()
class finalize_attr(object): class finalize_attr:
""" """
Create a stub object for plugin attribute that isn't set until the Create a stub object for plugin attribute that isn't set until the
finalization of the plugin initialization. finalization of the plugin initialization.

View File

@ -33,7 +33,7 @@ from ipalib.constants import CALLABLE_ERROR
context = threading.local() context = threading.local()
class _FrameContext(object): class _FrameContext:
pass pass

View File

@ -491,7 +491,7 @@ def xml_loads(data, encoding='UTF-8'):
raise decode_fault(e) raise decode_fault(e)
class DummyParser(object): class DummyParser:
def __init__(self): def __init__(self):
self.data = [] self.data = []
@ -1203,7 +1203,7 @@ class xmlclient(RPCClient):
return xml_unwrap(result) return xml_unwrap(result)
class JSONServerProxy(object): class JSONServerProxy:
def __init__(self, uri, transport, encoding, verbose, allow_none): def __init__(self, uri, transport, encoding, verbose, allow_none):
split_uri = urllib.parse.urlsplit(uri) split_uri = urllib.parse.urlsplit(uri)
if split_uri.scheme not in ("http", "https"): if split_uri.scheme not in ("http", "https"):

View File

@ -154,7 +154,7 @@ def create_translation(key):
return translation return translation
class LazyText(object): class LazyText:
""" """
Base class for deferred translation. Base class for deferred translation.
@ -319,7 +319,7 @@ class FixMe(Gettext):
creates conspicuous looking UI labels that remind the programmer to creates conspicuous looking UI labels that remind the programmer to
"fix-me!". For example, the typical usage would be something like this: "fix-me!". For example, the typical usage would be something like this:
>>> class Plugin(object): >>> class Plugin:
... label = None ... label = None
... def __init__(self): ... def __init__(self):
... self.name = self.__class__.__name__ ... self.name = self.__class__.__name__
@ -485,7 +485,7 @@ class NGettext(LazyText):
@six.python_2_unicode_compatible @six.python_2_unicode_compatible
class ConcatenatedLazyText(object): class ConcatenatedLazyText:
"""Concatenation of multiple strings, or any objects convertible to unicode """Concatenation of multiple strings, or any objects convertible to unicode
Used to concatenate several LazyTexts together. Used to concatenate several LazyTexts together.
@ -525,7 +525,7 @@ class ConcatenatedLazyText(object):
return ConcatenatedLazyText(*[other] + self.components) return ConcatenatedLazyText(*[other] + self.components)
class GettextFactory(object): class GettextFactory:
""" """
Factory for creating ``_()`` functions. Factory for creating ``_()`` functions.

View File

@ -994,7 +994,7 @@ def has_managed_topology(api):
return domainlevel > DOMAIN_LEVEL_0 return domainlevel > DOMAIN_LEVEL_0
class classproperty(object): class classproperty:
__slots__ = ('__doc__', 'fget') __slots__ = ('__doc__', 'fget')
def __init__(self, fget=None, doc=None): def __init__(self, fget=None, doc=None):

View File

@ -83,7 +83,7 @@ SAN_KRB5PRINCIPALNAME = '1.3.6.1.5.2.2'
@crypto_utils.register_interface(crypto_x509.Certificate) @crypto_utils.register_interface(crypto_x509.Certificate)
class IPACertificate(object): class IPACertificate:
""" """
A proxy class wrapping a python-cryptography certificate representation for A proxy class wrapping a python-cryptography certificate representation for
FreeIPA purposes FreeIPA purposes

View File

@ -10,7 +10,7 @@ import sys
from ipaplatform.osinfo import osinfo from ipaplatform.osinfo import osinfo
class IpaMetaImporter(object): class IpaMetaImporter:
modules = { modules = {
'ipaplatform.constants', 'ipaplatform.constants',
'ipaplatform.paths', 'ipaplatform.paths',

View File

@ -8,7 +8,7 @@ This base platform module exports platform dependant constants.
import sys import sys
class BaseConstantsNamespace(object): class BaseConstantsNamespace:
IS_64BITS = sys.maxsize > 2 ** 32 IS_64BITS = sys.maxsize > 2 ** 32
DS_USER = 'dirsrv' DS_USER = 'dirsrv'
DS_GROUP = 'dirsrv' DS_GROUP = 'dirsrv'

View File

@ -22,7 +22,7 @@ This base platform module exports default filesystem paths.
''' '''
class BasePathNamespace(object): class BasePathNamespace:
BASH = "/bin/bash" BASH = "/bin/bash"
BIN_HOSTNAMECTL = "/bin/hostnamectl" BIN_HOSTNAMECTL = "/bin/hostnamectl"
ECHO = "/bin/echo" ECHO = "/bin/echo"

View File

@ -96,7 +96,7 @@ class KnownServices(Mapping):
raise AttributeError(name) raise AttributeError(name)
class PlatformService(object): class PlatformService:
""" """
PlatformService abstracts out external process running on the system PlatformService abstracts out external process running on the system
which is possible to administer (start, stop, check status, etc). which is possible to administer (start, stop, check status, etc).

View File

@ -34,7 +34,7 @@ from ipapython import ipautil
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class BaseTaskNamespace(object): class BaseTaskNamespace:
def restore_context(self, filepath, force=False): def restore_context(self, filepath, force=False):
"""Restore SELinux security context on the given filepath. """Restore SELinux security context on the given filepath.

View File

@ -38,7 +38,7 @@ def get_auth_tool():
@six.add_metaclass(abc.ABCMeta) @six.add_metaclass(abc.ABCMeta)
class RedHatAuthToolBase(object): class RedHatAuthToolBase:
@abc.abstractmethod @abc.abstractmethod
def configure(self, sssd, mkhomedir, statestore, sudo=True): def configure(self, sssd, mkhomedir, statestore, sudo=True):

View File

@ -69,7 +69,7 @@ def selinux_enabled():
@total_ordering @total_ordering
class IPAVersion(object): class IPAVersion:
_rpmvercmp_func = None _rpmvercmp_func = None
@classmethod @classmethod

View File

@ -53,7 +53,7 @@ class ScriptError(Exception):
return str(self) return str(self)
class AdminTool(object): class AdminTool:
"""Base class for command-line admin tools """Base class for command-line admin tools
To run the tool, call the main() classmethod with a list of command-line To run the tool, call the main() classmethod with a list of command-line

View File

@ -221,7 +221,7 @@ KEY_RE = re.compile(
) )
class NSSDatabase(object): class NSSDatabase:
"""A general-purpose wrapper around a NSS cert database """A general-purpose wrapper around a NSS cert database
For permanent NSS databases, pass the cert DB directory to __init__ For permanent NSS databases, pass the cert DB directory to __init__

View File

@ -152,7 +152,7 @@ def verify_args(parser, args, needed_args = None):
parser.error("no %s specified" % needed_list[len_have]) parser.error("no %s specified" % needed_list[len_have])
class IPAConfig(object): class IPAConfig:
def __init__(self): def __init__(self):
self.default_realm = None self.default_realm = None
self.default_server = [] self.default_server = []

View File

@ -66,7 +66,8 @@ escaping and unescapin.
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
class Cookie(object):
class Cookie:
''' '''
A Cookie object has the following attributes: A Cookie object has the following attributes:

View File

@ -15,7 +15,7 @@ from ipapython.ipautil import unescape_seq, escape_seq
_SENTINEL = object() _SENTINEL = object()
class DirectiveSetter(object): class DirectiveSetter:
"""Safe directive setter """Safe directive setter
with DirectiveSetter('/path/to/conf') as ds: with DirectiveSetter('/path/to/conf') as ds:

View File

@ -557,7 +557,7 @@ else:
@functools.total_ordering @functools.total_ordering
class AVA(object): class AVA:
''' '''
AVA(arg0, ...) AVA(arg0, ...)
@ -706,7 +706,7 @@ class AVA(object):
@functools.total_ordering @functools.total_ordering
class RDN(object): class RDN:
''' '''
RDN(arg0, ...) RDN(arg0, ...)
@ -951,7 +951,7 @@ class RDN(object):
@functools.total_ordering @functools.total_ordering
class DN(object): class DN:
''' '''
DN(arg0, ...) DN(arg0, ...)

View File

@ -4,7 +4,7 @@
from collections import deque from collections import deque
class Graph(object): class Graph:
""" """
Simple oriented graph structure Simple oriented graph structure

View File

@ -11,7 +11,7 @@ import sys
import six import six
class from_(object): class from_:
""" """
Wrapper for delegating to a subgenerator. Wrapper for delegating to a subgenerator.

View File

@ -57,7 +57,7 @@ LOGGING_FORMAT_STANDARD_CONSOLE = '%(name)-12s: %(levelname)-8s %(message)s'
LOGGING_FORMAT_STANDARD_FILE = '%(asctime)s %(levelname)s %(message)s' LOGGING_FORMAT_STANDARD_FILE = '%(asctime)s %(levelname)s %(message)s'
class _DeprecatedLogger(object): class _DeprecatedLogger:
def __init__(self, logger, name): def __init__(self, logger, name):
self._logger = logger self._logger = logger
self._name = name self._name = name
@ -133,7 +133,7 @@ def get_logger(who, bind_logger_names=False):
return logger return logger
class Filter(object): class Filter:
def __init__(self, regexp, level): def __init__(self, regexp, level):
self.regexp = re.compile(regexp) self.regexp = re.compile(regexp)
self.level = level self.level = level

View File

@ -126,7 +126,7 @@ def ldap_initialize(uri, cacertfile=None):
return conn return conn
class _ServerSchema(object): class _ServerSchema:
''' '''
Properties of a schema retrieved from an LDAP server. Properties of a schema retrieved from an LDAP server.
''' '''
@ -137,7 +137,7 @@ class _ServerSchema(object):
self.retrieve_timestamp = time.time() self.retrieve_timestamp = time.time()
class SchemaCache(object): class SchemaCache:
''' '''
Cache the schema's from individual LDAP servers. Cache the schema's from individual LDAP servers.
''' '''
@ -635,7 +635,7 @@ class SingleValueLDAPEntryView(LDAPEntryView):
self._entry[name] = [value] self._entry[name] = [value]
class LDAPClient(object): class LDAPClient:
"""LDAP backend class """LDAP backend class
This class abstracts a LDAP connection, providing methods that work with This class abstracts a LDAP connection, providing methods that work with

View File

@ -61,7 +61,7 @@ def split_principal_name(principal_name):
@six.python_2_unicode_compatible @six.python_2_unicode_compatible
class Principal(object): class Principal:
""" """
Container for the principal name and realm according to RFC 1510 Container for the principal name and realm according to RFC 1510
""" """

View File

@ -38,7 +38,8 @@ __all__ = ['SSHPublicKey']
OPENSSH_BASE_REGEX = re.compile(r'^[\t ]*(?P<keytype>[^\x00\n\r]+?) [\t ]*(?P<key>[^\x00\n\r]+?)(?:[\t ]+(?P<comment>[^\x00\n\r]*?)[\t ]*)?$') OPENSSH_BASE_REGEX = re.compile(r'^[\t ]*(?P<keytype>[^\x00\n\r]+?) [\t ]*(?P<key>[^\x00\n\r]+?)(?:[\t ]+(?P<comment>[^\x00\n\r]*?)[\t ]*)?$')
OPENSSH_OPTIONS_REGEX = re.compile(r'(?P<name>[-0-9A-Za-z]+)(?:="(?P<value>(?:\\"|[^\x00\n\r"])*)")?') OPENSSH_OPTIONS_REGEX = re.compile(r'(?P<name>[-0-9A-Za-z]+)(?:="(?P<value>(?:\\"|[^\x00\n\r"])*)")?')
class SSHPublicKey(object):
class SSHPublicKey:
""" """
SSH public key object. SSH public key object.
""" """

View File

@ -81,7 +81,7 @@ As a result, you can redirect the advice's output directly to a script file.
DEFAULT_INDENTATION_INCREMENT = 2 DEFAULT_INDENTATION_INCREMENT = 2
class _IndentationTracker(object): class _IndentationTracker:
""" """
A simple wrapper that tracks the indentation level of the generated bash A simple wrapper that tracks the indentation level of the generated bash
commands commands
@ -130,7 +130,7 @@ class _IndentationTracker(object):
self._recompute_indentation_level() self._recompute_indentation_level()
class CompoundStatement(object): class CompoundStatement:
""" """
Wrapper around indented blocks of Bash statements. Wrapper around indented blocks of Bash statements.
@ -221,7 +221,7 @@ class ForLoop(CompoundStatement):
self.advice_output.command('done') self.advice_output.command('done')
class _AdviceOutput(object): class _AdviceOutput:
def __init__(self): def __init__(self):
self.content = [] self.content = []

View File

@ -193,7 +193,7 @@ class ExtendedDNControl(LDAPControl):
) )
class DomainValidator(object): class DomainValidator:
ATTR_FLATNAME = 'ipantflatname' ATTR_FLATNAME = 'ipantflatname'
ATTR_SID = 'ipantsecurityidentifier' ATTR_SID = 'ipantsecurityidentifier'
ATTR_TRUSTED_SID = 'ipanttrusteddomainsid' ATTR_TRUSTED_SID = 'ipanttrusteddomainsid'
@ -824,7 +824,7 @@ def string_to_array(what):
return [ord(v) for v in what] return [ord(v) for v in what]
class TrustDomainInstance(object): class TrustDomainInstance:
def __init__(self, hostname, creds=None): def __init__(self, hostname, creds=None):
self.parm = param.LoadParm() self.parm = param.LoadParm()
@ -1569,7 +1569,7 @@ def retrieve_remote_domain(hostname, local_flatname,
return rd return rd
class TrustDomainJoins(object): class TrustDomainJoins:
def __init__(self, api): def __init__(self, api):
self.api = api self.api = api
self.local_domain = None self.local_domain = None

View File

@ -62,7 +62,7 @@ class IPADomainIsNotManagedByIPAError(Exception):
pass pass
class IPASystemRecords(object): class IPASystemRecords:
# fixme do it configurable # fixme do it configurable
PRIORITY_HIGH = 0 PRIORITY_HIGH = 0

View File

@ -174,7 +174,7 @@ def ldap2p11helper_api_params(ldap_key):
return unwrap_params return unwrap_params
class AbstractHSM(object): class AbstractHSM:
def _filter_replica_keys(self, all_keys): def _filter_replica_keys(self, all_keys):
replica_keys = {} replica_keys = {}
for key_id, key in all_keys.items(): for key_id, key in all_keys.items():

View File

@ -31,7 +31,8 @@ time_bindfmt = '%Y%m%d%H%M%S'
FILE_PERM = (stat.S_IRUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IWUSR) FILE_PERM = (stat.S_IRUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IWUSR)
DIR_PERM = (stat.S_IRWXU | stat.S_IRWXG) DIR_PERM = (stat.S_IRWXU | stat.S_IRWXG)
class BINDMgr(object):
class BINDMgr:
"""BIND key manager. It does LDAP->BIND key files synchronization. """BIND key manager. It does LDAP->BIND key files synchronization.
One LDAP object with idnsSecKey object class will produce One LDAP object with idnsSecKey object class will produce

View File

@ -19,7 +19,7 @@ ENTRYUUID_PREFIX = "/var/lib/ipa/dns/zone/entryUUID/"
ENTRYUUID_PREFIX_LEN = len(ENTRYUUID_PREFIX) ENTRYUUID_PREFIX_LEN = len(ENTRYUUID_PREFIX)
class ZoneListReader(object): class ZoneListReader:
def __init__(self): def __init__(self):
self.names = set() # dns.name self.names = set() # dns.name
self.uuids = set() # UUID strings self.uuids = set() # UUID strings
@ -119,7 +119,7 @@ class LDAPZoneListReader(ZoneListReader):
self._del_zone(zone_ldap['idnsname'][0], uuid) self._del_zone(zone_ldap['idnsname'][0], uuid)
class ODSMgr(object): class ODSMgr:
"""OpenDNSSEC zone manager. It does LDAP->ODS synchronization. """OpenDNSSEC zone manager. It does LDAP->ODS synchronization.
Zones with idnsSecInlineSigning attribute = TRUE in LDAP are added Zones with idnsSecInlineSigning attribute = TRUE in LDAP are added

View File

@ -6,7 +6,8 @@ import errno
import shutil import shutil
import tempfile import tempfile
class TemporaryDirectory(object):
class TemporaryDirectory:
def __init__(self, root): def __init__(self, root):
self.root = root self.root = root

View File

@ -579,7 +579,7 @@ def ensure_dnsserver_container_exists(ldap, api_instance, logger=logger):
logger.debug('cn=servers,cn=dns container already exists') logger.debug('cn=servers,cn=dns container already exists')
class DnsBackup(object): class DnsBackup:
def __init__(self, service): def __init__(self, service):
self.service = service self.service = service
self.zones = {} self.zones = {}

View File

@ -1937,7 +1937,7 @@ def update_ipa_conf():
parser.write(f) parser.write(f)
class ExternalCAProfile(object): class ExternalCAProfile:
""" """
An external CA profile configuration. Currently the only An external CA profile configuration. Currently the only
subclasses are for Microsoft CAs, for providing data in the subclasses are for Microsoft CAs, for providing data in the

View File

@ -136,7 +136,7 @@ def is_ipa_issued_cert(api, cert):
return DN(cert.issuer) == cacert_subject return DN(cert.issuer) == cacert_subject
class CertDB(object): class CertDB:
"""An IPA-server-specific wrapper around NSS """An IPA-server-specific wrapper around NSS
This class knows IPA-specific details such as nssdir location, or the This class knows IPA-specific details such as nssdir location, or the
@ -711,7 +711,7 @@ class CertDB(object):
self.nssdb.convert_db() self.nssdb.convert_db()
class _CrossProcessLock(object): class _CrossProcessLock:
_DATETIME_FORMAT = '%Y%m%d%H%M%S%f' _DATETIME_FORMAT = '%Y%m%d%H%M%S%f'
def __init__(self, filename): def __init__(self, filename):

View File

@ -111,7 +111,7 @@ class UpgradeMissingVersionError(UpgradeVersionError):
pass pass
class ReplicaConfig(object): class ReplicaConfig:
def __init__(self, top_dir=None): def __init__(self, top_dir=None):
self.realm_name = "" self.realm_name = ""
self.domain_name = "" self.domain_name = ""

View File

@ -238,7 +238,7 @@ def convertKeyDerivation(value):
}.get(value.lower(), None) }.get(value.lower(), None)
class XMLDecryptor(object): class XMLDecryptor:
"""This decrypts values from XML as specified in: """This decrypts values from XML as specified in:
* http://www.w3.org/TR/xmlenc-core/ * http://www.w3.org/TR/xmlenc-core/
* RFC 6931""" * RFC 6931"""
@ -285,7 +285,7 @@ class XMLDecryptor(object):
return out return out
class PSKCKeyPackage(object): class PSKCKeyPackage:
_XML = { _XML = {
'pskc:DeviceInfo': { 'pskc:DeviceInfo': {
'pskc:IssueNo/text()': ('issueno', unicode), 'pskc:IssueNo/text()': ('issueno', unicode),
@ -451,7 +451,7 @@ class PSKCKeyPackage(object):
out['ipatoken' + key] = unicode(reducer(dates).strftime("%Y%m%d%H%M%SZ")) out['ipatoken' + key] = unicode(reducer(dates).strftime("%Y%m%d%H%M%SZ"))
class PSKCDocument(object): class PSKCDocument:
@property @property
def keyname(self): def keyname(self):
return self.__keyname return self.__keyname

View File

@ -133,7 +133,7 @@ def safe_output(attr, values):
return values return values
class LDAPUpdate(object): class LDAPUpdate:
action_keywords = ["default", "add", "remove", "only", "onlyifexist", "deleteentry", "replace", "addifnew", "addifexist"] action_keywords = ["default", "add", "remove", "only", "onlyifexist", "deleteentry", "replace", "addifnew", "addifexist"]
def __init__(self, dm_password=None, sub_dict={}, def __init__(self, dm_password=None, sub_dict={},

View File

@ -53,7 +53,7 @@ def entry_to_update(entry):
return update return update
class GenerateUpdateMixin(object): class GenerateUpdateMixin:
def _dn_suffix_replace(self, dn, old_suffix, new_suffix): def _dn_suffix_replace(self, dn, old_suffix, new_suffix):
"""Replace all occurences of "old" AVAs in a DN by "new" """Replace all occurences of "old" AVAs in a DN by "new"

View File

@ -215,7 +215,7 @@ def wait_for_entry(connection, dn, timeout, attr=None, attrvalue='*',
time.sleep(1) time.sleep(1)
class ReplicationManager(object): class ReplicationManager:
"""Manage replication agreements """Manage replication agreements
between DS servers, and sync agreements with Windows servers between DS servers, and sync agreements with Windows servers

View File

@ -281,7 +281,7 @@ def enable_services(fqdn):
logger.debug("Enabled service %s for %s", name, fqdn) logger.debug("Enabled service %s for %s", name, fqdn)
class Service(object): class Service:
def __init__(self, service_name, service_desc=None, sstore=None, def __init__(self, service_name, service_desc=None, sstore=None,
fstore=None, api=api, realm_name=None, fstore=None, api=api, realm_name=None,
service_user=None, service_prefix=None, service_user=None, service_prefix=None,

View File

@ -705,7 +705,7 @@ def _set_wrapping_mech_parameters(mech_type, mech):
######################################################################## ########################################################################
# P11_Helper object # P11_Helper object
# #
class P11_Helper(object): class P11_Helper:
@property @property
def p11(self): def p11(self):
return self.p11_ptr[0] return self.p11_ptr[0]

View File

@ -402,7 +402,7 @@ DBUS_SSSD_USERS_IF = 'org.freedesktop.sssd.infopipe.Users'
DBUS_SSSD_USER_IF = 'org.freedesktop.sssd.infopipe.Users.User' DBUS_SSSD_USER_IF = 'org.freedesktop.sssd.infopipe.Users.User'
class _sssd(object): class _sssd:
""" """
Auxiliary class for SSSD infopipe DBus. Auxiliary class for SSSD infopipe DBus.
""" """

View File

@ -17,7 +17,7 @@ import urllib3
import requests import requests
class CustodiaClient(object): class CustodiaClient:
def _client_keys(self): def _client_keys(self):
return self.ikk.server_keys return self.ikk.server_keys

View File

@ -7,7 +7,7 @@ import ldap.filter
from ipapython.ipaldap import ldap_initialize from ipapython.ipaldap import ldap_initialize
class iSecLdap(object): class iSecLdap:
def __init__(self, uri, auth_type=None): def __init__(self, uri, auth_type=None):
self.uri = uri self.uri = uri

View File

@ -19,7 +19,7 @@ class UnknownKeyName(Exception):
pass pass
class DBMAPHandler(object): class DBMAPHandler:
def __init__(self, config, dbmap, nickname): def __init__(self, config, dbmap, nickname):
raise NotImplementedError raise NotImplementedError

View File

@ -91,7 +91,7 @@ ABSENT = u'absent'
@six.add_metaclass(abc.ABCMeta) @six.add_metaclass(abc.ABCMeta)
class LDAPBasedProperty(object): class LDAPBasedProperty:
""" """
base class for all master properties defined by LDAP content base class for all master properties defined by LDAP content
:param attr_name: attribute name :param attr_name: attribute name

View File

@ -128,7 +128,7 @@ def _format_topology_errors(topo_errors):
return "\n".join(msg_lines) return "\n".join(msg_lines)
class TopologyConnectivity(object): class TopologyConnectivity:
""" """
a simple class abstracting the replication connectivity in managed topology a simple class abstracting the replication connectivity in managed topology
""" """

View File

@ -30,7 +30,8 @@ import six
ISSUER_CN = 'example.test' ISSUER_CN = 'example.test'
class ExternalCA(object):
class ExternalCA:
""" """
Provide external CA for testing Provide external CA for testing
""" """

View File

@ -25,7 +25,7 @@ BASE_DIR = os.path.abspath(os.path.join(HERE, os.pardir, os.pardir))
@pytest.mark.tier0 @pytest.mark.tier0
@pytest.mark.needs_ipaapi @pytest.mark.needs_ipaapi
class TestCLIParsing(object): class TestCLIParsing:
"""Tests that commandlines are correctly parsed to Command keyword args """Tests that commandlines are correctly parsed to Command keyword args
""" """
def check_command(self, commandline, expected_command_name, **kw_expected): def check_command(self, commandline, expected_command_name, **kw_expected):

View File

@ -37,7 +37,7 @@ pytestmark = pytest.mark.needs_ipaapi
@pytest.mark.tier0 @pytest.mark.tier0
class CLITestContext(object): class CLITestContext:
"""Context manager that replaces stdout & stderr, and catches SystemExit """Context manager that replaces stdout & stderr, and catches SystemExit
Whatever was printed to the streams is available in ``stdout`` and Whatever was printed to the streams is available in ``stdout`` and

View File

@ -28,7 +28,7 @@ from pytest_sourceorder import ordered
@ordered @ordered
@pytest.mark.usefixtures('mh') @pytest.mark.usefixtures('mh')
@pytest.mark.usefixtures('integration_logs') @pytest.mark.usefixtures('integration_logs')
class IntegrationTest(object): class IntegrationTest:
num_replicas = 0 num_replicas = 0
num_clients = 0 num_clients = 0
num_ad_domains = 0 num_ad_domains = 0

View File

@ -35,7 +35,7 @@ from ipatests.pytest_ipa.integration import tasks
from ipatests.test_integration import test_trust as trust_tests from ipatests.test_integration import test_trust as trust_tests
class BaseTestLegacyClient(object): class BaseTestLegacyClient:
""" """
Tests legacy client support. Tests legacy client support.
""" """
@ -470,14 +470,14 @@ class BaseTestLegacyClient(object):
# Base classes with attributes that are specific for each legacy client test # Base classes with attributes that are specific for each legacy client test
class BaseTestLegacySSSDBefore19RedHat(object): class BaseTestLegacySSSDBefore19RedHat:
advice_id = 'config-redhat-sssd-before-1-9' advice_id = 'config-redhat-sssd-before-1-9'
required_extra_roles = ['legacy_client_sssd_redhat'] required_extra_roles = ['legacy_client_sssd_redhat']
optional_extra_roles = ['ad_subdomain', 'ad_treedomain'] optional_extra_roles = ['ad_subdomain', 'ad_treedomain']
class BaseTestLegacyNssPamLdapdRedHat(object): class BaseTestLegacyNssPamLdapdRedHat:
advice_id = 'config-redhat-nss-pam-ldapd' advice_id = 'config-redhat-nss-pam-ldapd'
required_extra_roles = ['legacy_client_nss_pam_ldapd_redhat'] required_extra_roles = ['legacy_client_nss_pam_ldapd_redhat']
@ -487,7 +487,7 @@ class BaseTestLegacyNssPamLdapdRedHat(object):
tasks.clear_sssd_cache(self.master) tasks.clear_sssd_cache(self.master)
class BaseTestLegacyNssLdapRedHat(object): class BaseTestLegacyNssLdapRedHat:
advice_id = 'config-redhat-nss-ldap' advice_id = 'config-redhat-nss-ldap'
required_extra_roles = ['legacy_client_nss_ldap_redhat'] required_extra_roles = ['legacy_client_nss_ldap_redhat']
@ -529,7 +529,7 @@ class BaseTestLegacyClientNonPosix(BaseTestLegacyClient,
pass pass
class BaseTestSSSDMixin(object): class BaseTestSSSDMixin:
def test_apply_advice(self): def test_apply_advice(self):
super(BaseTestSSSDMixin, self).test_apply_advice() super(BaseTestSSSDMixin, self).test_apply_advice()

View File

@ -29,7 +29,7 @@ from pytest_sourceorder import ordered
@ordered @ordered
class TestBase(object): class TestBase:
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
cls.value = 'unchanged' cls.value = 'unchanged'

View File

@ -82,7 +82,7 @@ def extend_dict(defaults, *others, **kwargs):
return copy.deepcopy(result) return copy.deepcopy(result)
class CheckConfig(object): class CheckConfig:
def check_config(self, conf): def check_config(self, conf):
pass pass

View File

@ -54,7 +54,7 @@ class IdentityFormatter(csrgen.Formatter):
return {'options': syntax_rules} return {'options': syntax_rules}
class test_Formatter(object): class test_Formatter:
def test_prepare_data_rule_with_data_source(self, formatter): def test_prepare_data_rule_with_data_source(self, formatter):
data_rule = csrgen.Rule('uid', '{{subject.uid.0}}', data_rule = csrgen.Rule('uid', '{{subject.uid.0}}',
{'data_source': 'subject.uid.0'}) {'data_source': 'subject.uid.0'})
@ -135,7 +135,7 @@ class test_Formatter(object):
assert prepared == 'rule1,rule2' assert prepared == 'rule1,rule2'
class test_FileRuleProvider(object): class test_FileRuleProvider:
def test_rule_basic(self, rule_provider): def test_rule_basic(self, rule_provider):
rule_name = 'basic' rule_name = 'basic'
@ -168,7 +168,7 @@ class test_FileRuleProvider(object):
rule_provider.rules_for_profile('nosuchprofile') rule_provider.rules_for_profile('nosuchprofile')
class test_CSRGenerator(object): class test_CSRGenerator:
def test_userCert_OpenSSL(self, generator): def test_userCert_OpenSSL(self, generator):
principal = { principal = {
'uid': ['testuser'], 'uid': ['testuser'],
@ -264,7 +264,7 @@ class test_CSRGenerator(object):
config.encode('utf-8'), adaptor.get_subject_public_key_info()) config.encode('utf-8'), adaptor.get_subject_public_key_info())
class test_rule_handling(object): class test_rule_handling:
def test_optionalAttributeMissing(self, generator): def test_optionalAttributeMissing(self, generator):
principal = {'uid': 'testuser'} principal = {'uid': 'testuser'}
rule_provider = StubRuleProvider() rule_provider = StubRuleProvider()

View File

@ -49,7 +49,7 @@ class test_Backend(ClassChecker):
assert self.cls.__bases__ == (plugable.Plugin,) assert self.cls.__bases__ == (plugable.Plugin,)
class Disconnect(object): class Disconnect:
called = False called = False
def __init__(self, id=None): def __init__(self, id=None):

View File

@ -108,7 +108,7 @@ def test_lock():
assert str(e) == 'already locked: %r' % o assert str(e) == 'already locked: %r' % o
# Test with another class implemented locking protocol: # Test with another class implemented locking protocol:
class Lockable(object): class Lockable:
__locked = False __locked = False
def __lock__(self): def __lock__(self):
self.__locked = True self.__locked = True
@ -122,7 +122,7 @@ def test_lock():
assert str(e) == 'already locked: %r' % o assert str(e) == 'already locked: %r' % o
# Test with a class incorrectly implementing the locking protocol: # Test with a class incorrectly implementing the locking protocol:
class Broken(object): class Broken:
def __lock__(self): def __lock__(self):
pass pass
def __islocked__(self): def __islocked__(self):
@ -145,7 +145,7 @@ def test_islocked():
assert f(o) is True assert f(o) is True
# Test with another class implemented locking protocol: # Test with another class implemented locking protocol:
class Lockable(object): class Lockable:
__locked = False __locked = False
def __lock__(self): def __lock__(self):
self.__locked = True self.__locked = True
@ -157,7 +157,7 @@ def test_islocked():
assert f(o) is True assert f(o) is True
# Test with a class incorrectly implementing the locking protocol: # Test with a class incorrectly implementing the locking protocol:
class Broken(object): class Broken:
__lock__ = False __lock__ = False
def __islocked__(self): def __islocked__(self):
return False return False
@ -207,7 +207,7 @@ def membername(i):
return 'member%03d' % i return 'member%03d' % i
class DummyMember(object): class DummyMember:
def __init__(self, i): def __init__(self, i):
self.i = i self.i = i
self.name = self.__name__ = membername(i) self.name = self.__name__ = membername(i)

View File

@ -76,7 +76,7 @@ def get_cmd_name(i):
return 'cmd_%d' % i return 'cmd_%d' % i
class DummyCommand(object): class DummyCommand:
def __init__(self, name): def __init__(self, name):
self.__name = name self.__name = name
@ -85,7 +85,7 @@ class DummyCommand(object):
name = property(__get_name) name = property(__get_name)
class DummyAPI(object): class DummyAPI:
def __init__(self, cnt): def __init__(self, cnt):
self.__cmd = plugable.APINameSpace(self.__cmd_iter(cnt), DummyCommand) self.__cmd = plugable.APINameSpace(self.__cmd_iter(cnt), DummyCommand)

View File

@ -41,7 +41,7 @@ if six.PY3:
pytestmark = pytest.mark.tier0 pytestmark = pytest.mark.tier0
class PrivateExceptionTester(object): class PrivateExceptionTester:
_klass = None _klass = None
__klass = None __klass = None
@ -193,7 +193,7 @@ class test_PluginMissingOverrideError(PrivateExceptionTester):
############################################################################## ##############################################################################
# Unit tests for public errors: # Unit tests for public errors:
class PublicExceptionTester(object): class PublicExceptionTester:
_klass = None _klass = None
__klass = None __klass = None
@ -338,7 +338,7 @@ class test_PublicError(PublicExceptionTester):
assert_equal(list(inst_match),list(instructions)) assert_equal(list(inst_match),list(instructions))
class BaseMessagesTest(object): class BaseMessagesTest:
"""Generic test for all of a module's errors or messages """Generic test for all of a module's errors or messages
""" """
def test_public_messages(self): def test_public_messages(self):
@ -367,7 +367,7 @@ class BaseMessagesTest(object):
pass pass
class test_PublicErrors(object): class test_PublicErrors:
message_list = errors.public_errors message_list = errors.public_errors
errno_range = list(range(900, 5999)) errno_range = list(range(900, 5999))
required_classes = (Exception, errors.PublicError) required_classes = (Exception, errors.PublicError)

View File

@ -71,7 +71,7 @@ def test_is_rule():
is_rule = frontend.is_rule is_rule = frontend.is_rule
flag = frontend.RULE_FLAG flag = frontend.RULE_FLAG
class no_call(object): class no_call:
def __init__(self, value): def __init__(self, value):
if value is not None: if value is not None:
assert value in (True, False) assert value in (True, False)
@ -199,7 +199,7 @@ class test_Command(ClassChecker):
""" """
Return a standard subclass of `ipalib.frontend.Command`. Return a standard subclass of `ipalib.frontend.Command`.
""" """
class Rule(object): class Rule:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
@ -230,7 +230,7 @@ class test_Command(ClassChecker):
""" """
Helper method used to test args and options. Helper method used to test args and options.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -276,7 +276,7 @@ class test_Command(ClassChecker):
""" """
Test the ``ipalib.frontend.Command.args`` instance attribute. Test the ``ipalib.frontend.Command.args`` instance attribute.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -333,7 +333,7 @@ class test_Command(ClassChecker):
""" """
Test the ``ipalib.frontend.Command.options`` instance attribute. Test the ``ipalib.frontend.Command.options`` instance attribute.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -357,7 +357,7 @@ class test_Command(ClassChecker):
""" """
Test the ``ipalib.frontend.Command.output`` instance attribute. Test the ``ipalib.frontend.Command.output`` instance attribute.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -405,7 +405,7 @@ class test_Command(ClassChecker):
""" """
Test the `ipalib.frontend.Command.convert` method. Test the `ipalib.frontend.Command.convert` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -422,7 +422,7 @@ class test_Command(ClassChecker):
""" """
Test the `ipalib.frontend.Command.normalize` method. Test the `ipalib.frontend.Command.normalize` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -470,7 +470,7 @@ class test_Command(ClassChecker):
""" """
Test the `ipalib.frontend.Command.validate` method. Test the `ipalib.frontend.Command.validate` method.
""" """
class api(object): class api:
env = config.Env(context='cli') env = config.Env(context='cli')
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
@ -689,7 +689,7 @@ class test_Command(ClassChecker):
""" """
Test the `ipalib.frontend.Command.validate_output` method. Test the `ipalib.frontend.Command.validate_output` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -731,7 +731,7 @@ class test_Command(ClassChecker):
""" """
Test `ipalib.frontend.Command.validate_output` per-type validation. Test `ipalib.frontend.Command.validate_output` per-type validation.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -760,7 +760,7 @@ class test_Command(ClassChecker):
""" """
Test `ipalib.frontend.Command.validate_output` nested validation. Test `ipalib.frontend.Command.validate_output` nested validation.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -795,7 +795,7 @@ class test_Command(ClassChecker):
""" """
Test the `ipalib.frontend.Command.get_output_params` method. Test the `ipalib.frontend.Command.get_output_params` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -831,7 +831,7 @@ class test_LocalOrRemote(ClassChecker):
""" """
Test the `ipalib.frontend.LocalOrRemote.__init__` method. Test the `ipalib.frontend.LocalOrRemote.__init__` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -914,7 +914,7 @@ class test_Object(ClassChecker):
Test the `ipalib.frontend.Object.__init__` method. Test the `ipalib.frontend.Object.__init__` method.
""" """
# Setup for test: # Setup for test:
class DummyAttribute(object): class DummyAttribute:
def __init__(self, obj_name, attr_name, name=None): def __init__(self, obj_name, attr_name, name=None):
self.obj_name = obj_name self.obj_name = obj_name
self.attr_name = attr_name self.attr_name = attr_name
@ -942,7 +942,7 @@ class test_Object(ClassChecker):
cnt = 10 cnt = 10
methods_format = 'method_%d' methods_format = 'method_%d'
class FakeAPI(object): class FakeAPI:
def __init__(self): def __init__(self):
self._API__plugins = get_attributes(cnt, methods_format) self._API__plugins = get_attributes(cnt, methods_format)
self._API__default_map = {} self._API__default_map = {}
@ -1111,13 +1111,16 @@ class test_Attribute(ClassChecker):
Test the `ipalib.frontend.Attribute.__init__` method. Test the `ipalib.frontend.Attribute.__init__` method.
""" """
user_obj = 'The user frontend.Object instance' user_obj = 'The user frontend.Object instance'
class api(object):
class api:
Object = {("user", "1"): user_obj} Object = {("user", "1"): user_obj}
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
class user_add(self.cls): class user_add(self.cls):
pass pass
o = user_add(api) o = user_add(api)
assert read_only(o, 'api') is api assert read_only(o, 'api') is api
assert read_only(o, 'obj') is user_obj assert read_only(o, 'obj') is user_obj

View File

@ -173,7 +173,7 @@ def test_parse_param_spec():
assert str(e) == TYPE_ERROR % ('spec', str, bad_value, type(bad_value)) assert str(e) == TYPE_ERROR % ('spec', str, bad_value, type(bad_value))
class DummyRule(object): class DummyRule:
def __init__(self, error=None): def __init__(self, error=None):
assert error is None or type(error) is unicode assert error is None or type(error) is unicode
self.error = error self.error = error
@ -581,7 +581,7 @@ class test_Param(ClassChecker):
""" """
Test the `ipalib.parameters.Param.get_default` method. Test the `ipalib.parameters.Param.get_default` method.
""" """
class PassThrough(object): class PassThrough:
value = None value = None
def __call__(self, value): def __call__(self, value):

View File

@ -35,6 +35,7 @@ import pytest
pytestmark = pytest.mark.tier0 pytestmark = pytest.mark.tier0
class test_Plugin(ClassChecker): class test_Plugin(ClassChecker):
""" """
Test the `ipalib.plugable.Plugin` class. Test the `ipalib.plugable.Plugin` class.
@ -88,7 +89,7 @@ class test_Plugin(ClassChecker):
""" """
Test the `ipalib.plugable.Plugin.finalize` method. Test the `ipalib.plugable.Plugin.finalize` method.
""" """
class api(object): class api:
@staticmethod @staticmethod
def is_production_mode(): def is_production_mode():
return False return False
@ -102,14 +103,15 @@ def test_Registry():
""" """
Test the `ipalib.plugable.Registry` class Test the `ipalib.plugable.Registry` class
""" """
class Base1(object): class Base1:
pass
class Base2(object):
pass pass
class Base2:
pass
class plugin1(Base1): class plugin1(Base1):
pass pass
class plugin2(Base2): class plugin2(Base2):
pass pass

View File

@ -262,7 +262,7 @@ class test_xmlclient(PluginTester):
@pytest.mark.skip_ipaclient_unittest @pytest.mark.skip_ipaclient_unittest
@pytest.mark.needs_ipaapi @pytest.mark.needs_ipaapi
class test_xml_introspection(object): class test_xml_introspection:
@classmethod @classmethod
def setup_class(cls): def setup_class(cls):
try: try:

View File

@ -50,7 +50,7 @@ def test_create_translation():
assert context.__dict__[key] is t assert context.__dict__[key] is t
class test_TestLang(object): class test_TestLang:
lang_env_vars = {'LC_ALL', 'LC_MESSAGES', 'LANGUAGE', 'LANG'} lang_env_vars = {'LC_ALL', 'LC_MESSAGES', 'LANGUAGE', 'LANG'}
def setup_lang(self): def setup_lang(self):
@ -148,7 +148,8 @@ class test_TestLang(object):
result = self.po_file_iterate(self.po_file, get_msgstr, get_msgstr_plural) result = self.po_file_iterate(self.po_file, get_msgstr, get_msgstr_plural)
assert result == 0 assert result == 0
class test_LazyText(object):
class test_LazyText:
klass = text.LazyText klass = text.LazyText
@ -159,7 +160,7 @@ class test_LazyText(object):
assert inst.key == ('foo', 'bar') assert inst.key == ('foo', 'bar')
class test_FixMe(object): class test_FixMe:
klass = text.FixMe klass = text.FixMe
def test_init(self): def test_init(self):
@ -178,7 +179,7 @@ class test_FixMe(object):
assert type(unicode(inst)) is unicode assert type(unicode(inst)) is unicode
class test_Gettext(object): class test_Gettext:
klass = text.Gettext klass = text.Gettext
@ -240,7 +241,7 @@ class test_Gettext(object):
assert (inst4 != inst1) is True assert (inst4 != inst1) is True
class test_NGettext(object): class test_NGettext:
klass = text.NGettext klass = text.NGettext
@ -318,7 +319,7 @@ class test_NGettext(object):
assert (inst4 != inst1) is True assert (inst4 != inst1) is True
class test_GettextFactory(object): class test_GettextFactory:
klass = text.GettextFactory klass = text.GettextFactory
@ -351,7 +352,7 @@ class test_GettextFactory(object):
assert g.localedir == 'bar' assert g.localedir == 'bar'
class test_NGettextFactory(object): class test_NGettextFactory:
klass = text.NGettextFactory klass = text.NGettextFactory
@ -385,7 +386,7 @@ class test_NGettextFactory(object):
assert ng.localedir == 'bar' assert ng.localedir == 'bar'
class test_ConcatenatedText(object): class test_ConcatenatedText:
klass = text.ConcatenatedLazyText klass = text.ConcatenatedLazyText

View File

@ -160,7 +160,8 @@ QUs1Hx1wL7mL4U8fKCFDKA+ds2B2xWgoZg==
-----END CERTIFICATE----- -----END CERTIFICATE-----
''' '''
class test_x509(object):
class test_x509:
""" """
Test `ipalib.x509` Test `ipalib.x509`

View File

@ -33,7 +33,7 @@ def tempdir(request):
return tempdir return tempdir
class test_set_directive_lines(object): class test_set_directive_lines:
def test_remove_directive(self): def test_remove_directive(self):
lines = directivesetter.set_directive_lines( lines = directivesetter.set_directive_lines(
False, '=', 'foo', None, EXAMPLE_CONFIG, comment="#") False, '=', 'foo', None, EXAMPLE_CONFIG, comment="#")
@ -50,7 +50,7 @@ class test_set_directive_lines(object):
assert list(lines) == ['foo=3\n', 'foobar=2\n'] assert list(lines) == ['foo=3\n', 'foobar=2\n']
class test_set_directive_lines_whitespace(object): class test_set_directive_lines_whitespace:
def test_remove_directive(self): def test_remove_directive(self):
lines = directivesetter.set_directive_lines( lines = directivesetter.set_directive_lines(
False, ' ', 'foo', None, WHITESPACE_CONFIG, comment="#") False, ' ', 'foo', None, WHITESPACE_CONFIG, comment="#")
@ -72,7 +72,7 @@ class test_set_directive_lines_whitespace(object):
assert list(lines) == ['foo 1\n', 'foobar 6\n'] assert list(lines) == ['foo 1\n', 'foobar 6\n']
class test_set_directive(object): class test_set_directive:
def test_set_directive(self): def test_set_directive(self):
"""Check that set_directive writes the new data and preserves mode.""" """Check that set_directive writes the new data and preserves mode."""
fd, filename = tempfile.mkstemp() fd, filename = tempfile.mkstemp()
@ -100,7 +100,7 @@ class test_set_directive(object):
os.remove(filename) os.remove(filename)
class test_get_directive(object): class test_get_directive:
def test_get_directive(self, tmpdir): def test_get_directive(self, tmpdir):
configfile = tmpdir.join('config') configfile = tmpdir.join('config')
configfile.write(''.join(EXAMPLE_CONFIG)) configfile.write(''.join(EXAMPLE_CONFIG))
@ -113,7 +113,7 @@ class test_get_directive(object):
separator='=') separator='=')
class test_get_directive_whitespace(object): class test_get_directive_whitespace:
def test_get_directive(self, tmpdir): def test_get_directive(self, tmpdir):
configfile = tmpdir.join('config') configfile = tmpdir.join('config')
configfile.write(''.join(WHITESPACE_CONFIG)) configfile.write(''.join(WHITESPACE_CONFIG))

View File

@ -33,7 +33,7 @@ def mkuri(priority, weight, target):
) )
class TestSortSRV(object): class TestSortSRV:
def test_empty(self): def test_empty(self):
assert dnsutil.sort_prio_weight([]) == [] assert dnsutil.sort_prio_weight([]) == []
@ -96,7 +96,7 @@ class TestSortSRV(object):
assert len(dnsutil.sort_prio_weight(records)) == len(records) assert len(dnsutil.sort_prio_weight(records)) == len(records)
class TestSortURI(object): class TestSortURI:
def test_prio(self): def test_prio(self):
h1 = mkuri(1, 0, u"https://host1/api") h1 = mkuri(1, 0, u"https://host1/api")
h2 = mkuri(2, 0, u"https://host2/api") h2 = mkuri(2, 0, u"https://host2/api")

View File

@ -84,7 +84,7 @@ def test_ip_address(addr, words, prefixlen):
assert ip.prefixlen == prefixlen assert ip.prefixlen == prefixlen
class TestCIDict(object): class TestCIDict:
def setup(self): def setup(self):
self.cidict = ipautil.CIDict() self.cidict = ipautil.CIDict()
self.cidict["Key1"] = "val1" self.cidict["Key1"] = "val1"
@ -333,7 +333,7 @@ class TestCIDict(object):
assert list(dct.values()) == [None] * 3 assert list(dct.values()) == [None] * 3
class TestTimeParser(object): class TestTimeParser:
def test_simple(self): def test_simple(self):
timestr = "20070803" timestr = "20070803"

View File

@ -35,7 +35,8 @@ SIZE_256 = 'abcdefgh' * 32
SIZE_512 = 'abcdefgh' * 64 SIZE_512 = 'abcdefgh' * 64
SIZE_1024 = 'abcdefgh' * 128 SIZE_1024 = 'abcdefgh' * 128
class test_keyring(object):
class test_keyring:
""" """
Test the kernel keyring interface Test the kernel keyring interface
""" """

View File

@ -12,7 +12,7 @@ from ipapython import session_storage
@pytest.mark.skip_ipaclient_unittest @pytest.mark.skip_ipaclient_unittest
@pytest.mark.needs_ipaapi @pytest.mark.needs_ipaapi
class test_session_storage(object): class test_session_storage:
""" """
Test the session storage interface Test the session storage interface
""" """

View File

@ -24,7 +24,8 @@ from six.moves import urllib
from ipalib import api, util from ipalib import api, util
class Unauthorized_HTTP_test(object):
class Unauthorized_HTTP_test:
""" """
Base class for simple HTTP request tests executed against URI Base class for simple HTTP request tests executed against URI
with no required authorization with no required authorization

View File

@ -29,7 +29,7 @@ if six.PY3:
@pytest.mark.tier0 @pytest.mark.tier0
class test_adtrustinstance(object): class test_adtrustinstance:
""" """
Test `adtrustinstance`. Test `adtrustinstance`.
""" """

View File

@ -14,7 +14,7 @@ from ipaserver.install import cainstance
pytestmark = pytest.mark.tier0 pytestmark = pytest.mark.tier0
class test_ExternalCAProfile(object): class test_ExternalCAProfile:
def test_MSCSTemplateV1_good(self): def test_MSCSTemplateV1_good(self):
o = cainstance.MSCSTemplateV1("MySubCA") o = cainstance.MSCSTemplateV1("MySubCA")
assert hexlify(o.get_ext_data()) == b'1e0e004d007900530075006200430041' assert hexlify(o.get_ext_data()) == b'1e0e004d007900530075006200430041'

View File

@ -91,7 +91,7 @@ def p11(request, token_path):
return p11 return p11
class test_p11helper(object): class test_p11helper:
def test_generate_master_key(self, p11): def test_generate_master_key(self, p11):
assert p11.generate_master_key(master_key_label, master_key_id, assert p11.generate_master_key(master_key_label, master_key_id,
key_length=16, cka_wrap=True, key_length=16, cka_wrap=True,

View File

@ -80,7 +80,7 @@ def service(request):
@pytest.mark.skipif( @pytest.mark.skipif(
os.getuid() != 0, reason="kadmin.local is accesible only to root") os.getuid() != 0, reason="kadmin.local is accesible only to root")
class TestKadmin(object): class TestKadmin:
def assert_success(self, command, *args): def assert_success(self, command, *args):
""" """
Since kadmin.local returns 0 also when internal errors occur, we have Since kadmin.local returns 0 also when internal errors occur, we have

View File

@ -45,7 +45,7 @@ if six.PY3:
@pytest.mark.tier0 @pytest.mark.tier0
@pytest.mark.needs_ipaapi @pytest.mark.needs_ipaapi
class test_ldap(object): class test_ldap:
""" """
Test various LDAP client bind methods. Test various LDAP client bind methods.
""" """
@ -142,7 +142,7 @@ class test_ldap(object):
@pytest.mark.tier0 @pytest.mark.tier0
@pytest.mark.needs_ipaapi @pytest.mark.needs_ipaapi
class test_LDAPEntry(object): class test_LDAPEntry:
""" """
Test the LDAPEntry class Test the LDAPEntry class
""" """

View File

@ -27,7 +27,7 @@ from ipaserver.install.ipa_otptoken_import import convertHashName
basename = os.path.join(os.path.dirname(__file__), "data") basename = os.path.join(os.path.dirname(__file__), "data")
@pytest.mark.tier1 @pytest.mark.tier1
class test_otptoken_import(object): class test_otptoken_import:
def test_figure3(self): def test_figure3(self):
doc = PSKCDocument(os.path.join(basename, "pskc-figure3.xml")) doc = PSKCDocument(os.path.join(basename, "pskc-figure3.xml"))
assert doc.keyname is None assert doc.keyname is None

View File

@ -35,7 +35,8 @@ if six.PY3:
pytestmark = pytest.mark.tier0 pytestmark = pytest.mark.tier0
class StartResponse(object):
class StartResponse:
def __init__(self): def __init__(self):
self.reset() self.reset()
@ -135,7 +136,7 @@ def test_params_2_args_options():
assert f([args, options]) == (args, options) assert f([args, options]) == (args, options)
class test_session(object): class test_session:
klass = rpcserver.wsgi_dispatch klass = rpcserver.wsgi_dispatch
def test_route(self): def test_route(self):

View File

@ -218,7 +218,7 @@ master_data = {
} }
class MockMasterTopology(object): class MockMasterTopology:
""" """
object that will set up and tear down entries in LDAP backend to mimic object that will set up and tear down entries in LDAP backend to mimic
a presence of real IPA masters with services running on them. a presence of real IPA masters with services running on them.
@ -587,7 +587,7 @@ def dns_server(request):
return request.param return request.param
class TestServerRoleStatusRetrieval(object): class TestServerRoleStatusRetrieval:
def retrieve_role(self, master, role, mock_api, mock_masters): def retrieve_role(self, master, role, mock_api, mock_masters):
fqdn = mock_masters.get_fqdn(master) fqdn = mock_masters.get_fqdn(master)
return mock_api.Backend.serverroles.server_role_retrieve( return mock_api.Backend.serverroles.server_role_retrieve(
@ -683,7 +683,7 @@ class TestServerRoleStatusRetrieval(object):
'ca-dns-dnssec-keymaster-pkinit-server')) 'ca-dns-dnssec-keymaster-pkinit-server'))
class TestServerAttributes(object): class TestServerAttributes:
def config_retrieve(self, assoc_role_name, mock_api): def config_retrieve(self, assoc_role_name, mock_api):
return mock_api.Backend.serverroles.config_retrieve( return mock_api.Backend.serverroles.config_retrieve(
assoc_role_name) assoc_role_name)

View File

@ -11,7 +11,7 @@ import pytest
@pytest.mark.tier1 @pytest.mark.tier1
class TestTopologyPlugin(object): class TestTopologyPlugin:
""" """
Test Topology plugin from the DS point of view Test Topology plugin from the DS point of view
Testcase: http://www.freeipa.org/page/V4/Manage_replication_topology/ Testcase: http://www.freeipa.org/page/V4/Manage_replication_topology/

View File

@ -33,7 +33,8 @@ version_strings = [
def versions(request): def versions(request):
return request.param return request.param
class TestVersionComparsion(object):
class TestVersionComparsion:
def test_versions(self, versions): def test_versions(self, versions):
version_string1, version_string2, expected_comparison = versions version_string1, version_string2, expected_comparison = versions

View File

@ -49,7 +49,7 @@ else:
pattern_type = type(re.compile("")) pattern_type = type(re.compile(""))
class Prop(object): class Prop:
def __init__(self, *ops): def __init__(self, *ops):
self.__ops = frozenset(ops) self.__ops = frozenset(ops)
self.__prop = 'prop value' self.__prop = 'prop value'
@ -72,7 +72,7 @@ class Prop(object):
prop = property(__get_prop, __set_prop, __del_prop) prop = property(__get_prop, __set_prop, __del_prop)
class test_Fuzzy(object): class test_Fuzzy:
klass = util.Fuzzy klass = util.Fuzzy
def test_init(self): def test_init(self):

View File

@ -112,7 +112,7 @@ def screenshot(fn):
return screenshot_wrapper return screenshot_wrapper
class UI_driver(object): class UI_driver:
""" """
Base class for all UI integration tests Base class for all UI integration tests
""" """

View File

@ -89,7 +89,7 @@ def test_callback_registration():
messages.append(('Base registered callback', param)) messages.append(('Base registered callback', param))
callbacktest_base.register_callback('test', registered_callback) callbacktest_base.register_callback('test', registered_callback)
class SomeClass(object): class SomeClass:
def registered_callback(self, command, param): def registered_callback(self, command, param):
messages.append(('Registered callback from another class', param)) messages.append(('Registered callback from another class', param))
callbacktest_base.register_callback('test', SomeClass().registered_callback) callbacktest_base.register_callback('test', SomeClass().registered_callback)
@ -179,12 +179,12 @@ def test_exc_callback_registration():
@pytest.mark.tier0 @pytest.mark.tier0
def test_entry_to_dict(): def test_entry_to_dict():
class FakeAttributeType(object): class FakeAttributeType:
def __init__(self, name, syntax): def __init__(self, name, syntax):
self.names = (name,) self.names = (name,)
self.syntax = syntax self.syntax = syntax
class FakeSchema(object): class FakeSchema:
def get_obj(self, type, name): def get_obj(self, type, name):
if type != ldap.schema.AttributeType: if type != ldap.schema.AttributeType:
return return

Some files were not shown because too many files have changed in this diff Show More