hobo_deploy: write hobo.json even if import_template fails (#33874)

This commit is contained in:
Nicolas Roche 2019-06-12 19:58:30 +02:00
parent e869920a9d
commit e1c34b3b63
2 changed files with 5 additions and 3 deletions

View File

@ -93,13 +93,14 @@ class Command(BaseCommand):
if not self.me.get('secondary'): if not self.me.get('secondary'):
replace_file(tenant_hobo_json, json.dumps(hobo_environment, indent=2)) replace_file(tenant_hobo_json, json.dumps(hobo_environment, indent=2))
self.configure_template(hobo_environment, tenant)
def deploy_specifics(self, hobo_environment, tenant): def deploy_specifics(self, hobo_environment, tenant):
# configure things that are quite common but may actually not be # configure things that are quite common but may actually not be
# common to *all* tenants. # common to *all* tenants.
self.generate_saml_keys(tenant, prefix='sp-') self.generate_saml_keys(tenant, prefix='sp-')
self.configure_service_provider(hobo_environment, tenant) self.configure_service_provider(hobo_environment, tenant)
self.configure_theme(hobo_environment, tenant) self.configure_theme(hobo_environment, tenant)
self.configure_template(hobo_environment, tenant)
def generate_saml_keys(self, tenant, prefix=''): def generate_saml_keys(self, tenant, prefix=''):

View File

@ -162,6 +162,7 @@ def test_deploy(mocked_get_tenant_by_hostname, tmpdir):
command.deploy_specifics = Mock() command.deploy_specifics = Mock()
tenant = Mock() tenant = Mock()
tenant.get_directory = Mock(return_value=str(tmpdir)) tenant.get_directory = Mock(return_value=str(tmpdir))
command.configure_template = Mock()
base_url = 'https://combo.dev.publik.love/' base_url = 'https://combo.dev.publik.love/'
tenant_hobo_json = os.path.join(str(tmpdir), 'hobo.json') tenant_hobo_json = os.path.join(str(tmpdir), 'hobo.json')
ENVIRONMENT = {'services': [{'service-id': 'combo', 'base_url': base_url}], ENVIRONMENT = {'services': [{'service-id': 'combo', 'base_url': base_url}],
@ -179,6 +180,8 @@ def test_deploy(mocked_get_tenant_by_hostname, tmpdir):
content = json.load(handler) content = json.load(handler)
assert ENVIRONMENT['services'][0]['this'] is True # new entry added assert ENVIRONMENT['services'][0]['this'] is True # new entry added
assert json.dumps(content, sort_keys=True), json.dumps(ENVIRONMENT, sort_keys=True) assert json.dumps(content, sort_keys=True), json.dumps(ENVIRONMENT, sort_keys=True)
assert command.configure_template.mock_calls == [call(ENVIRONMENT, tenant)]
command.configure_template.reset_mock()
# create tenant first # create tenant first
command.deploy_specifics.reset_mock() command.deploy_specifics.reset_mock()
@ -218,13 +221,11 @@ def test_deploy_specific():
command.generate_saml_keys = Mock() command.generate_saml_keys = Mock()
command.configure_service_provider = Mock() command.configure_service_provider = Mock()
command.configure_theme = Mock() command.configure_theme = Mock()
command.configure_template = Mock()
command.deploy_specifics('my_hobo_env', 'my_tenant') command.deploy_specifics('my_hobo_env', 'my_tenant')
assert command.generate_saml_keys.mock_calls == [call('my_tenant', prefix='sp-')] assert command.generate_saml_keys.mock_calls == [call('my_tenant', prefix='sp-')]
assert command.configure_service_provider.mock_calls == [call('my_hobo_env', 'my_tenant')] assert command.configure_service_provider.mock_calls == [call('my_hobo_env', 'my_tenant')]
assert command.configure_theme.mock_calls == [call('my_hobo_env', 'my_tenant')] assert command.configure_theme.mock_calls == [call('my_hobo_env', 'my_tenant')]
assert command.configure_template.mock_calls == [call('my_hobo_env', 'my_tenant')]
def test_generate_saml_keys(tmpdir): def test_generate_saml_keys(tmpdir):