def test_true_false_not_resolved(self):
     bindings = YamlBindings()
     bindings.import_dict({'indirect': '${t}'})
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertFalse(validator.verify_true_false('indirect'))
     self.assertEqual('Missing "indirect".', validator.errors[0])
Beispiel #2
0
  def test_load_key_not_found(self):
    bindings = YamlBindings()
    bindings.import_dict({'field': '${injected.value}', 'injected': {}})

    with self.assertRaises(KeyError):
      bindings['unknown']
    self.assertEqual(None, bindings.get('unknown', None))
Beispiel #3
0
def populate_google_yml(content):
  credentials = {'project': '', 'jsonPath': ''}
  google_dict = {'enabled': False,
                 'defaultRegion': 'us-central1',
                 'defaultZone': 'us-central1-f',}

  google_dict['primaryCredentials'] = credentials

  if is_google_instance():
      zone = os.path.basename(
           check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone',
                       google=True).content)
      google_dict['enabled'] = 'true'
      google_dict['defaultRegion'] = zone[:-2]
      google_dict['defaultZone'] = zone
      credentials['project'] = check_fetch(
            GOOGLE_METADATA_URL + '/project/project-id', google=True).content

  bindings = YamlBindings()
  bindings.import_dict({'providers': {'google': google_dict}})
  content = bindings.transform_yaml_source(content, 'providers.google.enabled')
  content = bindings.transform_yaml_source(
      content, 'providers.google.defaultRegion')
  content = bindings.transform_yaml_source(
      content, 'providers.google.defaultZone')
  content = bindings.transform_yaml_source(
      content, 'providers.google.primaryCredentials.project')
  content = bindings.transform_yaml_source(
      content, 'providers.google.primaryCredentials.jsonPath')

  return content
Beispiel #4
0
 def test_load_transitive_indirect(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${injected.value}', 'found': 'FOUND'})
   bindings.import_dict({'injected': {'value': '${found}'}})
   self.assertEqual('FOUND', bindings.get('field'))
   self.assertEqual('FOUND', bindings['field'])
   self.assertEqual('FOUND', bindings.get('field', None))
Beispiel #5
0
 def test_update_field_union_child(self):
   bindings = YamlBindings()
   bindings.import_dict({'parent1': {'a': 'A'}, 'parent2': {'x': 'X'}})
   bindings.import_dict({'parent1': {'b': 'B'}})
   self.assertEqual({'parent1': {'a': 'A', 'b': 'B'},
                     'parent2': {'x': 'X'}},
                    bindings.map)
Beispiel #6
0
    def test_transform_ok(self):
        bindings = YamlBindings()
        bindings.import_dict({
            'a': {
                'b': {
                    'space': 'WithSpace',
                    'empty': 'Empty'
                }
            },
            'x': {
                'unique': True
            }
        })
        template = """
a:
  b:
    space: {space}
    empty:{empty}
unique:
  b:
     space: A
     empty:
"""
        source = template.format(space='SPACE', empty='')
        expect = template.format(space='WithSpace', empty=' Empty')
        got = source
        for key in ['a.b.space', 'a.b.empty']:
            got = bindings.transform_yaml_source(got, key)

        self.assertEqual(expect,
                         bindings.transform_yaml_source(expect, 'bogus'))
        self.assertEqual(expect, got)
Beispiel #7
0
 def test_true_false_not_resolved(self):
     bindings = YamlBindings()
     bindings.import_dict({'indirect': '${t}'})
     validator = ValidateConfig(configurator=Configurator(
         bindings=bindings))
     self.assertFalse(validator.verify_true_false('indirect'))
     self.assertEqual('Missing "indirect".', validator.errors[0])
 def test_update_field_union_child(self):
   bindings = YamlBindings()
   bindings.import_dict({'parent1': {'a': 'A'}, 'parent2': {'x': 'X'}})
   bindings.import_dict({'parent1': {'b': 'B'}})
   self.assertEqual({'parent1': {'a': 'A', 'b': 'B'},
                     'parent2': {'x': 'X'}},
                    bindings.map)
Beispiel #9
0
    def test_load_key_not_found(self):
        bindings = YamlBindings()
        bindings.import_dict({'field': '${injected.value}', 'injected': {}})

        with self.assertRaises(KeyError):
            bindings['unknown']
        self.assertEqual(None, bindings.get('unknown', None))
Beispiel #10
0
def populate_google_yml(content):
    credentials = {'project': '', 'jsonPath': ''}
    google_dict = {
        'enabled': False,
        'defaultRegion': 'us-central1',
        'defaultZone': 'us-central1-f',
    }

    google_dict['primaryCredentials'] = credentials

    if is_google_instance():
        zone = os.path.basename(
            check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone',
                        google=True).content)
        google_dict['enabled'] = 'true'
        google_dict['defaultRegion'] = zone[:-2]
        google_dict['defaultZone'] = zone
        credentials['project'] = check_fetch(GOOGLE_METADATA_URL +
                                             '/project/project-id',
                                             google=True).content

    bindings = YamlBindings()
    bindings.import_dict({'providers': {'google': google_dict}})
    content = bindings.transform_yaml_source(content,
                                             'providers.google.enabled')
    content = bindings.transform_yaml_source(content,
                                             'providers.google.defaultRegion')
    content = bindings.transform_yaml_source(content,
                                             'providers.google.defaultZone')
    content = bindings.transform_yaml_source(
        content, 'providers.google.primaryCredentials.project')
    content = bindings.transform_yaml_source(
        content, 'providers.google.primaryCredentials.jsonPath')

    return content
Beispiel #11
0
  def test_transform_ok(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': {'b': { 'space': 'WithSpace',
                                        'nospace': 'WithoutSpace',
                                        'empty': 'Empty'}},
                           'x' : {'unique': True}})
     template = """
a:
  b:
    space: {space}
    nospace:{nospace}
    empty:{empty}
unique:
  b:
     space: A
     nospace:B
     empty:
"""
     source = template.format(space='SPACE', nospace='NOSPACE', empty='')
     expect = template.format(space='WithSpace',
                              nospace=' WithoutSpace',
                              empty=' Empty')
     got = source
     for key in [ 'a.b.space', 'a.b.nospace', 'a.b.empty' ]:
       got = bindings.transform_yaml_source(got, key)

     self.assertEqual(expect, bindings.transform_yaml_source(expect, 'bogus'))
     self.assertEqual(expect, got)
Beispiel #12
0
 def test_load_transitive_indirect(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${injected.value}', 'found': 'FOUND'})
     bindings.import_dict({'injected': {'value': '${found}'}})
     self.assertEqual('FOUND', bindings.get('field'))
     self.assertEqual('FOUND', bindings['field'])
     self.assertEqual('FOUND', bindings.get('field', None))
Beispiel #13
0
 def test_update_field_replace_child(self):
     bindings = YamlBindings()
     bindings.import_dict({'parent': {'a': 'A', 'b': 'B', 'c': 'C'}})
     bindings.import_dict({'parent': {'a': 'X', 'b': 'Y', 'z': 'Z'}})
     self.assertEqual({'parent': {
         'a': 'X',
         'b': 'Y',
         'z': 'Z',
         'c': 'C'
     }}, bindings.map)
 def test_true_false_good(self):
     bindings = YamlBindings()
     bindings.import_dict(
         {'t': True, 'f':False, 'indirect':'${t}', 'default': '${x:true}'})
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertTrue(validator.verify_true_false('t'))
     self.assertTrue(validator.verify_true_false('f'))
     self.assertTrue(validator.verify_true_false('indirect'))
     self.assertTrue(validator.verify_true_false('default'))
  def test_load_dict(self):
    expect = {'a': 'A',
              'b': 0,
              'c': ['A','B'],
              'd': {'child': {'grandchild': 'x'}},
              'e': None}

    bindings = YamlBindings()
    bindings.import_dict(expect)
    self.assertEqual(expect, bindings.map)
Beispiel #16
0
 def test_cyclic_reference(self):
     bindings = YamlBindings()
     bindings.import_dict({
         'field': '${injected.value}',
         'injected': {
             'value': '${field}'
         }
     })
     with self.assertRaises(ValueError):
         bindings.get('field')
 def test_true_false_good(self):
     bindings = YamlBindings()
     bindings.import_dict(
         {'t': True, 'f':False, 'indirect':'${t}', 'default': '${x:true}'})
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertTrue(validator.verify_true_false('t'))
     self.assertTrue(validator.verify_true_false('f'))
     self.assertTrue(validator.verify_true_false('indirect'))
     self.assertTrue(validator.verify_true_false('default'))
Beispiel #18
0
  def test_load_dict(self):
    expect = {'a': 'A',
              'b': 0,
              'c': ['A','B'],
              'd': {'child': {'grandchild': 'x'}},
              'e': None}

    bindings = YamlBindings()
    bindings.import_dict(expect)
    self.assertEqual(expect, bindings.map)
  def test_transform_fail(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': {'b': { 'child': 'Hello, World!'}},
                           'x' : {'unique': True}})
     yaml = """
a:
  b:
     child: Hello
"""
     with self.assertRaises(ValueError):
       bindings.transform_yaml_source(yaml, 'x.unique')
Beispiel #20
0
    def host_test_helper(self, tests, valid, required=False):
        bindings = YamlBindings()
        bindings.import_dict(tests)
        validator = ValidateConfig(configurator=Configurator(
            bindings=bindings))
        for key, value in tests.items():
            msg = '"{key}" was {valid}'.format(
                key=key, valid='invalid' if valid else 'valid')

            self.assertEqual(valid, validator.verify_host(key, required), msg)
        return validator
    def test_update_deck_settings(self):
        temp_sourcedir = tempfile.mkdtemp()
        temp_targetdir = tempfile.mkdtemp()
        template = """
preamble
// BEGIN reconfigure_spinnaker
// var gateUrl = ${{services.gate.baseUrl}};
{gate_url_value}
// var bakeryBaseUrl = ${{services.bakery.baseUrl}};
{bakery_url_value}
// END reconfigure_spinnaker
// var gateUrl = ${{services.gate.baseUrl}};
stuff here is left along.
"""
        # This was originally just a comment, which was preserved.
        bakery_url_assignment = ("var bakeryBaseUrl = 'BAKERY_BASE_URL';"
                                 "\n# comment")

        # This was originally a different let statement that was removed.
        gate_url_assignment = "var gateUrl = 'GATE_BASE_URL';"
        bindings = YamlBindings()
        bindings.import_dict({
            'services': {
                'gate': {
                    'baseUrl': 'GATE_BASE_URL'
                },
                'bakery': {
                    'baseUrl': 'BAKERY_BASE_URL'
                },
            }
        })

        installation = InstallationParameters
        installation.INSTALLED_CONFIG_DIR = temp_sourcedir
        installation.DECK_INSTALL_DIR = temp_targetdir
        configurator = Configurator(installation_parameters=installation,
                                    bindings=bindings)
        try:
            source_settings_path = os.path.join(temp_sourcedir, 'settings.js')
            target_settings_path = os.path.join(temp_targetdir, 'settings.js')
            with open(source_settings_path, 'w') as f:
                f.write(
                    template.format(gate_url_value="var gateUrl='old';",
                                    bakery_url_value='# comment'))

            configurator.update_deck_settings()
            with open(target_settings_path, 'r') as f:
                got = f.read()
            expect = template.format(gate_url_value=gate_url_assignment,
                                     bakery_url_value=bakery_url_assignment)
            self.assertEqual(expect, got)
        finally:
            shutil.rmtree(temp_sourcedir)
            shutil.rmtree(temp_targetdir)
 def host_test_helper(self, tests, valid, required=False):
     bindings = YamlBindings()
     bindings.import_dict(tests)
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     for key, value in tests.items():
         msg = '"{key}" was {valid}'.format(
             key=key, valid='invalid' if valid else 'valid')
                                            
         self.assertEqual(valid, validator.verify_host(key, required), msg)
     return validator
Beispiel #23
0
  def test_transform_fail(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': {'b': { 'child': 'Hello, World!'}},
                           'x' : {'unique': True}})
     yaml = """
a:
  b:
     child: Hello
"""
     with self.assertRaises(ValueError):
       bindings.transform_yaml_source(yaml, 'x.unique')
 def test_verify_at_least_one_provider_enabled_good(self):
     bindings = YamlBindings()
     bindings.import_dict({
         'providers': {
             'aws': { 'enabled': False },
             'google': {'enabled': False },
             'another': {'enabled': True }
         },
     })
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertTrue(validator.verify_at_least_one_provider_enabled())
 def test_verify_at_least_one_provider_enabled_good(self):
     bindings = YamlBindings()
     bindings.import_dict({
         'providers': {
             'aws': { 'enabled': False },
             'google': {'enabled': False },
             'another': {'enabled': True }
         },
     })
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertTrue(validator.verify_at_least_one_provider_enabled())
 def test_verify_at_least_one_provider_enabled_bad(self):
     bindings = YamlBindings()
     bindings.import_dict({
         'providers': {
             'aws': { 'enabled': False },
             'google': {'enabled': False }
         },
         'services': {'test': { 'enabled': True }}
     })
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertFalse(validator.verify_at_least_one_provider_enabled())
     self.assertEqual('None of the providers are enabled.',
                      validator.errors[0])
 def baseUrl_test_helper(self, tests, valid, scheme_optional):
     bindings = YamlBindings()
     bindings.import_dict(tests)
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     for key, value in tests.items():
         msg = '"{key}" was {valid}'.format(
             key=key, valid='invalid' if valid else 'valid')
                                            
         self.assertEqual(
             valid,
             validator.verify_baseUrl(key, True,
                                      scheme_optional=scheme_optional),
             msg)
Beispiel #28
0
    def baseUrl_test_helper(self, tests, valid, scheme_optional):
        bindings = YamlBindings()
        bindings.import_dict(tests)
        validator = ValidateConfig(configurator=Configurator(
            bindings=bindings))
        for key, value in tests.items():
            msg = '"{key}" was {valid}'.format(
                key=key, valid='invalid' if valid else 'valid')

            self.assertEqual(
                valid,
                validator.verify_baseUrl(key,
                                         True,
                                         scheme_optional=scheme_optional), msg)
 def test_verify_at_least_one_provider_enabled_bad(self):
     bindings = YamlBindings()
     bindings.import_dict({
         'providers': {
             'aws': { 'enabled': False },
             'google': {'enabled': False }
         },
         'services': {'test': { 'enabled': True }}
     })
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertFalse(validator.verify_at_least_one_provider_enabled())
     self.assertEqual('None of the providers are enabled.',
                      validator.errors[0])
    def test_update_deck_settings(self):
        temp_sourcedir = tempfile.mkdtemp()
        temp_targetdir = tempfile.mkdtemp()
        template = """
preamble
// BEGIN reconfigure_spinnaker
// var gateUrl = ${{services.gate.baseUrl}};
{gate_url_value}
// var bakeryBaseUrl = ${{services.bakery.baseUrl}};
{bakery_url_value}
// END reconfigure_spinnaker
// var gateUrl = ${{services.gate.baseUrl}};
stuff here is left along.
"""
        # This was originally just a comment, which was preserved.
        bakery_url_assignment = ("var bakeryBaseUrl = 'BAKERY_BASE_URL';"
                                 "\n# comment")

        # This was originally a different let statement that was removed.
        gate_url_assignment = "var gateUrl = 'GATE_BASE_URL';"
        bindings = YamlBindings()
        bindings.import_dict({
            'services': {
                'gate': { 'baseUrl': 'GATE_BASE_URL' },
                'bakery': { 'baseUrl': 'BAKERY_BASE_URL' },
             }
        })

        installation = InstallationParameters
        installation.INSTALLED_CONFIG_DIR = temp_sourcedir
        installation.DECK_INSTALL_DIR = temp_targetdir
        configurator = Configurator(installation_parameters=installation,
                                    bindings=bindings)
        try:
            source_settings_path = os.path.join(temp_sourcedir, 'settings.js')
            target_settings_path = os.path.join(temp_targetdir, 'settings.js')
            with open(source_settings_path, 'w') as f:
                f.write(template.format(gate_url_value="var gateUrl='old';",
                                        bakery_url_value='# comment'))

            configurator.update_deck_settings()
            with open(target_settings_path, 'r') as f:
                got = f.read()
            expect = template.format(gate_url_value=gate_url_assignment,
                                     bakery_url_value=bakery_url_assignment)
            self.assertEqual(expect, got)
        finally:
            shutil.rmtree(temp_sourcedir)
            shutil.rmtree(temp_targetdir)
Beispiel #31
0
 def test_load_default_bool(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${undefined:True}'})
     self.assertEqual(True, bindings.get('field'))
     bindings.import_dict({'field': '${undefined:true}'})
     self.assertEqual(True, bindings.get('field'))
     bindings.import_dict({'field': '${undefined:false}'})
     self.assertEqual(False, bindings.get('field'))
     bindings.import_dict({'field': '${undefined:False}'})
     self.assertEqual(False, bindings.get('field'))
Beispiel #32
0
 def test_load_default_bool(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${undefined:True}'})
   self.assertEqual(True, bindings.get('field'))
   bindings.import_dict({'field': '${undefined:true}'})
   self.assertEqual(True, bindings.get('field'))
   bindings.import_dict({'field': '${undefined:false}'})
   self.assertEqual(False, bindings.get('field'))
   bindings.import_dict({'field': '${undefined:False}'})
   self.assertEqual(False, bindings.get('field'))
 def test_true_false_bad(self):
     bindings = YamlBindings()
     bindings.import_dict(
         {'t': 'true', 'f':'false', 'indirect':'${t}', 'default': '${x:0}'})
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertFalse(validator.verify_true_false('t'))
     self.assertFalse(validator.verify_true_false('f'))
     self.assertFalse(validator.verify_true_false('indirect'))
     self.assertFalse(validator.verify_true_false('default'))
     self.assertEqual(4, len(validator.errors))
     self.assertEqual(0, len(validator.warnings))
     self.assertEqual(
         ["t='true' is not valid. Must be boolean true or false.",
          "f='false' is not valid. Must be boolean true or false.",
          "indirect='true' is not valid. Must be boolean true or false.",
          "default=0 is not valid. Must be boolean true or false."],
         validator.errors)
Beispiel #34
0
def populate_aws_yml(content):
  aws_dict = {'enabled': False}
  if is_aws_instance():
      zone = (check_fetch(AWS_METADATA_URL + '/placement/availability-zone')
              .content)
      aws_dict['enabled'] = 'true'
      aws_dict['defaultRegion'] = zone[:-1]
  elif os.path.exists(os.path.join(os.environ['HOME'], '.aws/credentials')):
      aws_dict['enabled'] = 'true'
      aws_dict['defaultRegion'] = 'us-east-1'

  bindings = YamlBindings()
  bindings.import_dict({'providers': {'aws': aws_dict}})
  content = bindings.transform_yaml_source(content, 'providers.aws.enabled')
  content = bindings.transform_yaml_source(content,
                                           'providers.aws.defaultRegion')

  return content
 def test_true_false_bad(self):
     bindings = YamlBindings()
     bindings.import_dict(
         {'t': 'true', 'f':'false', 'indirect':'${t}', 'default': '${x:0}'})
     validator = ValidateConfig(
           configurator=Configurator(bindings=bindings))
     self.assertFalse(validator.verify_true_false('t'))
     self.assertFalse(validator.verify_true_false('f'))
     self.assertFalse(validator.verify_true_false('indirect'))
     self.assertFalse(validator.verify_true_false('default'))
     self.assertEqual(4, len(validator.errors))
     self.assertEqual(0, len(validator.warnings))
     self.assertEqual(
         ["t='true' is not valid. Must be boolean true or false.",
          "f='false' is not valid. Must be boolean true or false.",
          "indirect='true' is not valid. Must be boolean true or false.",
          "default=0 is not valid. Must be boolean true or false."],
         validator.errors)
Beispiel #36
0
def populate_aws_yml(content):
    aws_dict = {'enabled': False}
    if is_aws_instance():
        zone = (check_fetch(AWS_METADATA_URL +
                            '/placement/availability-zone').content)
        aws_dict['enabled'] = 'true'
        aws_dict['defaultRegion'] = zone[:-1]
    elif os.path.exists(os.path.join(os.environ['HOME'], '.aws/credentials')):
        aws_dict['enabled'] = 'true'
        aws_dict['defaultRegion'] = 'us-east-1'

    bindings = YamlBindings()
    bindings.import_dict({'providers': {'aws': aws_dict}})
    content = bindings.transform_yaml_source(content, 'providers.aws.enabled')
    content = bindings.transform_yaml_source(content,
                                             'providers.aws.defaultRegion')

    return content
Beispiel #37
0
def populate_google_yml(content):
    credentials = {'project': '', 'jsonPath': ''}
    google_dict = {
        'enabled': False,
        'defaultRegion': 'us-central1',
        'defaultZone': 'us-central1-f',
    }

    google_dict['primaryCredentials'] = credentials
    front50_dict = {}
    if is_google_instance():
        zone = os.path.basename(
            check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone',
                        google=True).content)
        google_dict['enabled'] = 'true'
        google_dict['defaultRegion'] = zone[:-2]
        google_dict['defaultZone'] = zone
        credentials['project'] = check_fetch(GOOGLE_METADATA_URL +
                                             '/project/project-id',
                                             google=True).content
        front50_dict['storage_bucket'] = '${{{env}:{default}}}'.format(
            env='SPINNAKER_DEFAULT_STORAGE_BUCKET',
            default=credentials['project'].replace(':', '-').replace('.', '-'))

    bindings = YamlBindings()
    bindings.import_dict({'providers': {'google': google_dict}})
    bindings.import_dict({'services': {'front50': front50_dict}})
    content = bindings.transform_yaml_source(content,
                                             'providers.google.enabled')
    content = bindings.transform_yaml_source(content,
                                             'providers.google.defaultRegion')
    content = bindings.transform_yaml_source(content,
                                             'providers.google.defaultZone')
    content = bindings.transform_yaml_source(
        content, 'providers.google.primaryCredentials.project')
    content = bindings.transform_yaml_source(
        content, 'providers.google.primaryCredentials.jsonPath')
    content = bindings.transform_yaml_source(
        content, 'services.front50.storage_bucket')

    return content
Beispiel #38
0
def populate_google_yml(content):
  credentials = {'project': '', 'jsonPath': ''}
  google_dict = {'enabled': False,
                 'defaultRegion': 'us-central1',
                 'defaultZone': 'us-central1-f',}

  google_dict['primaryCredentials'] = credentials
  front50_dict = {}
  if is_google_instance():
      zone = os.path.basename(
           check_fetch(GOOGLE_INSTANCE_METADATA_URL + '/zone',
                       google=True).content)
      google_dict['enabled'] = 'true'
      google_dict['defaultRegion'] = zone[:-2]
      google_dict['defaultZone'] = zone
      credentials['project'] = check_fetch(
            GOOGLE_METADATA_URL + '/project/project-id', google=True).content
      front50_dict['storage_bucket'] = '${{{env}:{default}}}'.format(
          env='SPINNAKER_DEFAULT_STORAGE_BUCKET',
          default=credentials['project'].replace(':', '-').replace('.', '-'))

  bindings = YamlBindings()
  bindings.import_dict({'providers': {'google': google_dict}})
  bindings.import_dict({'services': {'front50': front50_dict}})
  content = bindings.transform_yaml_source(content, 'providers.google.enabled')
  content = bindings.transform_yaml_source(
      content, 'providers.google.defaultRegion')
  content = bindings.transform_yaml_source(
      content, 'providers.google.defaultZone')
  content = bindings.transform_yaml_source(
      content, 'providers.google.primaryCredentials.project')
  content = bindings.transform_yaml_source(
      content, 'providers.google.primaryCredentials.jsonPath')
  content = bindings.transform_yaml_source(
      content, 'services.front50.storage_bucket')

  return content
Beispiel #39
0
 def test_load_default_int(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${undefined:123}'})
   self.assertEqual(123, bindings.get('field'))
Beispiel #40
0
 def test_load_transitive(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${injected.value}'})
     bindings.import_dict({'injected': {'value': 'HELLO'}})
     self.assertEqual('HELLO', bindings.get('field'))
Beispiel #41
0
 def test_environ_int(self):
     os.environ['TEST_INT'] = '123'
     bindings = YamlBindings()
     bindings.import_dict({'field': '${TEST_INT}'})
     self.assertEqual(123, bindings.get('field'))
Beispiel #42
0
 def test_replace_bool(self):
   bindings = YamlBindings()
   bindings.import_dict({'a': True, 'container': {'b': False}})
   self.assertEqual('This is True False or false',
                    bindings.replace('This is ${a} ${container.b} or ${c:false}'))
Beispiel #43
0
 def test_environ_int(self):
   os.environ['TEST_INT'] = '123'
   bindings = YamlBindings()
   bindings.import_dict({'field': '${TEST_INT}'})
   self.assertEqual(123, bindings.get('field'))
Beispiel #44
0
 def test_replace_bool(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': True, 'container': {'b': False}})
     self.assertEqual(
         'This is True False or false',
         bindings.replace('This is ${a} ${container.b} or ${c:false}'))
Beispiel #45
0
 def test_replace(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': 'A', 'container': {'b': 'B'}})
     self.assertEqual(
         'This is A B or C',
         bindings.replace('This is ${a} ${container.b} or ${c:C}'))
Beispiel #46
0
 def test_replace(self):
   bindings = YamlBindings()
   bindings.import_dict({'a': 'A', 'container': {'b': 'B'}})
   self.assertEqual('This is A B or C',
                    bindings.replace('This is ${a} ${container.b} or ${c:C}'))
Beispiel #47
0
 def test_update_field_union(self):
   bindings = YamlBindings()
   bindings.import_dict({'a': 'A'})
   bindings.import_dict({'b': 'B'})
   self.assertEqual({'a': 'A', 'b': 'B'}, bindings.map)
Beispiel #48
0
 def test_load_composite_value(self):
   bindings = YamlBindings()
   bindings.import_dict({'a': 'A', 'b':'B'})
   bindings.import_string('test: ${a}/${b}')
   print str(bindings.map)
   self.assertEqual('A/B', bindings.get('test'))
Beispiel #49
0
 def test_environ_bool(self):
   os.environ['TEST_BOOL'] = 'TRUE'
   bindings = YamlBindings()
   bindings.import_dict({'field': '${TEST_BOOL}'})
   self.assertEqual(True, bindings.get('field'))
Beispiel #50
0
 def test_cyclic_reference(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${injected.value}',
                         'injected': {'value': '${field}'}})
   with self.assertRaises(ValueError):
     bindings.get('field')
Beispiel #51
0
 def test_replace_int(self):
     bindings = YamlBindings()
     bindings.import_dict({'a': 1, 'container': {'b': 2}})
     self.assertEqual(
         'This is 1 2 or 3',
         bindings.replace('This is ${a} ${container.b} or ${c:3}'))
Beispiel #52
0
 def test_environ(self):
     os.environ['TEST_VARIABLE'] = 'TEST_VALUE'
     bindings = YamlBindings()
     bindings.import_dict({'field': '${TEST_VARIABLE}'})
     self.assertEqual('TEST_VALUE', bindings.get('field'))
Beispiel #53
0
 def test_load_transitive(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${injected.value}'})
   bindings.import_dict({'injected': {'value': 'HELLO'}})
   self.assertEqual('HELLO', bindings.get('field'))
Beispiel #54
0
 def test_environ_bool(self):
     os.environ['TEST_BOOL'] = 'TRUE'
     bindings = YamlBindings()
     bindings.import_dict({'field': '${TEST_BOOL}'})
     self.assertEqual(True, bindings.get('field'))
Beispiel #55
0
 def test_load_tail_not_found(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${injected.value}', 'injected': {}})
     self.assertEqual('${injected.value}', bindings.get('field'))
Beispiel #56
0
 def test_load_default(self):
   bindings = YamlBindings()
   bindings.import_dict({'field': '${injected.value:HELLO}'})
   self.assertEqual('HELLO', bindings.get('field'))
Beispiel #57
0
 def test_load_default(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${injected.value:HELLO}'})
     self.assertEqual('HELLO', bindings.get('field'))
Beispiel #58
0
 def test_load_default_int(self):
     bindings = YamlBindings()
     bindings.import_dict({'field': '${undefined:123}'})
     self.assertEqual(123, bindings.get('field'))
Beispiel #59
0
 def test_replace_int(self):
   bindings = YamlBindings()
   bindings.import_dict({'a': 1, 'container': {'b': 2}})
   self.assertEqual('This is 1 2 or 3',
                    bindings.replace('This is ${a} ${container.b} or ${c:3}'))
Beispiel #60
0
 def test_environ(self):
   os.environ['TEST_VARIABLE'] = 'TEST_VALUE'
   bindings = YamlBindings()
   bindings.import_dict({'field': '${TEST_VARIABLE}'})
   self.assertEqual('TEST_VALUE', bindings.get('field'))