Beispiel #1
0
def test_generate_empty_functional():
    """
    Functional test for index generation of empty API.

    Header is plain text while content is compressed.
    """
    project_name = "some-name"
    log = []
    logger = lambda section, message, thresh=0: log.append(
        (section, message, thresh))
    sut = sphinx.SphinxInventory(logger=logger, project_name=project_name)
    output = PersistentStringIO()
    sut._openFileForWriting = lambda path: closing(output)

    sut.generate(subjects=[], basepath="base-path")

    expected_log = [
        ("sphinx", "Generating objects inventory at base-path/objects.inv", 0)
    ]
    assert expected_log == log

    expected_ouput = """# Sphinx inventory version 2
# Project: some-name
# Version: 2.0
# The rest of this file is compressed with zlib.
x\x9c\x03\x00\x00\x00\x00\x01"""
    assert expected_ouput == output.getvalue()
Beispiel #2
0
def test_getLink_not_found():
    """
    Return None if link does not exists.
    """
    sut = sphinx.SphinxInventory(logger=object())

    assert None is sut.getLink('no.such.name')
Beispiel #3
0
def test_getLink_self_anchor():
    """
    Return the link with anchor as target name when link end with $.
    """
    sut = sphinx.SphinxInventory(logger=object())
    sut._links['some.name'] = ('http://base.tld', 'some/url.php#$')

    assert 'http://base.tld/some/url.php#some.name' == sut.getLink('some.name')
Beispiel #4
0
def test_getLink_found():
    """
    Return the link from internal state.
    """
    sut = sphinx.SphinxInventory(logger=object())
    sut._links['some.name'] = ('http://base.tld', 'some/url.php')

    assert 'http://base.tld/some/url.php' == sut.getLink('some.name')
Beispiel #5
0
def test_parseInventory_empty():
    """
    Return empty dict for empty input.
    """
    sut = sphinx.SphinxInventory(logger=object())

    result = sut._parseInventory('http://base.tld', '')

    assert {} == result
Beispiel #6
0
def test_parseInventory_single_line():
    """
    Return a dict with a single member.
    """
    sut = sphinx.SphinxInventory(logger=object())

    result = sut._parseInventory(
        'http://base.tld', 'some.attr py:attr -1 some.html De scription')

    assert {'some.attr': ('http://base.tld', 'some.html')} == result
Beispiel #7
0
def test_initialization():
    """
    Is initialized with logger and project name.
    """
    logger = object()
    name = object()

    sut = sphinx.SphinxInventory(logger=logger, project_name=name)

    assert logger is sut.info
    assert name is sut.project_name
Beispiel #8
0
def test_getPayload_empty():
    """
    Return empty string.
    """
    sut = sphinx.SphinxInventory(logger=object())
    content = b"""# Sphinx inventory version 2
# Project: some-name
# Version: 2.0
# The rest of this file is compressed with zlib.
x\x9c\x03\x00\x00\x00\x00\x01"""

    result = sut._getPayload('http://base.ignore', content)

    assert '' == result
Beispiel #9
0
def test_getPayload_content():
    """
    Return content as string.
    """
    payload = u"first_line\nsecond line\nit's a snake: \U0001F40D"
    sut = sphinx.SphinxInventory(logger=object())
    content = b"""# Ignored line
# Project: some-name
# Version: 2.0
# commented line.
%s""" % (zlib.compress(payload.encode('utf-8')), )

    result = sut._getPayload('http://base.ignore', content)

    assert payload == result
Beispiel #10
0
def test_update_functional():
    """
    Functional test for updating from an empty inventory.
    """
    payload = (b'some.module1 py:module -1 module1.html -\n'
               b'other.module2 py:module 0 module2.html Other description\n')
    sut = sphinx.SphinxInventory(logger=object())
    # Patch URL loader to avoid hitting the system.
    content = b"""# Sphinx inventory version 2
# Project: some-name
# Version: 2.0
# The rest of this file is compressed with zlib.
%s""" % (zlib.compress(payload), )

    url = 'http://some.url/api/objects.inv'

    sut.update(sphinx.StubCache({url: content}), url)

    assert 'http://some.url/api/module1.html' == sut.getLink('some.module1')
    assert 'http://some.url/api/module2.html' == sut.getLink('other.module2')
Beispiel #11
0
def make_SphinxInventory(logger=object()):
    """
    Return a SphinxInventory.
    """
    return sphinx.SphinxInventory(logger=logger, project_name="project_name")
Beispiel #12
0
def inv_reader_nolog() -> sphinx.SphinxInventory:
    return sphinx.SphinxInventory(logger=PydoctorNoLogger())