Ejemplo n.º 1
0
    def test_valid_interpolations(self):
        self.assertEqual(interpolate('$foo', bddict(foo='hi')), 'hi')
        self.assertEqual(interpolate('${foo}', bddict(foo='hi')), 'hi')

        self.assertEqual(interpolate('${subject} love you', bddict(subject='i')), 'i love you')
        self.assertEqual(interpolate('i ${verb} you', bddict(verb='love')), 'i love you')
        self.assertEqual(interpolate('i love ${object}', bddict(object='you')), 'i love you')
Ejemplo n.º 2
0
 def test_invalid_strings(self):
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('$}', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${}', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${ }', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${ foo}', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${foo }', bddict()))
     self.assertRaises(InvalidInterpolation, lambda: interpolate('${foo!}', bddict()))
Ejemplo n.º 3
0
def get_version_info(self,
                     original_fnc,
                     no_cache=False,
                     pull=False,
                     force_rm=False):
    tmp_docker_file_name_with_path = None

    if 'build' in self.options:
        environment = merge_two_dicts(self.options.get('environment', {}),
                                      dict(Environment.from_env_file('.')))
        build_path = self.options['build']['context']

        if 'dockerfile' in self.options['build']:
            docker_file_name = self.options['build']['dockerfile']
        else:
            docker_file_name = 'Dockerfile'

        docker_file_name_with_path = os.path.join(build_path, docker_file_name)
        tmp_docker_file_name_with_path = os.path.join(
            build_path, '.tmp_' + docker_file_name)

        with open(docker_file_name_with_path, 'r') as docker_file,\
                open(tmp_docker_file_name_with_path, 'w') as tmp_docker_file:
            for line in docker_file:
                line_to_write = None

                for command in docker_build_interpolatable_commands:
                    if line.strip().startswith(command):
                        line_to_write = interpolate(line, environment)

                if line_to_write is None:
                    line_to_write = line

                tmp_docker_file.write(line_to_write)

        self.options['build']['dockerfile'] = tmp_docker_file_name_with_path

    try:
        return_value = original_fnc(self, no_cache, pull, force_rm)

        if tmp_docker_file_name_with_path is not None:
            os.remove(tmp_docker_file_name_with_path)

        return return_value
    except BuildError as e:
        if tmp_docker_file_name_with_path is not None:
            os.remove(tmp_docker_file_name_with_path)

        raise e
Ejemplo n.º 4
0
 def test_escaped_interpolation(self):
     self.assertEqual(interpolate('$${foo}', bddict(foo='hi')), '${foo}')
Ejemplo n.º 5
0
 def test_unset_value(self):
     self.assertEqual(interpolate('${foo}', bddict()), '')
Ejemplo n.º 6
0
 def test_empty_value(self):
     self.assertEqual(interpolate('${foo}', bddict(foo='')), '')