コード例 #1
0
    def test_get_table_text_ignores_label_not_in_header(self):
        md = '''
        This is my markdown
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | No | They    | Are | Not |

        My Target Table <-- That's the label that we should ignore
        | Another | Table   |
        | ------- | ------- |
        | Yep     | Another |

        Here is some other text
        | And | Another | Table |
        |-----|---------|-------|
        | It  | Is      | Not   |
        | A   | Dining  | Table |
        '''

        expected = '''
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | No | They    | Are | Not |'''.strip()
        expected = '\n'.join([line.strip() for line in expected.splitlines()])

        actual = extract_entries_from_markdown.get_table_text(
            md, target_heading_text="My Target Table")
        self.assertEqual(actual, expected)
コード例 #2
0
    def test_get_table_text_returns_empty_string_if_markdown_empty(self):
        md = '''
        '''

        expected = ''

        actual = extract_entries_from_markdown.get_table_text(md)
        self.assertEqual(actual, expected)
コード例 #3
0
    def test_get_table_text_extracts_table_only(self):
        md = '''
        This is my markdown
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | Yep    | They    | Are | Yes  |

        # Heading
        '''

        expected = '''
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | Yep    | They    | Are | Yes  |'''.strip()
        expected = '\n'.join([line.strip() for line in expected.splitlines()])

        actual = extract_entries_from_markdown.get_table_text(md)
        self.assertEqual(actual, expected)
コード例 #4
0
def get_entries(markdown='', target_heading_text=''):
    entries = extract_entries_from_markdown.table_to_rows(
        extract_entries_from_markdown.get_table_text(
            markdown=markdown, target_heading_text=target_heading_text))

    literals = []
    keyvault_entries = []
    if len(entries) > 0:
        name_key = 'Name'
        literal_key = 'Literal Value'
        kv_vault_name_key = 'Key Vault Name'
        kv_value_key = 'Key Vault Value'

        literals = [{
            'key': entry[name_key],
            'value': entry[literal_key]
        } for entry in entries if literal_key in entry]
        keyvault_entries = [{'key': entry[name_key], 'key_name': entry[kv_value_key], 'vault_name': entry[kv_vault_name_key]} \
                                                for entry in entries if kv_vault_name_key in entry and kv_value_key in entry]

    return {'literals': literals, 'keyvault_entries': keyvault_entries}
コード例 #5
0
    def test_get_table_text_extracts_first_table_if_label_not_specified(self):
        md = '''
        This is my markdown
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | No | They    | Are | Not |

        # Heading
        | Another | Table |
        |--|---|
        | Yep     | Another |
        '''

        expected = '''
        | Column | Headers | Are | Cool |
        |--------|---------|-----|------|
        | No | They    | Are | Not |'''.strip()
        expected = '\n'.join([line.strip() for line in expected.splitlines()])

        actual = extract_entries_from_markdown.get_table_text(md)
        self.assertEqual(actual, expected)