def test_rebuild_indices_aborted(self):
with patch.multiple(
Command, _create=DEFAULT, _delete=DEFAULT, _populate=DEFAULT
) as handles:
handles['_delete'].return_value = False
call_command('search_index', stdout=self.out, action='rebuild')
handles['_delete'].assert_called()
handles['_create'].assert_not_called()
handles['_populate'].assert_not_called()
python类multiple()的实例源码
test_requests_kerberos.py 文件源码
项目:deb-python-requests-kerberos
作者: openstack
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def test_force_preemptive(self):
with patch.multiple(kerberos_module_name,
authGSSClientInit=clientInit_complete,
authGSSClientResponse=clientResponse,
authGSSClientStep=clientStep_continue):
auth = requests_kerberos.HTTPKerberosAuth(force_preemptive=True)
request = requests.Request(url="http://www.example.org")
auth.__call__(request)
self.assertTrue('Authorization' in request.headers)
self.assertEqual(request.headers.get('Authorization'), 'Negotiate GSSRESPONSE')
test_requests_kerberos.py 文件源码
项目:deb-python-requests-kerberos
作者: openstack
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def test_no_force_preemptive(self):
with patch.multiple(kerberos_module_name,
authGSSClientInit=clientInit_complete,
authGSSClientResponse=clientResponse,
authGSSClientStep=clientStep_continue):
auth = requests_kerberos.HTTPKerberosAuth()
request = requests.Request(url="http://www.example.org")
auth.__call__(request)
self.assertTrue('Authorization' not in request.headers)
def test_with_statement(self):
with patch.multiple(WireMockServer, start=DEFAULT, stop=DEFAULT) as mocks:
with WireMockServer() as wm:
self.assertIsInstance(wm, WireMockServer)
mocks['start'].assert_called_once_with()
mocks['stop'].assert_called_once_with()
def test_connectionbase():
# Temporarily disable ABC checks
with patch.multiple(ConnectionBase, __abstractmethods__=set()):
with pytest.raises(TypeError):
ConnectionBase()
c = ConnectionBase('project')
assert c.project_name == 'project'
assert not c.project_namespace
assert c.project_qualname == 'project'
c = ConnectionBase('ns/project')
assert c.project_name == 'project'
assert c.project_namespace == 'ns'
assert c.project_qualname == 'ns/project'
def test_acceptance(self):
logger.debug('starting acceptance test')
with patch.multiple(
pb,
get_active_node=DEFAULT,
run_reactor=DEFAULT,
update_active_node=DEFAULT
) as cls_mocks:
# setup some return values
cls_mocks['run_reactor'].side_effect = self.se_run_reactor
cls_mocks['get_active_node'].return_value = 'foo:1234'
cls_mocks['update_active_node'].side_effect = self.se_update_active
# instantiate class
self.cls = VaultRedirector('consul:1234', poll_interval=0.5)
self.cls.log_enabled = False
# make sure active is None (starting state)
assert self.cls.active_node_ip_port is None
self.cls.bind_port = self.get_open_port()
self.cls.log_enabled = True
# setup an async task to make the HTTP request
self.cls.reactor.callLater(2.0, self.se_requester)
# do this in case the callLater for self.stop_reactor fails...
signal.signal(signal.SIGALRM, self.stop_reactor)
signal.alarm(20) # send SIGALRM in 20 seconds, to stop runaway loop
self.cls.run()
signal.alarm(0) # disable SIGALRM
assert self.cls.active_node_ip_port == 'bar:5678' # from update_active
assert self.update_active_called is True
assert cls_mocks['update_active_node'].mock_calls[0] == call()
assert cls_mocks['run_reactor'].mock_calls == [call()]
assert cls_mocks['get_active_node'].mock_calls == [call()]
# HTTP response checks
resp = json.loads(self.response)
# /bar/baz
assert resp['/bar/baz']['headers'][
'Server'] == "vault-redirector/%s/TwistedWeb/%s" % (
_VERSION, twisted_version.short()
)
assert resp['/bar/baz']['headers'][
'Location'] == 'http://bar:5678/bar/baz'
assert resp['/bar/baz']['status_code'] == 307
# /vault-redirector-health
assert resp['/vault-redirector-health']['status_code'] == 200
health_info = json.loads(resp['/vault-redirector-health']['text'])
assert resp['/vault-redirector-health']['headers'][
'Content-Type'] == 'application/json'
assert health_info['healthy'] is True
assert health_info['application'] == 'vault-redirector'
assert health_info['version'] == _VERSION
assert health_info['source'] == _PROJECT_URL
assert health_info['consul_host_port'] == 'consul:1234'
assert health_info['active_vault'] == 'bar:5678'
def test_initial(self):
mock_t = Mock()
mock_std = Mock()
mock_stpp = Mock()
mock_stm = Mock()
mock_mct = Mock()
mock_mbs = Mock()
mock_mos = Mock()
with patch.multiple(
pb,
autospec=True,
_transactions=DEFAULT,
_scheduled_transactions_date=DEFAULT,
_scheduled_transactions_per_period=DEFAULT,
_scheduled_transactions_monthly=DEFAULT,
_make_combined_transactions=DEFAULT,
_make_budget_sums=DEFAULT,
_make_overall_sums=DEFAULT
) as mocks:
mocks['_transactions'].return_value.all.return_value = mock_t
mocks['_scheduled_transactions_date'
''].return_value.all.return_value = mock_std
mocks['_scheduled_transactions_per_period'
''].return_value.all.return_value = mock_stpp
mocks['_scheduled_transactions_monthly'
''].return_value.all.return_value = mock_stm
mocks['_make_combined_transactions'].return_value = mock_mct
mocks['_make_budget_sums'].return_value = mock_mbs
mocks['_make_overall_sums'].return_value = mock_mos
res = self.cls._data
assert res == {
'transactions': mock_t,
'st_date': mock_std,
'st_per_period': mock_stpp,
'st_monthly': mock_stm,
'all_trans_list': mock_mct,
'budget_sums': mock_mbs,
'overall_sums': mock_mos
}
assert mocks['_transactions'].mock_calls == [
call(self.cls), call().all()
]
assert mocks['_scheduled_transactions_date'].mock_calls == [
call(self.cls), call().all()
]
assert mocks['_scheduled_transactions_per_period'].mock_calls == [
call(self.cls), call().all()
]
assert mocks['_scheduled_transactions_monthly'].mock_calls == [
call(self.cls), call().all()
]
assert mocks['_make_combined_transactions'].mock_calls == [
call(self.cls)
]
assert mocks['_make_budget_sums'].mock_calls == [
call(self.cls)
]
assert mocks['_make_overall_sums'].mock_calls == [
call(self.cls)
]
def test_base(self):
class MockGroup(MagicMock):
def __init__(self, name):
super(MockGroup, self).__init__()
self.name = name
hosts = []
vars = {}
def __repr__(self):
return str(self.name)
group_all = MockGroup("all")
compute = MockGroup("compute")
controller = MockGroup("controller")
ungrouped = MockGroup("ungrouped")
group_all.hosts = ['localhost']
compute.hosts = ['localhost']
compute.vars = {'localhost': {
"ansible_connection": "local",
"neutron_physical_interface_mappings": "vlan:enp0s8,"
"external:enp0s3",
"cinder_disk": "/dev/sdc"}}
controller.hosts = ['localhost']
controller.vars = {'localhost': {
"ansible_connection": "local"
}}
mocked_inv = MagicMock()
mocked_inv.groups = {'all': group_all,
'compute': compute,
'controller': controller,
'ungrouped': ungrouped}
mocked_dl = MagicMock()
inventory_path = "NonePath"
with patch.multiple('inventory.dynlxc', InventoryParser=mocked_inv,
DataLoader=mocked_dl):
res = dynlxc.read_inventory_file(inventory_path)
mocked_dl.assert_called_once_with()
assert "all" in res
assert "_meta" in res
assert "hostvars" in res["_meta"]
assert "groupvars" in res["_meta"]
assert "localhost" in res["all"]
assert "compute" in res
assert "localhost" in res["compute"]["hosts"]