예제 #1
0
    def test_success_with_confirmation(self):
        load_bintray_webhook_secret_mock = MagicMock(
            return_value=self.bintray_webhook_secret)
        resolved_version_mock = MagicMock(return_value=self.resolved_version)
        continuous_delivery_uri_mock = MagicMock(return_value=self.deploy_uri)
        request_deploy_confirmation_mock = MagicMock(return_value=True)
        url_mock = MagicMock(return_value=self.url_mock)
        generate_hmac_signature_mock = MagicMock(return_value=self.hmac_mock)
        http_mock = self.respond_with(text=self.deployment_id)
        wait_for_deployment_complete_mock = MagicMock()

        input_args = MagicMock(
            **{
                'dcos_mode': False,
                'host': self.host,
                'conductr_auth': self.conductr_auth,
                'server_verification_file': self.server_verification_file,
                'auto_deploy': False,
                'bundle': self.bundle_id,
                'custom_settings': self.custom_settings,
                'no_wait': False
            })

        with patch('conductr_cli.custom_settings.load_bintray_webhook_secret', load_bintray_webhook_secret_mock), \
                patch('conductr_cli.resolver.resolve_bundle_version', resolved_version_mock), \
                patch('conductr_cli.resolver.continuous_delivery_uri', continuous_delivery_uri_mock), \
                patch('conductr_cli.conduct_deploy.request_deploy_confirmation', request_deploy_confirmation_mock), \
                patch('conductr_cli.conduct_url.url', url_mock), \
                patch('conductr_cli.bundle_deploy.generate_hmac_signature', generate_hmac_signature_mock), \
                patch('conductr_cli.conduct_request.post', http_mock), \
                patch('conductr_cli.bundle_deploy.wait_for_deployment_complete', wait_for_deployment_complete_mock):
            self.assertTrue(conduct_deploy.deploy(input_args))

        load_bintray_webhook_secret_mock.assert_called_with(input_args)
        resolved_version_mock.assert_called_with(self.custom_settings,
                                                 self.bundle_id)
        continuous_delivery_uri_mock.assert_called_with(
            self.custom_settings, self.resolved_version)
        request_deploy_confirmation_mock.assert_called_with(
            self.resolved_version, input_args)
        url_mock.assert_called_with(self.deploy_uri, input_args)
        generate_hmac_signature_mock.assert_called_with(
            self.bintray_webhook_secret, 'cassandra')
        http_mock.assert_called_with(
            False,
            self.host,
            self.url_mock,
            json={
                'package': 'cassandra',
                'version': 'v1-abcabc'
            },
            headers={'X-Bintray-Hook-Hmac': self.hmac_mock},
            auth=self.conductr_auth,
            verify=self.server_verification_file)
        wait_for_deployment_complete_mock.assert_called_with(
            self.deployment_id, self.resolved_version, input_args)
예제 #2
0
    def test_success_no_wait(self):
        load_bintray_webhook_secret_mock = MagicMock(return_value=self.bintray_webhook_secret)
        resolved_version_mock = MagicMock(return_value=self.resolved_version)
        continuous_delivery_uri_mock = MagicMock(return_value=self.deploy_uri)
        request_deploy_confirmation_mock = MagicMock()
        url_mock = MagicMock(return_value=self.url_mock)
        generate_hmac_signature_mock = MagicMock(return_value=self.hmac_mock)
        http_mock = self.respond_with(text=self.deployment_id)
        wait_for_deployment_complete_mock = MagicMock()

        input_args = MagicMock(**{
            'dcos_mode': False,
            'host': self.host,
            'conductr_auth': self.conductr_auth,
            'server_verification_file': self.server_verification_file,
            'auto_deploy': True,
            'bundle': self.bundle_id,
            'custom_settings': self.custom_settings,
            'no_wait': True
        })

        with patch('conductr_cli.custom_settings.load_bintray_webhook_secret', load_bintray_webhook_secret_mock), \
                patch('conductr_cli.resolver.resolve_bundle_version', resolved_version_mock), \
                patch('conductr_cli.resolver.continuous_delivery_uri', continuous_delivery_uri_mock), \
                patch('conductr_cli.conduct_deploy.request_deploy_confirmation', request_deploy_confirmation_mock), \
                patch('conductr_cli.conduct_url.url', url_mock), \
                patch('conductr_cli.bundle_deploy.generate_hmac_signature', generate_hmac_signature_mock), \
                patch('conductr_cli.conduct_request.post', http_mock), \
                patch('conductr_cli.bundle_deploy.wait_for_deployment_complete', wait_for_deployment_complete_mock):
            self.assertTrue(conduct_deploy.deploy(input_args))

        load_bintray_webhook_secret_mock.assert_called_with(input_args)
        resolved_version_mock.assert_called_with(self.custom_settings, self.bundle_id)
        continuous_delivery_uri_mock.assert_called_with(self.custom_settings, self.resolved_version)
        request_deploy_confirmation_mock.assert_not_called()
        url_mock.assert_called_with(self.deploy_uri, input_args)
        generate_hmac_signature_mock.assert_called_with(self.bintray_webhook_secret, 'cassandra')
        http_mock.assert_called_with(False, self.host, self.url_mock,
                                     json={
                                         'package': 'cassandra',
                                         'version': 'v1-abcabc'
                                     },
                                     headers={'X-Bintray-WebHook-Hmac': self.hmac_mock},
                                     auth=self.conductr_auth,
                                     verify=self.server_verification_file)
        wait_for_deployment_complete_mock.assert_not_called()
예제 #3
0
    def test_declined(self):
        load_bintray_webhook_secret_mock = MagicMock(
            return_value=self.bintray_webhook_secret)
        resolved_version_mock = MagicMock(return_value=self.resolved_version)
        continuous_delivery_uri_mock = MagicMock(return_value=self.deploy_uri)
        request_deploy_confirmation_mock = MagicMock(return_value=False)
        url_mock = MagicMock(return_value=self.url_mock)
        generate_hmac_signature_mock = MagicMock(return_value=self.hmac_mock)
        http_mock = self.respond_with(text=self.deployment_id)
        wait_for_deployment_complete_mock = MagicMock()

        input_args = MagicMock(
            **{
                'dcos_mode': False,
                'host': self.host,
                'conductr_auth': self.conductr_auth,
                'server_verification_file': self.server_verification_file,
                'auto_deploy': False,
                'bundle': self.bundle_id,
                'custom_settings': self.custom_settings,
                'no_wait': False
            })

        with patch('conductr_cli.custom_settings.load_bintray_webhook_secret', load_bintray_webhook_secret_mock), \
                patch('conductr_cli.resolver.resolve_bundle_version', resolved_version_mock), \
                patch('conductr_cli.resolver.continuous_delivery_uri', continuous_delivery_uri_mock), \
                patch('conductr_cli.conduct_deploy.request_deploy_confirmation', request_deploy_confirmation_mock), \
                patch('conductr_cli.conduct_url.url', url_mock), \
                patch('conductr_cli.bundle_deploy.generate_hmac_signature', generate_hmac_signature_mock), \
                patch('conductr_cli.conduct_request.post', http_mock), \
                patch('conductr_cli.bundle_deploy.wait_for_deployment_complete', wait_for_deployment_complete_mock):
            self.assertIsNone(conduct_deploy.deploy(input_args))

        load_bintray_webhook_secret_mock.assert_called_with(input_args)
        resolved_version_mock.assert_called_with(self.custom_settings,
                                                 self.bundle_id)
        continuous_delivery_uri_mock.assert_called_with(
            self.custom_settings, self.resolved_version)
        request_deploy_confirmation_mock.assert_called_with(
            self.resolved_version, input_args)
        url_mock.assert_not_called()
        generate_hmac_signature_mock.assert_not_called()
        http_mock.assert_not_called()
예제 #4
0
    def test_error_deploy_uri_not_found(self):
        load_bintray_webhook_secret_mock = MagicMock(return_value=self.bintray_webhook_secret)
        resolved_version_mock = MagicMock(return_value=self.resolved_version)
        continuous_delivery_uri_mock = MagicMock(return_value=None)
        request_deploy_confirmation_mock = MagicMock()
        url_mock = MagicMock()
        generate_hmac_signature_mock = MagicMock()
        http_mock = self.respond_with(text=self.deployment_id)
        wait_for_deployment_complete_mock = MagicMock()

        input_args = MagicMock(**{
            'dcos_mode': False,
            'host': self.host,
            'conductr_auth': self.conductr_auth,
            'server_verification_file': self.server_verification_file,
            'auto_deploy': False,
            'bundle': self.bundle_id,
            'custom_settings': self.custom_settings,
            'no_wait': False
        })

        with patch('conductr_cli.custom_settings.load_bintray_webhook_secret', load_bintray_webhook_secret_mock), \
                patch('conductr_cli.resolver.resolve_bundle_version', resolved_version_mock), \
                patch('conductr_cli.resolver.continuous_delivery_uri', continuous_delivery_uri_mock), \
                patch('conductr_cli.conduct_deploy.request_deploy_confirmation', request_deploy_confirmation_mock), \
                patch('conductr_cli.conduct_url.url', url_mock), \
                patch('conductr_cli.bundle_deploy.generate_hmac_signature', generate_hmac_signature_mock), \
                patch('conductr_cli.conduct_request.post', http_mock), \
                patch('conductr_cli.bundle_deploy.wait_for_deployment_complete', wait_for_deployment_complete_mock):
            self.assertIsNone(conduct_deploy.deploy(input_args))

        load_bintray_webhook_secret_mock.assert_called_with(input_args)
        resolved_version_mock.assert_called_with(self.custom_settings, self.bundle_id)
        continuous_delivery_uri_mock.assert_called_with(self.custom_settings, self.resolved_version)
        request_deploy_confirmation_mock.assert_not_called()
        url_mock.assert_not_called()
        generate_hmac_signature_mock.assert_not_called()
        http_mock.assert_not_called()