def test_get_integration_doc_link_negative(tmp_path):
    """
    Given:
        - Case A: integration which does not have README in the integration dir
        - Case B: integration with empty README in the integration dir

    When:
        - Getting integration doc link

    Then:
        - Verify an empty string is returned
    """
    unifier = IntegrationScriptUnifier(str(tmp_path))
    integration_doc_link = unifier.get_integration_doc_link({'commonfields': {'id': 'Integration With No README'}})
    assert integration_doc_link == ''

    readme = tmp_path / 'README.md'
    readme.write_text('')
    integration_doc_link = unifier.get_integration_doc_link({'commonfields': {'id': 'Integration With Empty README'}})
    assert integration_doc_link == ''
def test_get_integration_doc_link_positive(tmp_path):
    """
    Given:
        - Cortex XDR - IOC integration with README

    When:
        - Getting integration doc link

    Then:
        - Verify the expected integration doc markdown link is returned
        - Verify the integration doc URL exists and reachable
    """
    readme = tmp_path / 'README.md'
    readme.write_text('README')
    unifier = IntegrationScriptUnifier(str(tmp_path))
    integration_doc_link = unifier.get_integration_doc_link({'commonfields': {'id': 'Cortex XDR - IOC'}})
    assert integration_doc_link == \
        '[View Integration Documentation](https://xsoar.pan.dev/docs/reference/integrations/cortex-xdr---ioc)'
    link = re.findall(r'\(([^)]+)\)', integration_doc_link)[0]
    try:
        r = requests.get(link, verify=False, timeout=10)
        r.raise_for_status()
    except requests.HTTPError as ex:
        raise Exception(f'Failed reaching to integration doc link {link} - {ex}')