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
|
||||
|
||||
from src.jcloud_docsgen.exceptions import DirectoryNotEmptyError
|
||||
from src.jcloud_docsgen.core.python import PythonDocumentationGenerator
|
||||
from src.jcloud_docsgen.core.python.namespaces import (
|
||||
PythonModuleNamespace,
|
||||
@@ -120,7 +121,7 @@ def test_generate_documentation(dir, expectdir):
|
||||
pathlib.Path(str(d)),
|
||||
allow_tables=True,
|
||||
allow_html=False,
|
||||
).generate_documentation() # simplify the tests
|
||||
).generate_documentation(True) # simplify the tests
|
||||
|
||||
|
||||
def test_creates_directory():
|
||||
@@ -144,3 +145,51 @@ def test_creates_directory():
|
||||
)
|
||||
docs_generator.generate_documentation()
|
||||
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