def test_notify_signal_id_invalid_json_data(self): requests = mock.MagicMock() session = mock.MagicMock() requests.Session.return_value = session retry = mock.MagicMock() httpadapter = mock.MagicMock() hcn.requests = requests hcn.Retry = retry hcn.HTTPAdapter = httpadapter session.post.return_value = '[200]' signal_data = json.dumps({'foo': 'bar'}) self.stdin.write(signal_data) self.stdin.write(signal_data[:-3]) self.stdin.seek(0) with self.write_config_file(self.data_signal_id) as config_file: self.assertEqual( 0, hcn.main(['heat-config-notify', config_file.name], self.stdin)) session.post.assert_called_once_with( 'mock://192.0.2.3/foo', data='{}', headers={'content-type': 'application/json'})
def test_notify_missing_file_arg(self): signal_data = json.dumps({'foo': 'bar'}) self.stdin.write(signal_data) self.stdin.seek(0) self.assertEqual(1, hcn.main(['heat-config-notify'], self.stdin))
def test_notify_missing_file(self): signal_data = json.dumps({'foo': 'bar'}) self.stdin.write(signal_data) self.stdin.seek(0) with self.write_config_file(self.data_signal_id) as config_file: config_file_name = config_file.name self.assertEqual( 1, hcn.main(['heat-config-notify', config_file_name], self.stdin))
def test_notify_heat_signal(self): ksclient = mock.MagicMock() hcn.ksclient = ksclient ks = mock.MagicMock() ksclient.Client.return_value = ks heatclient = mock.MagicMock() hcn.heatclient = heatclient heat = mock.MagicMock() heatclient.Client.return_value = heat signal_data = json.dumps({'foo': 'bar'}) self.stdin.write(signal_data) self.stdin.seek(0) ks.service_catalog.url_for.return_value = 'mock://192.0.2.3/heat' heat.resources.signal.return_value = 'all good' with self.write_config_file(self.data_heat_signal) as config_file: self.assertEqual( 0, hcn.main(['heat-config-notify', config_file.name], self.stdin)) ksclient.Client.assert_called_once_with( auth_url='mock://192.0.2.3/auth', user_id='aaaa', password='******', project_id='bbbb') ks.service_catalog.url_for.assert_called_once_with( service_type='orchestration', endpoint_type='publicURL', region_name='RegionOne') heatclient.Client.assert_called_once_with('1', 'mock://192.0.2.3/heat', token=ks.auth_token) heat.resources.signal.assert_called_once_with('cccc', 'the_resource', data={'foo': 'bar'})