generated from jCloud/repository-template
test(python-generator): add tests for force overwriting
Added tests to test new output directory deletion behavior: - output directory overwriting (not empty; force) - error (not empty; not force) - nothing (empty; force) - nothing (empty; not force) One test was adapted to output directory emptiness check because the .gitkeep file which is required for Git to track the directory makes it non-empty.
This commit is contained in:
1 file changed
+50
-1
@@ -18,6 +18,7 @@ import pytest
|
|||||||
|
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
from src.jcloud_docsgen.exceptions import DirectoryNotEmptyError
|
||||||
from src.jcloud_docsgen.core.python import PythonDocumentationGenerator
|
from src.jcloud_docsgen.core.python import PythonDocumentationGenerator
|
||||||
from src.jcloud_docsgen.core.python.namespaces import (
|
from src.jcloud_docsgen.core.python.namespaces import (
|
||||||
PythonModuleNamespace,
|
PythonModuleNamespace,
|
||||||
@@ -120,7 +121,7 @@ def test_generate_documentation(dir, expectdir):
|
|||||||
pathlib.Path(str(d)),
|
pathlib.Path(str(d)),
|
||||||
allow_tables=True,
|
allow_tables=True,
|
||||||
allow_html=False,
|
allow_html=False,
|
||||||
).generate_documentation() # simplify the tests
|
).generate_documentation(True) # simplify the tests
|
||||||
|
|
||||||
|
|
||||||
def test_creates_directory():
|
def test_creates_directory():
|
||||||
@@ -144,3 +145,51 @@ def test_creates_directory():
|
|||||||
)
|
)
|
||||||
docs_generator.generate_documentation()
|
docs_generator.generate_documentation()
|
||||||
assert docs_dir.exists()
|
assert docs_dir.exists()
|
||||||
|
|
||||||
|
|
||||||
|
class TestForce:
|
||||||
|
def _prepare(self, directory):
|
||||||
|
directory = pathlib.Path(directory)
|
||||||
|
src_directory = directory / 'src'
|
||||||
|
src_directory.mkdir()
|
||||||
|
docs_directory = directory / 'docs'
|
||||||
|
docs_directory.mkdir()
|
||||||
|
return directory, src_directory, docs_directory
|
||||||
|
|
||||||
|
def test_overwrites_output_directory(self):
|
||||||
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
|
directory, src_directory, docs_directory = self._prepare(directory)
|
||||||
|
test_dir = docs_directory / 'test_dir'
|
||||||
|
test_dir.mkdir()
|
||||||
|
documentation_generator = PythonDocumentationGenerator(
|
||||||
|
src_directory, docs_directory
|
||||||
|
)
|
||||||
|
documentation_generator.generate_documentation(True)
|
||||||
|
assert not test_dir.exists()
|
||||||
|
|
||||||
|
def test_error(self):
|
||||||
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
|
directory, src_directory, docs_directory = self._prepare(directory)
|
||||||
|
(docs_directory / 'test_dir').mkdir()
|
||||||
|
documentation_generator = PythonDocumentationGenerator(
|
||||||
|
src_directory, docs_directory
|
||||||
|
)
|
||||||
|
with pytest.raises(DirectoryNotEmptyError) as exc_info:
|
||||||
|
documentation_generator.generate_documentation()
|
||||||
|
assert exc_info.value.filename == str(docs_directory)
|
||||||
|
|
||||||
|
def test_nothing_force(self):
|
||||||
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
|
directory, src_directory, docs_directory = self._prepare(directory)
|
||||||
|
documentation_generator = PythonDocumentationGenerator(
|
||||||
|
src_directory, docs_directory
|
||||||
|
)
|
||||||
|
documentation_generator.generate_documentation(True)
|
||||||
|
|
||||||
|
def test_nothing_not_force(self):
|
||||||
|
with tempfile.TemporaryDirectory() as directory:
|
||||||
|
directory, src_directory, docs_directory = self._prepare(directory)
|
||||||
|
documentation_generator = PythonDocumentationGenerator(
|
||||||
|
src_directory, docs_directory
|
||||||
|
)
|
||||||
|
documentation_generator.generate_documentation(True)
|
||||||
Reference in new issue
Block a user