mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 07:33:27 -06:00
Do not hardcode path to ipa-getkeytab in tests
Using the in-tree binary makes testing outside the source tree impossible. Use ipa-getkeytab from $PATH, and add the directory to $PATH when running the in-tree tests. Part of the work for https://fedorahosted.org/freeipa/ticket/3654 Reviewed-By: Martin Kosek <mkosek@redhat.com>
This commit is contained in:
parent
65bde3ecd7
commit
05f612e58a
@ -23,12 +23,13 @@ Base class for all cmdline tests
|
|||||||
|
|
||||||
import nose
|
import nose
|
||||||
import krbV
|
import krbV
|
||||||
|
import distutils.spawn
|
||||||
|
import os
|
||||||
|
|
||||||
from ipalib import api
|
from ipalib import api
|
||||||
from ipalib import errors
|
from ipalib import errors
|
||||||
from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test
|
from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test
|
||||||
from ipaserver.plugins.ldap2 import ldap2
|
from ipaserver.plugins.ldap2 import ldap2
|
||||||
from ipapython import ipautil
|
|
||||||
|
|
||||||
# See if our LDAP server is up and we can talk to it over GSSAPI
|
# See if our LDAP server is up and we can talk to it over GSSAPI
|
||||||
ccache = krbV.default_context().default_ccache()
|
ccache = krbV.default_context().default_ccache()
|
||||||
@ -51,11 +52,17 @@ class cmdline_test(XMLRPC_test):
|
|||||||
command = '/bin/ls'
|
command = '/bin/ls'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
# Find the executable in $PATH
|
||||||
|
# This is neded because ipautil.run resets the PATH to
|
||||||
|
# a system default.
|
||||||
|
original_command = self.command
|
||||||
|
if not os.path.isabs(self.command):
|
||||||
|
self.command = distutils.spawn.find_executable(self.command)
|
||||||
# raise an error if the command is missing even if the remote
|
# raise an error if the command is missing even if the remote
|
||||||
# server is not available.
|
# server is not available.
|
||||||
if not ipautil.file_exists(self.command):
|
if not self.command:
|
||||||
raise AssertionError(
|
raise AssertionError(
|
||||||
'Command %r not available' % self.command
|
'Command %r not available' % original_command
|
||||||
)
|
)
|
||||||
super(cmdline_test, self).setUp()
|
super(cmdline_test, self).setUp()
|
||||||
if not server_available:
|
if not server_available:
|
||||||
|
@ -59,7 +59,7 @@ class test_ipagetkeytab(cmdline_test):
|
|||||||
"""
|
"""
|
||||||
Test `ipa-getkeytab`.
|
Test `ipa-getkeytab`.
|
||||||
"""
|
"""
|
||||||
command = "ipa-client/ipa-getkeytab"
|
command = "ipa-getkeytab"
|
||||||
host_fqdn = u'ipatest.%s' % api.env.domain
|
host_fqdn = u'ipatest.%s' % api.env.domain
|
||||||
service_princ = u'test/%s@%s' % (host_fqdn, api.env.realm)
|
service_princ = u'test/%s@%s' % (host_fqdn, api.env.realm)
|
||||||
[keytabfd, keytabname] = tempfile.mkstemp()
|
[keytabfd, keytabname] = tempfile.mkstemp()
|
||||||
|
@ -29,6 +29,9 @@ cmd += sys.argv[1:]
|
|||||||
# This must be set so ipalib.api gets initialized property for tests:
|
# This must be set so ipalib.api gets initialized property for tests:
|
||||||
os.environ['IPA_UNIT_TEST_MODE'] = 'cli_test'
|
os.environ['IPA_UNIT_TEST_MODE'] = 'cli_test'
|
||||||
|
|
||||||
|
# Add in-tree client binaries to PATH
|
||||||
|
os.environ['PATH'] = './ipa-client:' + os.environ['PATH']
|
||||||
|
|
||||||
if not path.isfile(nose):
|
if not path.isfile(nose):
|
||||||
print 'ERROR: need %r' % nose
|
print 'ERROR: need %r' % nose
|
||||||
sys.exit(100)
|
sys.exit(100)
|
||||||
|
Loading…
Reference in New Issue
Block a user