diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5b9c9ad..f5452bd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,10 +21,12 @@ jobs: with: python-version: '3.6' - name: Install dependencies - run: pip install coverage + run: | + pip install coverage + pip install -U pytest - name: Test unittest run: | - coverage run -m unittest discover + coverage run -m pytest coverage xml - name: "Upload coverage to Codecov" uses: codecov/codecov-action@v2 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9b38853 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "tests" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/mdutils/fileutils/fileutils.py b/mdutils/fileutils/fileutils.py index 7202a73..87c773d 100644 --- a/mdutils/fileutils/fileutils.py +++ b/mdutils/fileutils/fileutils.py @@ -22,13 +22,16 @@ def __init__(self, name='', dirname: str = None): If not you can specify the path directly on the name.""" if name: self.dirname = dirname - if dirname: - self.file_name = f'{dirname}/{name}' if name.endswith('.md') else f'{dirname}/{name}.md' - else: - self.file_name = name if name.endswith('.md') else f'{name}.md' + self.file_name = self._get_file_name(name, dirname) self.file = open(f'{self.file_name}', 'w+', encoding='UTF-8') self.file.close() + def _get_file_name(self, name: str, dirname: str = None ) -> str: + if dirname: + return f'{dirname}/{name}' if name.endswith('.md') else f'{dirname}/{name}.md' + + return name if name.endswith('.md') else f'{name}.md' + def rewrite_all_file(self, data): """Rewrite all the data of a Markdown file by ``data``. @@ -57,7 +60,7 @@ def append_after_second_line(self, data): self.file.write('\n' + file_data[len(first_line + second_line):]) @staticmethod - def read_file(file_name): + def read_file(file_name: str) -> str: """Read a Markdown file using a file name. It is not necessary to add *.md extension. :param file_name: Markdown file's name. diff --git a/tests/test_fileutils/test_fileutils.py b/tests/test_fileutils/test_fileutils.py index 7f11535..549643a 100644 --- a/tests/test_fileutils/test_fileutils.py +++ b/tests/test_fileutils/test_fileutils.py @@ -9,7 +9,6 @@ from unittest import TestCase from mdutils.fileutils import MarkDownFile import tempfile -import os class TestMarkdownFile(TestCase): @@ -17,17 +16,22 @@ class TestMarkdownFile(TestCase): def test_create_file(self): with tempfile.TemporaryDirectory() as tmp: file = MarkDownFile('Test_file', tmp) - self.assertEqual(file.file_name, 'Test_file.md') + self.assertEqual(file.file_name, f'{tmp}/Test_file.md') def test_create_file_case_0(self): with tempfile.TemporaryDirectory() as tmp: file = MarkDownFile('Test_filemd', tmp) - self.assertEqual(file.file_name, 'Test_filemd.md') + self.assertEqual(file.file_name, f'{tmp}/Test_filemd.md') def test_create_file_case_1(self): with tempfile.TemporaryDirectory() as tmp: file = MarkDownFile('Test_file.md', tmp) - self.assertEqual(file.file_name, 'Test_file.md') + self.assertEqual(file.file_name, f'{tmp}/Test_file.md') + + def test_create_file_case_3(self): + with tempfile.TemporaryDirectory() as tmp: + file = MarkDownFile(f'{tmp}/Test_file.md') + self.assertEqual(file.file_name, f'{tmp}/Test_file.md') def test_rewrite_all_file(self): expected_content = "Write some content"