Skip to content

Commit

Permalink
Use a common session directory in test
Browse files Browse the repository at this point in the history
  • Loading branch information
rkent committed Mar 21, 2024
1 parent 12d3738 commit 580897e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 16 deletions.
9 changes: 2 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,5 @@ target/
.vscode/

# tests
generated/
test/packages/full_package/index.rst
test/packages/full_package/conf.py
test/packages/minimum_package/index.rst
test/packages/minimum_package/conf.py
test/packages/minimal_publisher_py/index.rst
test/packages/minimal_publisher_py/conf.py
test/packages/**/index.rst
test/packages/**/conf.py
27 changes: 18 additions & 9 deletions test/test_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,21 @@
import pathlib
from urllib.parse import urlparse

import pytest
from rosdoc2.verbs.build.impl import main_impl, prepare_arguments

logger = logging.getLogger('test-builder')
DATAPATH = pathlib.Path('test/packages')


@pytest.fixture(scope='session')
def session_dir(tmp_path_factory):
tmp_path_factory.mktemp('build', False)
tmp_path_factory.mktemp('cross_references', False)
tmp_path_factory.mktemp('output', False)
return tmp_path_factory.getbasetemp()


class htmlParser(HTMLParser):
"""Minimal html parsing collecing links and content."""

Expand Down Expand Up @@ -149,10 +158,10 @@ def do_test_package(
f'file represented by <{found_item}> should exist at <{link_path}>'


def test_minimum_package(tmp_path):
def test_minimum_package(session_dir):
"""Tests of a package containing as little as possible."""
PKG_NAME = 'minimum_package'
do_build_package(DATAPATH / PKG_NAME, tmp_path)
do_build_package(DATAPATH / PKG_NAME, session_dir)

includes = [
PKG_NAME,
Expand All @@ -169,41 +178,41 @@ def test_minimum_package(tmp_path):
links_exist = [
'genindex.html',
]
do_test_package(PKG_NAME, tmp_path,
do_test_package(PKG_NAME, session_dir,
includes=includes,
excludes=excludes,
file_includes=file_includes,
file_excludes=file_excludes,
links_exist=links_exist)


def test_full_package(tmp_path):
def test_full_package(session_dir):
"""Test a package with C++, python, and docs."""
PKG_NAME = 'full_package'
do_build_package(DATAPATH / PKG_NAME, tmp_path)
do_build_package(DATAPATH / PKG_NAME, session_dir)

includes = [
PKG_NAME,
]
file_includes = [
'generated/index.html'
]
do_test_package(PKG_NAME, tmp_path,
do_test_package(PKG_NAME, session_dir,
includes=includes,
file_includes=file_includes)


def test_minimal_publisher_py(tmp_path):
def test_minimal_publisher_py(session_dir):
"""Test a pure python package."""
PKG_NAME = 'minimal_publisher_py'
do_build_package(DATAPATH / PKG_NAME, tmp_path)
do_build_package(DATAPATH / PKG_NAME, session_dir)

includes = [
PKG_NAME,
]
links_exist = [
'minimal_publisher_py.html',
]
do_test_package(PKG_NAME, tmp_path,
do_test_package(PKG_NAME, session_dir,
includes=includes,
links_exist=links_exist)

0 comments on commit 580897e

Please sign in to comment.