import copy
import os
+import re
import shutil
import subprocess
+import sys
import unittest
from doxygen import State, parse_doxyfile, run, default_templates, default_wildcard, default_index_pages, default_config
+# https://stackoverflow.com/a/12867228
+_camelcase_to_snakecase = re.compile('((?<=[a-z0-9])[A-Z]|(?!^)[A-Z](?=[a-z]))')
+
def doxygen_version():
return subprocess.check_output(['doxygen', '-v']).decode('utf-8').strip()
class BaseTestCase(unittest.TestCase):
- def __init__(self, path, dir, *args, **kwargs):
+ def __init__(self, *args, dir=None, **kwargs):
unittest.TestCase.__init__(self, *args, **kwargs)
- # Source files for test_something.py are in something_{dir}/ subdirectory
- self.path = os.path.join(os.path.dirname(os.path.realpath(path)), os.path.splitext(os.path.basename(path))[0][5:] + ('_' + dir if dir else ''))
+
+ # Get the test filename from the derived class module file. If path is
+ # not supplied, get it from derived class name converted to snake_case
+ path = sys.modules[self.__class__.__module__].__file__
+ if not dir: dir = _camelcase_to_snakecase.sub('_\\1', self.__class__.__name__).lower()
+
+ # Full directory name (for test_something.py the directory is
+ # something_{dir}
+ dir_prefix = os.path.splitext(os.path.basename(path))[0][5:]
+ if dir and dir_prefix != dir:
+ self.dirname = dir_prefix + '_' + dir
+ else:
+ self.dirname = dir_prefix
+ # Absolute path to this directory
+ self.path = os.path.join(os.path.dirname(os.path.realpath(path)), self.dirname)
+
+ if not os.path.exists(self.path):
+ raise AssertionError("autodetected path {} doesn't exist".format(self.path))
# Display ALL THE DIFFS
self.maxDiff = None
from . import IntegrationTestCase, doxygen_version
class Listing(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'listing', *args, **kwargs)
-
def test_index_pages(self):
self.run_doxygen(wildcard='index.xml', index_pages=['annotated', 'namespaces', 'pages'])
self.assertEqual(*self.actual_expected_contents('annotated.html'))
self.assertEqual(*self.actual_expected_contents('page-no-toc.html'))
class Detailed(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'detailed', *args, **kwargs)
-
def test_namespace(self):
self.run_doxygen(wildcard='namespaceNamee.xml')
self.assertEqual(*self.actual_expected_contents('namespaceNamee.html'))
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class Ignored(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'ignored', *args, **kwargs)
-
def test(self):
self.run_doxygen(index_pages=[], wildcard='*.xml')
self.assertFalse(os.path.exists(os.path.join(self.path, 'html', 'classBrief.html')))
class Modules(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'modules', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('group__group.html'))
self.assertEqual(*self.actual_expected_contents('modules.html'))
class ModulesInNamespace(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'modules_in_namespace', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('group__group1.html'))
self.assertEqual(*self.actual_expected_contents('file3_8h.html'))
class Deprecated(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'deprecated', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
# Test that the [deprecated] label is in all places where it should ne
self.assertEqual(*self.actual_expected_contents('structDeprecatedNamespace_1_1DeprecatedClass.html'))
class NamespaceMembersInFileScope(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'namespace_members_in_file_scope', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='namespaceNamespace.xml')
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class NamespaceMembersInFileScopeDefineBaseUrl(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'namespace_members_in_file_scope_define_base_url', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.14"),
"https://github.com/doxygen/doxygen/pull/653")
def test(self):
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class FilenameCase(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'filename_case', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('class_u_p_p_e_r_c_l_a_s_s.html'))
class CrazyTemplateParams(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'crazy_template_params', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class Includes(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'includes', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('namespaceEmpty.html'))
class IncludesDisabled(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'includes_disabled', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structSpreadClass.html'))
class IncludesUndocumentedFiles(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'includes_undocumented_files', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structSpreadClass.html', '../compound_includes_disabled/structSpreadClass.html'))
class IncludesTemplated(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'includes_templated', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structStruct.html'))
class BaseDerivedInRootNamespace(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'base_derived_in_root_namespace', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structNamespace_1_1BothBaseAndDerivedInRootNamespace.html'))
class Since(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'since', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('pages.html'))
class ExceptionReference(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'exception_reference', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
return re.match(".*version (?P<version>\d+\.\d+\.\d+).*", subprocess.check_output(['dot', '-V'], stderr=subprocess.STDOUT).decode('utf-8').strip()).group('version')
class Typography(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'typography', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class Blocks(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'blocks', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertEqual(*self.actual_expected_contents('old.html', 'old_1814.html'))
class Internal(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'internal', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class Code(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'code', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertEqual(*self.actual_expected_contents('warnings.html'))
class CodeLanguage(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'code_language', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"https://github.com/doxygen/doxygen/pull/621")
def test(self):
self.assertEqual(*self.actual_expected_contents('warnings.html'))
class Image(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'image', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertEqual(*self.actual_expected_contents('imagelink.html'))
class Math(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'math', *args, **kwargs)
-
@unittest.skipUnless(shutil.which('latex'),
"Math rendering requires LaTeX installed")
def test(self):
class MathCached(IntegrationTestCase):
def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'math_cached', *args, **kwargs)
+ super().__init__(*args, **kwargs)
# Actually generated from $ \frac{\tau}{2} $ tho
self.tau_half_hash = sha1("""$ \pi $""".encode('utf-8')).digest()
self.assertFalse(os.path.exists(os.path.join(self.path, 'xml/math.cache')))
class Tagfile(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'tagfile', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class Custom(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'custom', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertEqual(*self.actual_expected_contents('dot.html', file))
class ParseError(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'parse_error', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='broken.xml')
self.assertTrue(os.path.exists(os.path.join(self.path, 'html', 'index.html')))
class AutobriefCppComments(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'autobrief_cpp_comments', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='File_8h.xml')
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
# properly.
class AutobriefHr(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'autobrief_hr', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) < LooseVersion("1.8.15"),
"1.8.15 doesn't put <hruler> into <briefdescription> anymore")
def test(self):
self.assertEqual(*self.actual_expected_contents('namespaceNamespace.html'))
class AutobriefMultiline(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'autobrief_multiline', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='namespaceNamespace.xml')
self.assertEqual(*self.actual_expected_contents('namespaceNamespace.html'))
class AutobriefHeading(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'autobrief_heading', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) < LooseVersion("1.8.15"),
"1.8.15 doesn't put <heading> into <briefdescription> anymore")
def test(self):
self.assertEqual(*self.actual_expected_contents('namespaceNamespace.html'))
class SectionUnderscoreOne(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'section_underscore_one', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class SectionsHeadings(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'sections_headings', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class AnchorInBothGroupAndNamespace(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'anchor_in_both_group_and_namespace', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('namespaceFoo.html'))
self.assertEqual(*self.actual_expected_contents('group__fizzbuzz.html'))
class AnchorHtmlNoPrefixBug(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'anchor_html_no_prefix_bug', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='some-long-page-name.xml')
self.assertEqual(*self.actual_expected_contents('some-long-page-name.html'))
class UnexpectedSections(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'unexpected_sections', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='File_8h.xml')
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class Dot(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'dot', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('warnings.html'))
class Htmlinclude(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'htmlinclude', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
from . import IntegrationTestCase, doxygen_version
class EnumClass(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'enum_class', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"https://github.com/doxygen/doxygen/pull/627")
def test(self):
self.assertEqual(*self.actual_expected_contents('File_8h.html'))
class TemplateAlias(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'template_alias', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"https://github.com/doxygen/doxygen/pull/626")
def test(self):
self.assertEqual(*self.actual_expected_contents('structTemplate.html'))
class Derived(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'derived', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('classNamespace_1_1A.html'))
self.assertEqual(*self.actual_expected_contents('annotated.html'))
class Friends(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'friends', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"1.8.13 produces invalid XML for friend declarations")
def test(self):
self.assertEqual(*self.actual_expected_contents('classTemplate.html'))
class SignalsSlots(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'signals_slots', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='classClass.xml')
self.assertEqual(*self.actual_expected_contents('classClass.html'))
class VariableTemplate(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'variable_template', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structFoo.html'))
self.assertEqual(*self.actual_expected_contents('structBar.html'))
class FunctionAttributes(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'function_attributes', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('structFoo.html'))
self.assertEqual(*self.actual_expected_contents('structFinal.html'))
class FunctionAttributesNospace(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'function_attributes_nospace', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='structFoo.xml')
self.assertEqual(*self.actual_expected_contents('structFoo.html'))
with self.assertRaises(NotImplementedError):
parse_doxyfile(state, 'test_doxygen/doxyfile/Doxyfile-subdirs')
-class Upgrade(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'upgrade_custom_variables', *args, **kwargs)
-
+class UpgradeCustomVariables(BaseTestCase):
def test(self):
# Copy the Doxyfile to a new location because it gets overwritten
shutil.copyfile(os.path.join(self.path, 'Doxyfile'),
from . import IntegrationTestCase, doxygen_version
class Example(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, '', *args, **kwargs)
-
def test_cpp(self):
self.run_doxygen(index_pages=[], wildcard='*.xml')
from . import BaseTestCase
class Layout(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, '', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='index.xml')
self.assertEqual(*self.actual_expected_contents('pages.html'))
self.assertTrue(os.path.exists(os.path.join(self.path, 'html', 'favicon-light.png')))
class GeneratedDoxyfile(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'generated_doxyfile', *args, **kwargs)
-
def test(self):
if os.path.exists(os.path.join(self.path, 'Doxyfile')):
os.remove(os.path.join(self.path, 'Doxyfile'))
self.assertEqual(*self.actual_expected_contents('index.html'))
class Minimal(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'minimal', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class TemplateFallback(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'template_fallback', *args, **kwargs)
-
def test(self):
self.run_doxygen(templates=self.path, wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class NavbarSingleColumn(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'navbar_single_column', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class NavbarHtml(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'navbar_html', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class NavbarMainProjectUrl(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'navbar_main_project_url', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class NavbarProjectLogo(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'navbar_project_logo', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class NavbarProjectLogoMainProjectUrl(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'navbar_project_logo_main_project_url', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class SearchBinary(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'search_binary', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
self.assertTrue(os.path.exists(os.path.join(self.path, 'html', searchdata_filename)))
-class SearchOpenSearch(BaseTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'search_opensearch', *args, **kwargs)
-
+class SearchOpensearch(BaseTestCase):
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
from . import IntegrationTestCase, doxygen_version
class Order(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'order', *args, **kwargs)
-
def test(self):
self.run_doxygen(index_pages=['pages'], wildcard='index.xml')
self.assertEqual(*self.actual_expected_contents('pages.html'))
class Brief(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'brief', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"https://github.com/doxygen/doxygen/pull/624")
def test(self):
self.assertEqual(*self.actual_expected_contents('page-b.html'))
class Toc(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'toc', *args, **kwargs)
-
@unittest.skipUnless(LooseVersion(doxygen_version()) > LooseVersion("1.8.13"),
"https://github.com/doxygen/doxygen/pull/625")
def test(self):
self.assertEqual(*self.actual_expected_contents('page-toc.html'))
class InNavbar(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'in_navbar', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='page*.xml')
self.assertEqual(*self.actual_expected_contents('page-in-navbar.html'))
self.assertEqual(*self.actual_expected_contents('page-b.html'))
class FooterNavigation(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'footernavigation', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='subpage*.xml')
self.assertEqual(*self.actual_expected_contents('subpage1.html'))
self.assertEqual(*self.actual_expected_contents('subpage2.html'))
class EmptyIndex(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'empty_index', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='indexpage.xml')
self.assertEqual(*self.actual_expected_contents('index.html'))
class EmptyTitle(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'empty_title', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='untitled.xml')
self.assertEqual(*self.actual_expected_contents('untitled.html'))
class SubpageOfIndex(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'subpage_of_index', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertEqual(*self.actual_expected_contents('page.html'))
self.assertEqual(*self.actual_expected_contents('pages.html'))
class EmptyPage(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'empty_page', *args, **kwargs)
-
def test(self):
self.run_doxygen(wildcard='*.xml')
self.assertFalse(os.path.exists(os.path.join(self.path, 'html', 'group__bla_md_input.html')))
from test_doxygen import IntegrationTestCase
class Search(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, '', *args, **kwargs)
-
def test(self):
self.run_doxygen(index_pages=[], wildcard='*.xml')
(EntryType.VAR, CssClass.DEFAULT, 'var')
""".strip())
-class SearchLongSuffixLength(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, 'long_suffix_length', *args, **kwargs)
-
+class LongSuffixLength(IntegrationTestCase):
def test(self):
self.run_doxygen(index_pages=[], wildcard='*.xml')
from . import IntegrationTestCase
-class Test(IntegrationTestCase):
- def __init__(self, *args, **kwargs):
- super().__init__(__file__, '', *args, **kwargs)
-
+class Undocumented(IntegrationTestCase):
def test(self):
self.run_doxygen(wildcard='*.xml')