Modernize extension
- update dependencies - use tox for testing - use type hints - use pathlib and ipaddress from standard library instead of path and ipcalc - fix Sphinx deprecation warnings
This commit is contained in:
parent
c721d1bf9c
commit
7c675a6fdb
13 changed files with 801 additions and 465 deletions
|
@ -12,14 +12,14 @@
|
|||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
# import sys
|
||||
# import os
|
||||
import os
|
||||
import sys
|
||||
from typing import Dict
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
# sys.path.insert(0, os.path.abspath('..'))
|
||||
sys.path.insert(0, os.path.abspath(os.path.join("..", "..")))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
|
@ -47,7 +47,7 @@ master_doc = "index"
|
|||
|
||||
# General information about the project.
|
||||
project = "Sphinxext IP Tests"
|
||||
copyright = "2016-2021, Jan Dittberner"
|
||||
copyright = "2016-2023, Jan Dittberner"
|
||||
author = "Jan Dittberner"
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
@ -104,7 +104,6 @@ pygments_style = "sphinx"
|
|||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
|
@ -207,15 +206,15 @@ htmlhelp_basename = "SphinxextIPTestsdoc"
|
|||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
latex_elements: Dict[str, str] = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
# 'papersize': 'letterpaper',
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
# 'pointsize': '10pt',
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
# 'preamble': '',
|
||||
# Latex figure (float) alignment
|
||||
#'figure_align': 'htbp',
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import shutil
|
||||
import unittest
|
||||
from io import StringIO
|
||||
|
||||
|
@ -23,7 +23,7 @@ class TestIPExtension(unittest.TestCase):
|
|||
|
||||
def tearDown(self):
|
||||
self.app.cleanup()
|
||||
(test_root / "_build").rmtree(True)
|
||||
shutil.rmtree((test_root / "_build"))
|
||||
|
||||
def test_ip_domaindata(self):
|
||||
self.assertIn("ip", self.app.env.domaindata)
|
||||
|
|
|
@ -12,8 +12,8 @@ import shutil
|
|||
import sys
|
||||
import tempfile
|
||||
from functools import wraps
|
||||
from pathlib import Path
|
||||
|
||||
from path import Path
|
||||
from sphinx import application
|
||||
|
||||
__all__ = [
|
||||
|
@ -25,14 +25,13 @@ __all__ = [
|
|||
"SphinxTestApplication",
|
||||
"with_app",
|
||||
"gen_with_app",
|
||||
"Path",
|
||||
"with_tempdir",
|
||||
"write_file",
|
||||
"sprint",
|
||||
]
|
||||
|
||||
|
||||
test_root = Path(__file__).parent.joinpath("root").abspath()
|
||||
test_root = Path(__file__).parent.joinpath("root").absolute()
|
||||
|
||||
|
||||
def _excstr(exc):
|
||||
|
@ -96,9 +95,9 @@ class SphinxTestApplication(application.Sphinx):
|
|||
|
||||
def __init__(
|
||||
self,
|
||||
srcdir=None,
|
||||
src_dir=None,
|
||||
confdir=None,
|
||||
outdir=None,
|
||||
out_dir=None,
|
||||
doctreedir=None,
|
||||
buildername="html",
|
||||
confoverrides=None,
|
||||
|
@ -115,26 +114,26 @@ class SphinxTestApplication(application.Sphinx):
|
|||
|
||||
self.cleanup_trees = [test_root / "generated"]
|
||||
|
||||
if srcdir is None:
|
||||
srcdir = test_root
|
||||
if srcdir == "(temp)":
|
||||
if src_dir is None:
|
||||
src_dir = test_root
|
||||
if src_dir == "(temp)":
|
||||
tempdir = Path(tempfile.mkdtemp())
|
||||
self.cleanup_trees.append(tempdir)
|
||||
temproot = tempdir / "root"
|
||||
test_root.copytree(temproot)
|
||||
srcdir = temproot
|
||||
temp_root = tempdir / "root"
|
||||
shutil.copytree(test_root.resolve(), temp_root.resolve())
|
||||
src_dir = temp_root
|
||||
else:
|
||||
srcdir = Path(srcdir)
|
||||
self.builddir = srcdir.joinpath("_build")
|
||||
src_dir = Path(src_dir)
|
||||
self.builddir = src_dir.joinpath("_build")
|
||||
if confdir is None:
|
||||
confdir = srcdir
|
||||
if outdir is None:
|
||||
outdir = srcdir.joinpath(self.builddir, buildername)
|
||||
if not outdir.isdir():
|
||||
outdir.makedirs()
|
||||
self.cleanup_trees.insert(0, outdir)
|
||||
confdir = src_dir
|
||||
if out_dir is None:
|
||||
out_dir = src_dir.joinpath(self.builddir, buildername)
|
||||
if not out_dir.is_dir():
|
||||
out_dir.mkdir(parents=True)
|
||||
self.cleanup_trees.insert(0, out_dir)
|
||||
if doctreedir is None:
|
||||
doctreedir = srcdir.joinpath(srcdir, self.builddir, "doctrees")
|
||||
doctreedir = src_dir.joinpath(src_dir, self.builddir, "doctrees")
|
||||
if cleanenv:
|
||||
self.cleanup_trees.insert(0, doctreedir)
|
||||
if confoverrides is None:
|
||||
|
@ -150,9 +149,9 @@ class SphinxTestApplication(application.Sphinx):
|
|||
|
||||
application.Sphinx.__init__(
|
||||
self,
|
||||
srcdir,
|
||||
str(src_dir),
|
||||
confdir,
|
||||
outdir,
|
||||
out_dir,
|
||||
doctreedir,
|
||||
buildername,
|
||||
confoverrides,
|
||||
|
@ -211,7 +210,7 @@ def with_tempdir(func):
|
|||
def new_func():
|
||||
tempdir = Path(tempfile.mkdtemp())
|
||||
func(tempdir)
|
||||
tempdir.rmtree()
|
||||
tempdir.rmdir()
|
||||
|
||||
new_func.__name__ = func.__name__
|
||||
return new_func
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue