def test_notify_missing_file_arg(self):

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        self.assertEqual(
            1, hcn.main(['heat-config-notify'], 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'})
        stdin = cStringIO.StringIO(signal_data)

        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], 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')

        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'})
    def test_notify_missing_file_arg(self):

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        self.assertEqual(
            1, hcn.main(['heat-config-notify'], 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'})
        stdin = cStringIO.StringIO(signal_data)

        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], 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')

        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'})
    def test_notify_missing_file(self):

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        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], stdin))
    def test_notify_missing_file(self):

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        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], stdin))
    def test_notify_signal_id_invalid_json_data(self):
        requests = mock.MagicMock()
        hcn.requests = requests

        requests.post.return_value = '[200]'

        stdin = cStringIO.StringIO('{{{"hi')

        with self.write_config_file(self.data_signal_id) as config_file:
            self.assertEqual(
                0, hcn.main(['heat-config-notify', config_file.name], stdin))

        requests.post.assert_called_once_with(
            'mock://192.0.2.3/foo',
            data='{}',
            headers={'content-type': None})
    def test_notify_signal_id_invalid_json_data(self):
        requests = mock.MagicMock()
        hcn.requests = requests

        requests.post.return_value = '[200]'

        stdin = cStringIO.StringIO('{{{"hi')

        with self.write_config_file(self.data_signal_id) as config_file:
            self.assertEqual(
                0, hcn.main(['heat-config-notify', config_file.name], stdin))

        requests.post.assert_called_once_with(
            'mock://192.0.2.3/foo',
            data='{}',
            headers={'content-type': None})
    def test_notify_signal_id_put(self):
        requests = mock.MagicMock()
        hcn.requests = requests

        requests.post.return_value = '[200]'

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        with self.write_config_file(self.data_signal_id_put) as config_file:
            self.assertEqual(
                0, hcn.main(['heat-config-notify', config_file.name], stdin))

        requests.put.assert_called_once_with(
            'mock://192.0.2.3/foo',
            data=signal_data,
            headers={'content-type': None})
Example #10
0
    def test_notify_signal_id_put(self):
        requests = mock.MagicMock()
        hcn.requests = requests

        requests.post.return_value = '[200]'

        signal_data = json.dumps({'foo': 'bar'})
        stdin = cStringIO.StringIO(signal_data)

        with self.write_config_file(self.data_signal_id_put) as config_file:
            self.assertEqual(
                0, hcn.main(['heat-config-notify', config_file.name], stdin))

        requests.put.assert_called_once_with(
            'mock://192.0.2.3/foo',
            data=signal_data,
            headers={'content-type': 'application/json'})