diff --git a/install/migration/migration.py b/install/migration/migration.py
index c0bddab38..9aace8c07 100644
--- a/install/migration/migration.py
+++ b/install/migration/migration.py
@@ -19,6 +19,7 @@
"""
Password migration script
"""
+from __future__ import absolute_import
import cgi
import errno
diff --git a/install/share/wsgi.py b/install/share/wsgi.py
index e5cabc065..06864b947 100644
--- a/install/share/wsgi.py
+++ b/install/share/wsgi.py
@@ -23,6 +23,8 @@
"""
WSGI appliction for IPA server.
"""
+from __future__ import absolute_import
+
import logging
import os
import sys
diff --git a/install/wsgi/plugins.py b/install/wsgi/plugins.py
index 0c7f94478..f80cfb9fe 100644
--- a/install/wsgi/plugins.py
+++ b/install/wsgi/plugins.py
@@ -20,6 +20,7 @@
"""
Plugin index generation script
"""
+from __future__ import absolute_import
import logging
import os
diff --git a/ipaclient/install/ipa_certupdate.py b/ipaclient/install/ipa_certupdate.py
index f144a3f6d..a67a0eae6 100644
--- a/ipaclient/install/ipa_certupdate.py
+++ b/ipaclient/install/ipa_certupdate.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import tempfile
diff --git a/ipaclient/install/ipa_client_install.py b/ipaclient/install/ipa_client_install.py
index da661e6bc..76375f8d2 100644
--- a/ipaclient/install/ipa_client_install.py
+++ b/ipaclient/install/ipa_client_install.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
from ipaclient.install import client
from ipaplatform.paths import paths
from ipapython.install import cli
diff --git a/ipaclient/install/ipadiscovery.py b/ipaclient/install/ipadiscovery.py
index c387d09a0..363970c86 100644
--- a/ipaclient/install/ipadiscovery.py
+++ b/ipaclient/install/ipadiscovery.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import operator
import socket
diff --git a/ipaclient/install/timeconf.py b/ipaclient/install/timeconf.py
index f83e51cdc..57ab50a3f 100644
--- a/ipaclient/install/timeconf.py
+++ b/ipaclient/install/timeconf.py
@@ -16,6 +16,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import shutil
diff --git a/ipalib/install/certmonger.py b/ipalib/install/certmonger.py
index cfdcbeab5..ebf5d0889 100644
--- a/ipalib/install/certmonger.py
+++ b/ipalib/install/certmonger.py
@@ -22,7 +22,7 @@
# This is used so we can add tracking to the Apache and 389-ds
# server certificates created during the IPA server installation.
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipalib/install/kinit.py b/ipalib/install/kinit.py
index 630912d21..1e1b7860c 100644
--- a/ipalib/install/kinit.py
+++ b/ipalib/install/kinit.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import os
import time
diff --git a/ipalib/install/sysrestore.py b/ipalib/install/sysrestore.py
index fe79493b1..6d54c6b87 100644
--- a/ipalib/install/sysrestore.py
+++ b/ipalib/install/sysrestore.py
@@ -23,6 +23,8 @@
# parts of the system configuration to the way it was
# before ipa-server-install was first run
+from __future__ import absolute_import
+
import logging
import os
import os.path
diff --git a/ipaplatform/_importhook.py b/ipaplatform/_importhook.py
index 21b547b16..77c4e0d87 100644
--- a/ipaplatform/_importhook.py
+++ b/ipaplatform/_importhook.py
@@ -1,6 +1,8 @@
#
# Copyright (C) 2017 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
"""Meta import hook for ipaplatform.
Known Linux distros with /etc/os-release
diff --git a/ipaplatform/base/services.py b/ipaplatform/base/services.py
index 2757e8e72..73687982d 100644
--- a/ipaplatform/base/services.py
+++ b/ipaplatform/base/services.py
@@ -23,6 +23,8 @@ This base module contains default implementations of IPA interface for
interacting with system services.
'''
+from __future__ import absolute_import
+
import os
import json
import time
diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py
index ab348e6aa..f22c4c1b2 100644
--- a/ipaplatform/base/tasks.py
+++ b/ipaplatform/base/tasks.py
@@ -22,6 +22,8 @@
This module contains default platform-specific implementations of system tasks.
'''
+from __future__ import absolute_import
+
import logging
from pkg_resources import parse_version
diff --git a/ipaplatform/constants.py b/ipaplatform/constants.py
index cc43cfb1d..9af52fbf2 100644
--- a/ipaplatform/constants.py
+++ b/ipaplatform/constants.py
@@ -3,6 +3,8 @@
#
"""IpaMetaImporter replaces this module with ipaplatform.$NAME.constants.
"""
+from __future__ import absolute_import
+
import ipaplatform._importhook
ipaplatform._importhook.fixup_module('ipaplatform.constants')
diff --git a/ipaplatform/debian/constants.py b/ipaplatform/debian/constants.py
index 1edcb5adc..18a4c34d5 100644
--- a/ipaplatform/debian/constants.py
+++ b/ipaplatform/debian/constants.py
@@ -7,6 +7,8 @@ This Debian family platform module exports platform dependant constants.
'''
# Fallback to default path definitions
+from __future__ import absolute_import
+
from ipaplatform.base.constants import BaseConstantsNamespace
diff --git a/ipaplatform/debian/paths.py b/ipaplatform/debian/paths.py
index f8be05606..70019a5e7 100644
--- a/ipaplatform/debian/paths.py
+++ b/ipaplatform/debian/paths.py
@@ -8,6 +8,8 @@ in Debian-based systems.
"""
# Fallback to default path definitions
+from __future__ import absolute_import
+
from ipaplatform.base.paths import BasePathNamespace
import sysconfig
diff --git a/ipaplatform/debian/services.py b/ipaplatform/debian/services.py
index 54fc84a57..49c66c8e3 100644
--- a/ipaplatform/debian/services.py
+++ b/ipaplatform/debian/services.py
@@ -6,6 +6,8 @@
Contains Debian-specific service class implementations.
"""
+from __future__ import absolute_import
+
from ipaplatform.base import services as base_services
from ipaplatform.redhat import services as redhat_services
from ipapython import ipautil
diff --git a/ipaplatform/debian/tasks.py b/ipaplatform/debian/tasks.py
index 453726014..d36064cb5 100644
--- a/ipaplatform/debian/tasks.py
+++ b/ipaplatform/debian/tasks.py
@@ -6,6 +6,8 @@
This module contains default Debian-specific implementations of system tasks.
"""
+from __future__ import absolute_import
+
from ipaplatform.base.tasks import BaseTaskNamespace
from ipaplatform.redhat.tasks import RedHatTaskNamespace
diff --git a/ipaplatform/fedora/constants.py b/ipaplatform/fedora/constants.py
index f4b4d915b..d48696e0f 100644
--- a/ipaplatform/fedora/constants.py
+++ b/ipaplatform/fedora/constants.py
@@ -7,6 +7,8 @@ This Fedora base platform module exports platform related constants.
'''
# Fallback to default constant definitions
+from __future__ import absolute_import
+
from ipaplatform.redhat.constants import RedHatConstantsNamespace
diff --git a/ipaplatform/fedora/paths.py b/ipaplatform/fedora/paths.py
index 3e94d4196..a9bdedfe8 100644
--- a/ipaplatform/fedora/paths.py
+++ b/ipaplatform/fedora/paths.py
@@ -23,6 +23,8 @@ in Fedora-based systems.
'''
# Fallback to default path definitions
+from __future__ import absolute_import
+
from ipaplatform.redhat.paths import RedHatPathNamespace
diff --git a/ipaplatform/fedora/services.py b/ipaplatform/fedora/services.py
index 725d9eeae..6735153e9 100644
--- a/ipaplatform/fedora/services.py
+++ b/ipaplatform/fedora/services.py
@@ -22,6 +22,8 @@
Contains Fedora-specific service class implementations.
"""
+from __future__ import absolute_import
+
from ipaplatform.redhat import services as redhat_services
# Mappings from service names as FreeIPA code references to these services
diff --git a/ipaplatform/fedora/tasks.py b/ipaplatform/fedora/tasks.py
index 1b3cf6f73..05ee1f72f 100644
--- a/ipaplatform/fedora/tasks.py
+++ b/ipaplatform/fedora/tasks.py
@@ -23,6 +23,8 @@
This module contains default Fedora-specific implementations of system tasks.
'''
+from __future__ import absolute_import
+
from ipaplatform.redhat.tasks import RedHatTaskNamespace
diff --git a/ipaplatform/paths.py b/ipaplatform/paths.py
index 2fcb477d4..22c266ed1 100644
--- a/ipaplatform/paths.py
+++ b/ipaplatform/paths.py
@@ -3,6 +3,8 @@
#
"""IpaMetaImporter replaces this module with ipaplatform.$NAME.paths.
"""
+from __future__ import absolute_import
+
import ipaplatform._importhook
ipaplatform._importhook.fixup_module('ipaplatform.paths')
diff --git a/ipaplatform/redhat/authconfig.py b/ipaplatform/redhat/authconfig.py
index db9201662..3203e096e 100644
--- a/ipaplatform/redhat/authconfig.py
+++ b/ipaplatform/redhat/authconfig.py
@@ -18,6 +18,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
from ipaplatform.paths import paths
from ipapython import ipautil
from ipapython.admintool import ScriptError
diff --git a/ipaplatform/redhat/constants.py b/ipaplatform/redhat/constants.py
index 7209947f8..270c4990f 100644
--- a/ipaplatform/redhat/constants.py
+++ b/ipaplatform/redhat/constants.py
@@ -8,6 +8,8 @@ related constants for the Red Hat OS family-based systems.
'''
# Fallback to default path definitions
+from __future__ import absolute_import
+
from ipaplatform.base.constants import BaseConstantsNamespace
diff --git a/ipaplatform/redhat/paths.py b/ipaplatform/redhat/paths.py
index 91ba9d05e..5706d46cd 100644
--- a/ipaplatform/redhat/paths.py
+++ b/ipaplatform/redhat/paths.py
@@ -22,6 +22,8 @@ This Red Hat OS family base platform module exports default filesystem paths as
common in Red Hat OS family-based systems.
'''
+from __future__ import absolute_import
+
import sys
# Fallback to default path definitions
diff --git a/ipaplatform/redhat/services.py b/ipaplatform/redhat/services.py
index 7b1529e4f..80ad62b39 100644
--- a/ipaplatform/redhat/services.py
+++ b/ipaplatform/redhat/services.py
@@ -22,6 +22,8 @@
Contains Red Hat OS family-specific service class implementations.
"""
+from __future__ import absolute_import
+
import logging
import os
import time
diff --git a/ipaplatform/redhat/tasks.py b/ipaplatform/redhat/tasks.py
index 82464fddd..dee5fe0d2 100644
--- a/ipaplatform/redhat/tasks.py
+++ b/ipaplatform/redhat/tasks.py
@@ -23,7 +23,7 @@
This module contains default Red Hat OS family-specific implementations of
system tasks.
'''
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import ctypes
import logging
diff --git a/ipaplatform/rhel/constants.py b/ipaplatform/rhel/constants.py
index 17abde1f8..945f3dca3 100644
--- a/ipaplatform/rhel/constants.py
+++ b/ipaplatform/rhel/constants.py
@@ -7,6 +7,8 @@ This RHEL base platform module exports platform related constants.
'''
# Fallback to default constant definitions
+from __future__ import absolute_import
+
from ipaplatform.redhat.constants import RedHatConstantsNamespace
diff --git a/ipaplatform/rhel/paths.py b/ipaplatform/rhel/paths.py
index 4f3925f35..d8b64abde 100644
--- a/ipaplatform/rhel/paths.py
+++ b/ipaplatform/rhel/paths.py
@@ -23,6 +23,8 @@ in RHEL-based systems.
'''
# Fallback to default path definitions
+from __future__ import absolute_import
+
from ipaplatform.redhat.paths import RedHatPathNamespace
diff --git a/ipaplatform/rhel/services.py b/ipaplatform/rhel/services.py
index 7918006db..1403d08ad 100644
--- a/ipaplatform/rhel/services.py
+++ b/ipaplatform/rhel/services.py
@@ -22,6 +22,8 @@
Contains RHEL-specific service class implementations.
"""
+from __future__ import absolute_import
+
from ipaplatform.redhat import services as redhat_services
# Mappings from service names as FreeIPA code references to these services
diff --git a/ipaplatform/rhel/tasks.py b/ipaplatform/rhel/tasks.py
index 751580665..5c65cfdcf 100644
--- a/ipaplatform/rhel/tasks.py
+++ b/ipaplatform/rhel/tasks.py
@@ -21,6 +21,8 @@
This module contains default RHEL-specific implementations of system tasks.
'''
+from __future__ import absolute_import
+
from ipaplatform.redhat.tasks import RedHatTaskNamespace
diff --git a/ipaplatform/services.py b/ipaplatform/services.py
index 0d40f6443..4f10ca477 100644
--- a/ipaplatform/services.py
+++ b/ipaplatform/services.py
@@ -3,6 +3,8 @@
#
"""IpaMetaImporter replaces this module with ipaplatform.$NAME.services.
"""
+from __future__ import absolute_import
+
import ipaplatform._importhook
ipaplatform._importhook.fixup_module('ipaplatform.services')
diff --git a/ipaplatform/tasks.py b/ipaplatform/tasks.py
index 23c785909..598f8f47a 100644
--- a/ipaplatform/tasks.py
+++ b/ipaplatform/tasks.py
@@ -3,6 +3,8 @@
#
"""IpaMetaImporter replaces this module with ipaplatform.$NAME.tasks.
"""
+from __future__ import absolute_import
+
import ipaplatform._importhook
ipaplatform._importhook.fixup_module('ipaplatform.tasks')
diff --git a/ipapython/kernel_keyring.py b/ipapython/kernel_keyring.py
index 5b64dd660..6ae1e7449 100644
--- a/ipapython/kernel_keyring.py
+++ b/ipapython/kernel_keyring.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import os
import six
diff --git a/ipaserver/advise/base.py b/ipaserver/advise/base.py
index fc2b17338..40f2e65dc 100644
--- a/ipaserver/advise/base.py
+++ b/ipaserver/advise/base.py
@@ -17,7 +17,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
from contextlib import contextmanager
import logging
diff --git a/ipaserver/advise/plugins/legacy_clients.py b/ipaserver/advise/plugins/legacy_clients.py
index 7439f584a..7916965dd 100644
--- a/ipaserver/advise/plugins/legacy_clients.py
+++ b/ipaserver/advise/plugins/legacy_clients.py
@@ -16,6 +16,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import os
from ipalib import api
diff --git a/ipaserver/advise/plugins/smart_card_auth.py b/ipaserver/advise/plugins/smart_card_auth.py
index d0e92073f..1c79e4c85 100644
--- a/ipaserver/advise/plugins/smart_card_auth.py
+++ b/ipaserver/advise/plugins/smart_card_auth.py
@@ -2,6 +2,8 @@
# Copyright (C) 2017 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
from ipalib.plugable import Registry
from ipaplatform import services
from ipaplatform.paths import paths
diff --git a/ipaserver/dcerpc.py b/ipaserver/dcerpc.py
index aa17db58f..e3aa9f6a6 100644
--- a/ipaserver/dcerpc.py
+++ b/ipaserver/dcerpc.py
@@ -22,6 +22,8 @@
# Make sure we only run this module at the server where samba4-python
# package is installed to avoid issues with unavailable modules
+from __future__ import absolute_import
+
import logging
import re
import time
diff --git a/ipaserver/dnssec/bindmgr.py b/ipaserver/dnssec/bindmgr.py
index 1b02bffba..b5e851ef2 100644
--- a/ipaserver/dnssec/bindmgr.py
+++ b/ipaserver/dnssec/bindmgr.py
@@ -2,6 +2,8 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
from datetime import datetime
import logging
diff --git a/ipaserver/dnssec/keysyncer.py b/ipaserver/dnssec/keysyncer.py
index 2351a095e..b965ec83d 100644
--- a/ipaserver/dnssec/keysyncer.py
+++ b/ipaserver/dnssec/keysyncer.py
@@ -2,6 +2,8 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import ldap.dn
diff --git a/ipaserver/dnssec/ldapkeydb.py b/ipaserver/dnssec/ldapkeydb.py
index 3163e3cd5..43d7fc468 100644
--- a/ipaserver/dnssec/ldapkeydb.py
+++ b/ipaserver/dnssec/ldapkeydb.py
@@ -2,7 +2,7 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
from binascii import hexlify
import collections
diff --git a/ipaserver/dnssec/localhsm.py b/ipaserver/dnssec/localhsm.py
index 44ef6ae1a..db8fd10bb 100755
--- a/ipaserver/dnssec/localhsm.py
+++ b/ipaserver/dnssec/localhsm.py
@@ -3,7 +3,7 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import collections
import os
diff --git a/ipaserver/install/adtrust.py b/ipaserver/install/adtrust.py
index 59e06d7b8..f4a0b0c1c 100644
--- a/ipaserver/install/adtrust.py
+++ b/ipaserver/install/adtrust.py
@@ -6,7 +6,7 @@
AD trust installer module
"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py
index e951f3db0..67fc07d64 100644
--- a/ipaserver/install/adtrustinstance.py
+++ b/ipaserver/install/adtrustinstance.py
@@ -17,7 +17,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipaserver/install/ca.py b/ipaserver/install/ca.py
index 8780f6f9e..efa8e9c8c 100644
--- a/ipaserver/install/ca.py
+++ b/ipaserver/install/ca.py
@@ -6,7 +6,7 @@
CA installer module
"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import enum
import logging
diff --git a/ipaserver/install/cainstance.py b/ipaserver/install/cainstance.py
index bde5c77b6..f403c9de1 100644
--- a/ipaserver/install/cainstance.py
+++ b/ipaserver/install/cainstance.py
@@ -19,7 +19,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import base64
import binascii
diff --git a/ipaserver/install/certs.py b/ipaserver/install/certs.py
index 448ca8cc0..02b28a1bf 100644
--- a/ipaserver/install/certs.py
+++ b/ipaserver/install/certs.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import stat
diff --git a/ipaserver/install/custodiainstance.py b/ipaserver/install/custodiainstance.py
index 159976f55..20cc26ef2 100644
--- a/ipaserver/install/custodiainstance.py
+++ b/ipaserver/install/custodiainstance.py
@@ -1,6 +1,6 @@
# Copyright (C) 2015 FreeIPa Project Contributors, see 'COPYING' for license.
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
diff --git a/ipaserver/install/dnskeysyncinstance.py b/ipaserver/install/dnskeysyncinstance.py
index d7f052319..b865ee8aa 100644
--- a/ipaserver/install/dnskeysyncinstance.py
+++ b/ipaserver/install/dnskeysyncinstance.py
@@ -2,7 +2,7 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import errno
diff --git a/ipaserver/install/dogtaginstance.py b/ipaserver/install/dogtaginstance.py
index e847b1853..d0c6690fa 100644
--- a/ipaserver/install/dogtaginstance.py
+++ b/ipaserver/install/dogtaginstance.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import base64
import logging
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py
index 9daee0a68..d00799a47 100644
--- a/ipaserver/install/dsinstance.py
+++ b/ipaserver/install/dsinstance.py
@@ -18,7 +18,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import shutil
diff --git a/ipaserver/install/ipa_backup.py b/ipaserver/install/ipa_backup.py
index c8382cbfb..30304e61d 100644
--- a/ipaserver/install/ipa_backup.py
+++ b/ipaserver/install/ipa_backup.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import shutil
diff --git a/ipaserver/install/ipa_cacert_manage.py b/ipaserver/install/ipa_cacert_manage.py
index ab9170f85..6f8b0baa4 100644
--- a/ipaserver/install/ipa_cacert_manage.py
+++ b/ipaserver/install/ipa_cacert_manage.py
@@ -17,7 +17,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipaserver/install/ipa_kra_install.py b/ipaserver/install/ipa_kra_install.py
index bdc6f32a8..2e12f5924 100644
--- a/ipaserver/install/ipa_kra_install.py
+++ b/ipaserver/install/ipa_kra_install.py
@@ -18,7 +18,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipaserver/install/ipa_ldap_updater.py b/ipaserver/install/ipa_ldap_updater.py
index 38009b1a7..4d90fa8f9 100644
--- a/ipaserver/install/ipa_ldap_updater.py
+++ b/ipaserver/install/ipa_ldap_updater.py
@@ -23,7 +23,7 @@
# TODO
# save undo files?
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipaserver/install/ipa_otptoken_import.py b/ipaserver/install/ipa_otptoken_import.py
index 8ae498302..6e710324d 100644
--- a/ipaserver/install/ipa_otptoken_import.py
+++ b/ipaserver/install/ipa_otptoken_import.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import abc
import base64
import datetime
diff --git a/ipaserver/install/ipa_pkinit_manage.py b/ipaserver/install/ipa_pkinit_manage.py
index 4a9471148..c54bb14f5 100644
--- a/ipaserver/install/ipa_pkinit_manage.py
+++ b/ipaserver/install/ipa_pkinit_manage.py
@@ -2,7 +2,7 @@
# Copyright (C) 2017 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
diff --git a/ipaserver/install/ipa_replica_install.py b/ipaserver/install/ipa_replica_install.py
index 9d38bec61..eb2f247d3 100644
--- a/ipaserver/install/ipa_replica_install.py
+++ b/ipaserver/install/ipa_replica_install.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
from ipapython.install import cli
from ipapython.install.core import knob, extend_knob
from ipaplatform.paths import paths
diff --git a/ipaserver/install/ipa_restore.py b/ipaserver/install/ipa_restore.py
index 3e84f8455..08eb32fa7 100644
--- a/ipaserver/install/ipa_restore.py
+++ b/ipaserver/install/ipa_restore.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import shutil
diff --git a/ipaserver/install/ipa_server_certinstall.py b/ipaserver/install/ipa_server_certinstall.py
index ddd0d65cf..d015a9b35 100644
--- a/ipaserver/install/ipa_server_certinstall.py
+++ b/ipaserver/install/ipa_server_certinstall.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import os
import os.path
diff --git a/ipaserver/install/ipa_server_install.py b/ipaserver/install/ipa_server_install.py
index 428e18434..3166844b4 100644
--- a/ipaserver/install/ipa_server_install.py
+++ b/ipaserver/install/ipa_server_install.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
from ipapython.install import cli
from ipapython.install.core import extend_knob
from ipaplatform.paths import paths
diff --git a/ipaserver/install/ipa_server_upgrade.py b/ipaserver/install/ipa_server_upgrade.py
index 2f7fdd0da..1e52bca97 100644
--- a/ipaserver/install/ipa_server_upgrade.py
+++ b/ipaserver/install/ipa_server_upgrade.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
from ipalib import api
diff --git a/ipaserver/install/ipa_winsync_migrate.py b/ipaserver/install/ipa_winsync_migrate.py
index 1947d2143..0399b9b7b 100644
--- a/ipaserver/install/ipa_winsync_migrate.py
+++ b/ipaserver/install/ipa_winsync_migrate.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import gssapi
diff --git a/ipaserver/install/kra.py b/ipaserver/install/kra.py
index 1e3ab60c4..7837dd516 100644
--- a/ipaserver/install/kra.py
+++ b/ipaserver/install/kra.py
@@ -6,6 +6,8 @@
KRA installer module
"""
+from __future__ import absolute_import
+
import os
import shutil
diff --git a/ipaserver/install/krainstance.py b/ipaserver/install/krainstance.py
index 8878abbfc..a0fb4357f 100644
--- a/ipaserver/install/krainstance.py
+++ b/ipaserver/install/krainstance.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import pwd
diff --git a/ipaserver/install/odsexporterinstance.py b/ipaserver/install/odsexporterinstance.py
index 8ad53af57..b301a167f 100644
--- a/ipaserver/install/odsexporterinstance.py
+++ b/ipaserver/install/odsexporterinstance.py
@@ -2,6 +2,8 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import os
import pwd
diff --git a/ipaserver/install/opendnssecinstance.py b/ipaserver/install/opendnssecinstance.py
index 3909bd407..d608294cb 100644
--- a/ipaserver/install/opendnssecinstance.py
+++ b/ipaserver/install/opendnssecinstance.py
@@ -2,6 +2,8 @@
# Copyright (C) 2014 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import os
import pwd
diff --git a/ipaserver/install/plugins/ca_renewal_master.py b/ipaserver/install/plugins/ca_renewal_master.py
index cca7efe2b..618f51244 100644
--- a/ipaserver/install/plugins/ca_renewal_master.py
+++ b/ipaserver/install/plugins/ca_renewal_master.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import logging
from ipaserver.install import installutils, cainstance
diff --git a/ipaserver/install/plugins/update_ca_topology.py b/ipaserver/install/plugins/update_ca_topology.py
index d44366147..2183857ff 100644
--- a/ipaserver/install/plugins/update_ca_topology.py
+++ b/ipaserver/install/plugins/update_ca_topology.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
from ipalib import errors
diff --git a/ipaserver/install/plugins/update_nis.py b/ipaserver/install/plugins/update_nis.py
index ffb9068cf..ba5b5ccff 100644
--- a/ipaserver/install/plugins/update_nis.py
+++ b/ipaserver/install/plugins/update_nis.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
from ipalib.plugable import Registry
diff --git a/ipaserver/install/plugins/update_ra_cert_store.py b/ipaserver/install/plugins/update_ra_cert_store.py
index c78139618..7b1b2f8c3 100644
--- a/ipaserver/install/plugins/update_ra_cert_store.py
+++ b/ipaserver/install/plugins/update_ra_cert_store.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import os
import tempfile
diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py
index 7a79c9522..2e7ce53fe 100644
--- a/ipaserver/install/replication.py
+++ b/ipaserver/install/replication.py
@@ -17,8 +17,7 @@
# along with this program. If not, see .
#
-from __future__ import print_function
-from __future__ import absolute_import
+from __future__ import print_function, absolute_import
import logging
diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py
index 0662fbfef..f222f377d 100644
--- a/ipaserver/install/server/install.py
+++ b/ipaserver/install/server/install.py
@@ -2,7 +2,7 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import errno
import logging
diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py
index f8e0848cd..795d663b5 100644
--- a/ipaserver/install/server/replicainstall.py
+++ b/ipaserver/install/server/replicainstall.py
@@ -2,7 +2,7 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import contextlib
import logging
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
index 31c09d85d..2e44a295c 100644
--- a/ipaserver/install/server/upgrade.py
+++ b/ipaserver/install/server/upgrade.py
@@ -2,7 +2,7 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import re
diff --git a/ipaserver/install/sysupgrade.py b/ipaserver/install/sysupgrade.py
index ae80b74bb..c1d041497 100644
--- a/ipaserver/install/sysupgrade.py
+++ b/ipaserver/install/sysupgrade.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import os
import os.path
diff --git a/ipaserver/install/upgradeinstance.py b/ipaserver/install/upgradeinstance.py
index a161b3429..df0777ec5 100644
--- a/ipaserver/install/upgradeinstance.py
+++ b/ipaserver/install/upgradeinstance.py
@@ -17,6 +17,8 @@
# along with this program. If not, see .
#
+from __future__ import absolute_import
+
import logging
import ldif
diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py
index 13b3c507b..b6c9edc38 100644
--- a/ipaserver/plugins/dogtag.py
+++ b/ipaserver/plugins/dogtag.py
@@ -239,6 +239,8 @@ digits and nothing else follows.
'''
+from __future__ import absolute_import
+
import datetime
import json
import logging
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
index f79a07ad5..8745866ad 100644
--- a/ipaserver/plugins/ldap2.py
+++ b/ipaserver/plugins/ldap2.py
@@ -27,6 +27,8 @@ Backend plugin for LDAP.
# binding encodes them into the appropriate representation. This applies to
# everything except the CrudBackend methods, where dn is part of the entry dict.
+from __future__ import absolute_import
+
import logging
import os
diff --git a/ipaserver/plugins/migration.py b/ipaserver/plugins/migration.py
index 724c704ca..1138dd564 100644
--- a/ipaserver/plugins/migration.py
+++ b/ipaserver/plugins/migration.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import logging
import re
from ldap import MOD_ADD
diff --git a/ipaserver/plugins/rabase.py b/ipaserver/plugins/rabase.py
index 0c8d7e265..584dc291f 100644
--- a/ipaserver/plugins/rabase.py
+++ b/ipaserver/plugins/rabase.py
@@ -30,6 +30,8 @@ certificates via the following methods:
* `ra.take_certificate_off_hold()` - take a certificate off hold.
"""
+from __future__ import absolute_import
+
from ipalib import Backend
from ipalib import errors
import os
diff --git a/ipaserver/plugins/server.py b/ipaserver/plugins/server.py
index cb200ba68..59e611fc4 100644
--- a/ipaserver/plugins/server.py
+++ b/ipaserver/plugins/server.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import dbus
diff --git a/ipaserver/plugins/stageuser.py b/ipaserver/plugins/stageuser.py
index 59c66276c..b8c36efc8 100644
--- a/ipaserver/plugins/stageuser.py
+++ b/ipaserver/plugins/stageuser.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import logging
import posixpath
from copy import deepcopy
diff --git a/ipaserver/plugins/user.py b/ipaserver/plugins/user.py
index 9e8abf869..d35c8a948 100644
--- a/ipaserver/plugins/user.py
+++ b/ipaserver/plugins/user.py
@@ -18,6 +18,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import logging
import time
from time import gmtime, strftime
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py
index f14e78483..69aac69f9 100644
--- a/ipaserver/rpcserver.py
+++ b/ipaserver/rpcserver.py
@@ -23,6 +23,8 @@ RPC server.
Also see the `ipalib.rpc` module.
"""
+from __future__ import absolute_import
+
import logging
from xml.sax.saxutils import escape
import os
diff --git a/ipaserver/secrets/client.py b/ipaserver/secrets/client.py
index 3bcc25c17..83402bd23 100644
--- a/ipaserver/secrets/client.py
+++ b/ipaserver/secrets/client.py
@@ -1,6 +1,6 @@
# Copyright (C) 2015 IPA Project Contributors, see COPYING for license
-from __future__ import print_function
+from __future__ import print_function, absolute_import
# pylint: disable=relative-import
from custodia.message.kem import KEMClient, KEY_USAGE_SIG, KEY_USAGE_ENC
# pylint: enable=relative-import
diff --git a/ipaserver/secrets/kem.py b/ipaserver/secrets/kem.py
index ad932b6b6..fb4e09c1d 100644
--- a/ipaserver/secrets/kem.py
+++ b/ipaserver/secrets/kem.py
@@ -1,6 +1,6 @@
# Copyright (C) 2015 IPA Project Contributors, see COPYING for license
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import errno
import os
diff --git a/ipaserver/secrets/store.py b/ipaserver/secrets/store.py
index 8da681722..469022238 100644
--- a/ipaserver/secrets/store.py
+++ b/ipaserver/secrets/store.py
@@ -1,6 +1,6 @@
# Copyright (C) 2015 IPA Project Contributors, see COPYING for license
-from __future__ import print_function
+from __future__ import print_function, absolute_import
from base64 import b64encode, b64decode
from custodia.store.interface import CSStore # pylint: disable=relative-import
from jwcrypto.common import json_decode, json_encode
diff --git a/ipatests/pytest_plugins/integration/__init__.py b/ipatests/pytest_plugins/integration/__init__.py
index 0892561c0..7c1eb2232 100644
--- a/ipatests/pytest_plugins/integration/__init__.py
+++ b/ipatests/pytest_plugins/integration/__init__.py
@@ -19,7 +19,7 @@
"""Pytest plugin for IPA Integration tests"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipatests/pytest_plugins/integration/tasks.py b/ipatests/pytest_plugins/integration/tasks.py
index 98dd52f2e..95e8359d0 100644
--- a/ipatests/pytest_plugins/integration/tasks.py
+++ b/ipatests/pytest_plugins/integration/tasks.py
@@ -19,6 +19,8 @@
"""Common tasks for FreeIPA integration tests"""
+from __future__ import absolute_import
+
import logging
import os
import textwrap
diff --git a/ipatests/test_cmdline/cmdline.py b/ipatests/test_cmdline/cmdline.py
index 1fc434337..ad141a0f0 100644
--- a/ipatests/test_cmdline/cmdline.py
+++ b/ipatests/test_cmdline/cmdline.py
@@ -21,6 +21,8 @@
Base class for all cmdline tests
"""
+from __future__ import absolute_import
+
import distutils.spawn
import os
import unittest
diff --git a/ipatests/test_cmdline/test_ipagetkeytab.py b/ipatests/test_cmdline/test_ipagetkeytab.py
index f04f0b930..3a134062e 100644
--- a/ipatests/test_cmdline/test_ipagetkeytab.py
+++ b/ipatests/test_cmdline/test_ipagetkeytab.py
@@ -20,6 +20,8 @@
Test `ipa-getkeytab`
"""
+from __future__ import absolute_import
+
import os
import shutil
import tempfile
diff --git a/ipatests/test_install/test_updates.py b/ipatests/test_install/test_updates.py
index 4b9e8355a..dc88f2fbe 100644
--- a/ipatests/test_install/test_updates.py
+++ b/ipatests/test_install/test_updates.py
@@ -20,6 +20,8 @@
Test the `ipaserver/install/ldapupdate.py` module.
"""
+from __future__ import absolute_import
+
import os
import unittest
diff --git a/ipatests/test_integration/test_backup_and_restore.py b/ipatests/test_integration/test_backup_and_restore.py
index f8bc16601..ef1a64968 100644
--- a/ipatests/test_integration/test_backup_and_restore.py
+++ b/ipatests/test_integration/test_backup_and_restore.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import logging
import os
diff --git a/ipatests/test_integration/test_caless.py b/ipatests/test_integration/test_caless.py
index 7db1fc228..7d4e12398 100644
--- a/ipatests/test_integration/test_caless.py
+++ b/ipatests/test_integration/test_caless.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import functools
import logging
import os
diff --git a/ipatests/test_integration/test_dnssec.py b/ipatests/test_integration/test_dnssec.py
index 11c76e48b..40b4e1b35 100644
--- a/ipatests/test_integration/test_dnssec.py
+++ b/ipatests/test_integration/test_dnssec.py
@@ -2,6 +2,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import logging
import dns.dnssec
diff --git a/ipatests/test_integration/test_external_ca.py b/ipatests/test_integration/test_external_ca.py
index a7254ca65..3ffdab619 100644
--- a/ipatests/test_integration/test_external_ca.py
+++ b/ipatests/test_integration/test_external_ca.py
@@ -15,6 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import re
import time
diff --git a/ipatests/test_integration/test_forced_client_reenrollment.py b/ipatests/test_integration/test_forced_client_reenrollment.py
index c3db554ea..d9ebaad5c 100644
--- a/ipatests/test_integration/test_forced_client_reenrollment.py
+++ b/ipatests/test_integration/test_forced_client_reenrollment.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import logging
import os
import subprocess
diff --git a/ipatests/test_integration/test_http_kdc_proxy.py b/ipatests/test_integration/test_http_kdc_proxy.py
index c81a86a85..39cee1317 100644
--- a/ipatests/test_integration/test_http_kdc_proxy.py
+++ b/ipatests/test_integration/test_http_kdc_proxy.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import six
from ipatests.pytest_plugins.integration import tasks
from ipatests.test_integration.base import IntegrationTest
diff --git a/ipatests/test_integration/test_idviews.py b/ipatests/test_integration/test_idviews.py
index b4934e2ce..2c1581e89 100644
--- a/ipatests/test_integration/test_idviews.py
+++ b/ipatests/test_integration/test_idviews.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import os
import re
import string
diff --git a/ipatests/test_integration/test_legacy_clients.py b/ipatests/test_integration/test_legacy_clients.py
index 269797ab9..5e2c6b6a1 100644
--- a/ipatests/test_integration/test_legacy_clients.py
+++ b/ipatests/test_integration/test_legacy_clients.py
@@ -20,6 +20,8 @@
# FIXME: Pylint errors
# pylint: disable=no-member
+from __future__ import absolute_import
+
import os
import re
import unittest
diff --git a/ipatests/test_integration/test_replica_promotion.py b/ipatests/test_integration/test_replica_promotion.py
index 7fd0c9985..28052a112 100644
--- a/ipatests/test_integration/test_replica_promotion.py
+++ b/ipatests/test_integration/test_replica_promotion.py
@@ -2,6 +2,8 @@
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import time
import re
from tempfile import NamedTemporaryFile
diff --git a/ipatests/test_integration/test_trust.py b/ipatests/test_integration/test_trust.py
index abce2aec7..c7f0e43a6 100644
--- a/ipatests/test_integration/test_trust.py
+++ b/ipatests/test_integration/test_trust.py
@@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+from __future__ import absolute_import
+
import re
import unittest
diff --git a/ipatests/test_integration/test_uninstallation.py b/ipatests/test_integration/test_uninstallation.py
index d7d6f6277..2e58dba00 100644
--- a/ipatests/test_integration/test_uninstallation.py
+++ b/ipatests/test_integration/test_uninstallation.py
@@ -10,6 +10,8 @@ state. Every failed uninstall should successfully remove remaining
pieces if possible.
"""
+from __future__ import absolute_import
+
from ipatests.test_integration.base import IntegrationTest
from ipatests.pytest_plugins.integration import tasks
from ipaplatform.paths import paths
diff --git a/ipatests/test_ipaplatform/test_importhook.py b/ipatests/test_ipaplatform/test_importhook.py
index c0c61d90f..c7d2626d6 100644
--- a/ipatests/test_ipaplatform/test_importhook.py
+++ b/ipatests/test_ipaplatform/test_importhook.py
@@ -1,6 +1,8 @@
#
# Copyright (C) 2017 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import os
import sys
diff --git a/ipatests/test_ipaplatform/test_tasks.py b/ipatests/test_ipaplatform/test_tasks.py
index ac01e58eb..1ac731b31 100644
--- a/ipatests/test_ipaplatform/test_tasks.py
+++ b/ipatests/test_ipaplatform/test_tasks.py
@@ -1,6 +1,7 @@
#
# Copyright (C) 2017 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
from ipaplatform.tasks import tasks
diff --git a/ipatests/test_ipapython/test_certdb.py b/ipatests/test_ipapython/test_certdb.py
index 6163bc911..42edfb5a9 100644
--- a/ipatests/test_ipapython/test_certdb.py
+++ b/ipatests/test_ipapython/test_certdb.py
@@ -1,3 +1,5 @@
+from __future__ import absolute_import
+
import os
import pytest
diff --git a/ipatests/test_ipapython/test_ipautil.py b/ipatests/test_ipapython/test_ipautil.py
index 79283defd..abed9a694 100644
--- a/ipatests/test_ipapython/test_ipautil.py
+++ b/ipatests/test_ipapython/test_ipautil.py
@@ -21,6 +21,8 @@
"""
Test the `ipapython/ipautil.py` module.
"""
+from __future__ import absolute_import
+
import socket
import sys
import tempfile
diff --git a/ipatests/test_ipaserver/test_install/test_bindinstance.py b/ipatests/test_ipaserver/test_install/test_bindinstance.py
index b88b93194..d01cf55b8 100644
--- a/ipatests/test_ipaserver/test_install/test_bindinstance.py
+++ b/ipatests/test_ipaserver/test_install/test_bindinstance.py
@@ -2,6 +2,8 @@
# Copyright (C) 2018 FreeIPA Contributors. See COPYING for license
#
+from __future__ import absolute_import
+
import tempfile
import pytest
diff --git a/ipatests/test_ipaserver/test_ipap11helper.py b/ipatests/test_ipaserver/test_ipap11helper.py
index cc178b508..0528284ab 100644
--- a/ipatests/test_ipaserver/test_ipap11helper.py
+++ b/ipatests/test_ipaserver/test_ipap11helper.py
@@ -7,6 +7,8 @@ Test the `ipapython/ipap11helper/p11helper.c` module.
"""
+from __future__ import absolute_import
+
from binascii import hexlify
import os
import os.path
diff --git a/ipatests/test_ipaserver/test_ldap.py b/ipatests/test_ipaserver/test_ldap.py
index fb4657bd7..303aa7e70 100644
--- a/ipatests/test_ipaserver/test_ldap.py
+++ b/ipatests/test_ipaserver/test_ldap.py
@@ -25,6 +25,8 @@
# The DM password needs to be set in ~/.ipa/.dmpw
+from __future__ import absolute_import
+
import os
import sys
import unittest
diff --git a/ipatests/test_ipaserver/test_serverroles.py b/ipatests/test_ipaserver/test_serverroles.py
index a770c5ff4..76f1378ed 100644
--- a/ipatests/test_ipaserver/test_serverroles.py
+++ b/ipatests/test_ipaserver/test_serverroles.py
@@ -6,6 +6,8 @@
Tests for the serverroles backend
"""
+from __future__ import absolute_import
+
from collections import namedtuple
import ldap
diff --git a/ipatests/test_ipaserver/test_version_comparison.py b/ipatests/test_ipaserver/test_version_comparison.py
index 79b1d5ce7..907649ef3 100644
--- a/ipatests/test_ipaserver/test_version_comparison.py
+++ b/ipatests/test_ipaserver/test_version_comparison.py
@@ -6,6 +6,8 @@
tests for correct RPM version comparison
"""
+from __future__ import absolute_import
+
from ipaplatform.tasks import tasks
import pytest
diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py
index 65cd66afe..c82e56ac9 100644
--- a/ipatests/test_webui/ui_driver.py
+++ b/ipatests/test_webui/ui_driver.py
@@ -22,7 +22,7 @@ Base class for UI integration tests.
Contains browser driver and common tasks.
"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
from datetime import datetime
import time
diff --git a/ipatests/test_xmlrpc/test_caacl_profile_enforcement.py b/ipatests/test_xmlrpc/test_caacl_profile_enforcement.py
index ad3b061b5..6ed6cbf34 100644
--- a/ipatests/test_xmlrpc/test_caacl_profile_enforcement.py
+++ b/ipatests/test_xmlrpc/test_caacl_profile_enforcement.py
@@ -3,6 +3,8 @@
# Copyright (C) 2015 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import os
import pytest
import tempfile
diff --git a/ipatests/test_xmlrpc/test_cert_plugin.py b/ipatests/test_xmlrpc/test_cert_plugin.py
index 178dea14a..68f5b1667 100644
--- a/ipatests/test_xmlrpc/test_cert_plugin.py
+++ b/ipatests/test_xmlrpc/test_cert_plugin.py
@@ -19,7 +19,7 @@
"""
Test the `ipaserver/plugins/cert.py` module against a RA.
"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import base64
import os
diff --git a/ipatests/test_xmlrpc/test_host_plugin.py b/ipatests/test_xmlrpc/test_host_plugin.py
index b9bad12fe..8255296d1 100644
--- a/ipatests/test_xmlrpc/test_host_plugin.py
+++ b/ipatests/test_xmlrpc/test_host_plugin.py
@@ -22,7 +22,7 @@
"""
Test the `ipalib.plugins.host` module.
"""
-from __future__ import print_function
+from __future__ import print_function, absolute_import
import os
import tempfile
diff --git a/ipatests/test_xmlrpc/test_kerberos_principal_aliases.py b/ipatests/test_xmlrpc/test_kerberos_principal_aliases.py
index e969e3247..8660e9823 100644
--- a/ipatests/test_xmlrpc/test_kerberos_principal_aliases.py
+++ b/ipatests/test_xmlrpc/test_kerberos_principal_aliases.py
@@ -2,6 +2,8 @@
#
# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
#
+from __future__ import absolute_import
+
import copy
import ldap
import pytest
diff --git a/ipatests/test_xmlrpc/testcert.py b/ipatests/test_xmlrpc/testcert.py
index e6609b7f1..cc0b25022 100644
--- a/ipatests/test_xmlrpc/testcert.py
+++ b/ipatests/test_xmlrpc/testcert.py
@@ -25,6 +25,8 @@ The certificate in cached in a global variable so it only has to be created
once per test run.
"""
+from __future__ import absolute_import
+
import os
import tempfile
import shutil
diff --git a/ipatests/util.py b/ipatests/util.py
index 826e90025..eb66fca39 100644
--- a/ipatests/util.py
+++ b/ipatests/util.py
@@ -21,6 +21,8 @@
Common utility functions and classes for unit tests.
"""
+from __future__ import absolute_import
+
import inspect
import os
from os import path