Imported Upstream version 4.8.10
This commit is contained in:
59
ipatests/test_ipaserver/test_adtrust_mockup.py
Normal file
59
ipatests/test_ipaserver/test_adtrust_mockup.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# Copyright (C) 2018 FreeIPA Project Contributors - see LICENSE file
|
||||
|
||||
from __future__ import print_function
|
||||
import ipaserver.install.adtrust as adtr
|
||||
from ipaserver.install.adtrust import set_and_check_netbios_name
|
||||
from collections import namedtuple
|
||||
from unittest import mock
|
||||
from io import StringIO
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
class ApiMockup:
|
||||
Backend = namedtuple('Backend', 'ldap2')
|
||||
Calls = namedtuple('Callbacks', 'retrieve_netbios_name')
|
||||
env = namedtuple('Environment', 'domain')
|
||||
|
||||
|
||||
class TestNetbiosName:
|
||||
api = None
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def netbiosname_setup(self, request):
|
||||
cls = request.cls
|
||||
api = ApiMockup()
|
||||
ldap2 = namedtuple('LDAP', 'isconnected')
|
||||
ldap2.isconnected = mock.MagicMock(return_value=True)
|
||||
api.Backend.ldap2 = ldap2
|
||||
api.Calls.retrieve_netbios_name = adtr.retrieve_netbios_name
|
||||
adtr.retrieve_netbios_name = mock.MagicMock(return_value=None)
|
||||
cls.api = api
|
||||
|
||||
def fin():
|
||||
adtr.retrieve_netbios_name = cls.api.Calls.retrieve_netbios_name
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_NetbiosName(self):
|
||||
"""
|
||||
Test set_and_check_netbios_name() using permutation of two inputs:
|
||||
- predefined and not defined NetBIOS name
|
||||
- unattended and interactive run
|
||||
As result, the function has to return expected NetBIOS name in
|
||||
all cases. For interactive run we override input to force what
|
||||
we expect.
|
||||
"""
|
||||
self.api.env.domain = 'example.com'
|
||||
expected_nname = 'EXAMPLE'
|
||||
# NetBIOS name, unattended, should set the name?
|
||||
tests = ((expected_nname, True, False),
|
||||
(None, True, True),
|
||||
(None, False, True),
|
||||
(expected_nname, False, False))
|
||||
with mock.patch('sys.stdin', new_callable=StringIO) as stdin:
|
||||
stdin.write(expected_nname + '\r')
|
||||
for test in tests:
|
||||
nname, setname = set_and_check_netbios_name(
|
||||
test[0], test[1], self.api)
|
||||
assert expected_nname == nname
|
||||
assert setname == test[2]
|
||||
Reference in New Issue
Block a user