Exemple #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.SphinxInventoryWriter(logger=logger,
                                       project_name=project_name)
    output = PersistentBytesIO()
    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 = 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"""
    assert expected_ouput == output.getvalue()
Exemple #2
0
def inv_writer_nolog() -> sphinx.SphinxInventoryWriter:
    """
    @return: A Sphinx inventory writer that is connected to a null logger.
    """
    return sphinx.SphinxInventoryWriter(
        logger=PydoctorNoLogger(),
        project_name='project_name',
        project_version='2.3.0',
    )
Exemple #3
0
def test_generateLine_class():
    """
    Check inventory for class.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')

    result = sut._generateLine(model.Class('ignore-system', 'class1'))

    assert 'class1 py:class -1 class1.html -\n' == result
Exemple #4
0
def test_generateLine_module():
    """
    Check inventory for module.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')

    result = sut._generateLine(model.Module('ignore-system', 'module1'))

    assert 'module1 py:module -1 module1.html -\n' == result
Exemple #5
0
def test_writer_initialization():
    """
    Is initialized with logger and project name.
    """
    logger = object()
    name = object()

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

    assert logger is sut.info
    assert name is sut.project_name
Exemple #6
0
def test_generateLine_package():
    """
    Check inventory for package.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')

    result = sut._generateLine(
        model.Package('ignore-system', 'package1', 'ignore-docstring'))

    assert 'package1 py:module -1 package1.html -\n' == result
Exemple #7
0
def test_generateLine_unknown():
    """
    When object type is uknown a message is logged and is handled as
    generic object.
    """
    sut, log = make_SphinxInventoryWithLog(
        lambda **kwargs: sphinx.SphinxInventoryWriter(
            project_name='project_name', **kwargs))

    result = sut._generateLine(UnknownType('ignore-system', 'unknown1'))

    assert 'unknown1 py:obj -1 unknown1.html -\n' == result
Exemple #8
0
def test_generateLine_attribute():
    """
    Check inventory for attributes.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')
    parent = model.Class('ignore-system', 'class1')

    result = sut._generateLine(
        model.Attribute('ignore-system', 'attr1', parent))

    assert 'class1.attr1 py:attribute -1 class1.html#attr1 -\n' == result
Exemple #9
0
def test_generateLine_method():
    """
    Check inventory for method.

    Methods are functions inside a class.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')
    parent = model.Class('ignore-system', 'class1')

    result = sut._generateLine(model.Function('ignore-system', 'meth1',
                                              parent))

    assert 'class1.meth1 py:method -1 class1.html#meth1 -\n' == result
Exemple #10
0
def test_generateLine_function():
    """
    Check inventory for function.

    Functions are inside a module.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')
    parent = model.Module('ignore-system', 'module1')

    result = sut._generateLine(model.Function('ignore-system', 'func1',
                                              parent))

    assert 'module1.func1 py:function -1 module1.html#func1 -\n' == result
Exemple #11
0
def test_generateContent():
    """
    Return a string with inventory for all  targeted objects, recursive.
    """
    sut = sphinx.SphinxInventoryWriter(logger=object(),
                                       project_name='project_name')
    system = model.System()
    root1 = model.Package(system, 'package1')
    root2 = model.Package(system, 'package2')
    child1 = model.Package(system, 'child1', parent=root2)
    system.addObject(child1)
    subjects = [root1, root2]

    result = sut._generateContent(subjects)

    expected_result = (
        b'package1 py:module -1 package1.html -\n'
        b'package2 py:module -1 package2.html -\n'
        b'package2.child1 py:module -1 package2.child1.html -\n')
    assert expected_result == result