Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move copy_directory to merge_docs #415

Merged
merged 1 commit into from Oct 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
47 changes: 23 additions & 24 deletions mkdocs_simple_plugin/simple.py
Expand Up @@ -10,30 +10,6 @@
from mkdocs_simple_plugin.semiliterate import Semiliterate


def copy_directory(from_dir: str, to_dir: str):
"""Copy all files from source to destination directory."""
if sys.version_info >= (3, 8):
# pylint: disable=unexpected-keyword-arg
shutil.copytree(from_dir, to_dir, dirs_exist_ok=True)
utils.log.debug("mkdocs-simple-plugin: %s/* --> %s/*",
from_dir, to_dir)
else:
for source_directory, _, files in os.walk(from_dir):
destination_directory = source_directory.replace(
from_dir, to_dir, 1)
os.makedirs(destination_directory, exist_ok=True)
for file_ in files:
source_file = os.path.join(source_directory, file_)
destination_file = os.path.join(destination_directory,
file_)
if os.path.exists(destination_file):
os.remove(destination_file)
shutil.copy(source_file, destination_directory)
utils.log.debug(
"mkdocs-simple-plugin: %s/* --> %s/*",
source_file, destination_file)


class Simple():
"""Mkdocs Simple Plugin"""

Expand Down Expand Up @@ -168,6 +144,29 @@ def hidden_prefix(name):
def merge_docs(self, from_dir):
"""Merge docs directory"""
# Copy contents of docs directory if merging
def copy_directory(from_dir: str, to_dir: str):
"""Copy all files from source to destination directory."""
if sys.version_info >= (3, 8):
# pylint: disable=unexpected-keyword-arg
shutil.copytree(from_dir, to_dir, dirs_exist_ok=True)
utils.log.debug("mkdocs-simple-plugin: %s/* --> %s/*",
from_dir, to_dir)
else:
for source_directory, _, files in os.walk(from_dir):
destination_directory = source_directory.replace(
from_dir, to_dir, 1)
os.makedirs(destination_directory, exist_ok=True)
for file_ in files:
source_file = os.path.join(source_directory, file_)
destination_file = os.path.join(destination_directory,
file_)
if os.path.exists(destination_file):
os.remove(destination_file)
shutil.copy(source_file, destination_directory)
utils.log.debug(
"mkdocs-simple-plugin: %s/* --> %s/*",
source_file, destination_file)

if os.path.exists(from_dir):
copy_directory(from_dir, self.build_dir)
self.ignore_paths.add(from_dir)
Expand Down
21 changes: 7 additions & 14 deletions tests/test_simple.py
Expand Up @@ -9,20 +9,6 @@
from mkdocs_simple_plugin import simple


class TestSimpleHelpers(TestCase):
"""Test Simple helper functions."""

def setUp(self):
"""Set up with fake filesystem"""
self.setUpPyfakefs()

def test_copy_directory(self):
"""Test copy_directory"""
self.fs.create_file('/test/file.txt')
simple.copy_directory("/test", '/bar')
self.assertTrue(os.path.exists("/bar/file.txt"))


class TestSimple(TestCase):
"""Test Simple class."""

Expand Down Expand Up @@ -275,6 +261,13 @@ def test_build_docs(self):
self.assertIn("foo/.pages", paths)
self.assertEqual(3, len(paths))

def test_merge_docs(self):
"""Test copy_directory"""
self.fs.create_file('/test/file.txt')
simple_test = simple.Simple(**self.default_settings)
simple_test.merge_docs("/test")
self.assertTrue(os.path.exists("/build_dir/file.txt"))


if __name__ == '__main__':
unittest.main()