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()
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', )
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
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
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
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
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
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
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
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
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