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)
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)
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)
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}
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)