def _build_header(self):

        headers = {
            HeaderKeys.content_type: self.conf[ConfigOptions.content_type],
            HeaderKeys.content_encoding:
            self.conf[ConfigOptions.content_encoding]
        }

        config_keys = self.conf.keys()

        # Add sumo specific header content
        sumo_config_keys = [
            ConfigOptions.source_name, ConfigOptions.host_name,
            ConfigOptions.source_category
        ]
        sumo_header_keys = [
            HeaderKeys.x_sumo_source, HeaderKeys.x_sumo_host,
            HeaderKeys.x_sumo_category
        ]
        for (config_key, header_key) in zip(sumo_config_keys,
                                            sumo_header_keys):
            if config_key in config_keys:
                headers[header_key] = self.conf[config_key]

        # Add custom dimension_tags specified in conf
        if ConfigOptions.dimension_tags in config_keys:
            headers[HeaderKeys.x_sumo_dimensions] = tags_to_str(
                self._gen_config_dimension_tags(), sep=',')

        # Add custom meta_tags specified in conf
        if ConfigOptions.meta_tags in config_keys:
            headers[HeaderKeys.x_sumo_metadata] = tags_to_str(
                self._gen_config_meta_tags(), sep=',')

        return headers
def test_tags_to_str_with_empty_tags():
    tags = []
    tag_str = tags_to_str(tags)

    assert tag_str == ''
def test_tags_to_str_with_empty_tag():
    tags = ['tag_key1=tag_val1', '', 'tag_key3=tag_val3']
    tag_str = tags_to_str(tags)

    assert tag_str == 'tag_key1=tag_val1 tag_key3=tag_val3'
def test_tags_to_str():
    tags = ['tag_key1=tag_val1', 'tag_key2=tag_val2', 'tag_key3=tag_val3']
    tag_str = tags_to_str(tags)

    assert tag_str == 'tag_key1=tag_val1 tag_key2=tag_val2 tag_key3=tag_val3'