created TestDirectory context manager (typing is disabled as i can't find a fix for the generic typing error)

This commit is contained in:
truePhilipp committed 2024-05-10 11:40:30 +00:00
1 parent 373219f14e
commit beba63967b
1 file changed
+25 -60
+25 -60
View File
@@ -7,9 +7,24 @@ from io import StringIO
from unittest import TestCase from unittest import TestCase
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from glob import glob from glob import glob
from typing import Any
from html_to_django.converter import get_required_libraries, convert_file, convert_dir, convert_path from html_to_django.converter import get_required_libraries, convert_file, convert_dir, convert_path
class TestDirectory(tempfile.TemporaryDirectory): # type: ignore
"""
Context Manager that creates a temporary directory containing the test project.
"""
def __enter__(self) -> Any:
tmpdir = super().__enter__()
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
return tmpdir
class ConverterTests(TestCase): class ConverterTests(TestCase):
def test_get_required_libraries(self) -> None: def test_get_required_libraries(self) -> None:
html = '<div dj-libs="lib1;lib2">Content</div><div dj-libs="lib3"></div>' html = '<div dj-libs="lib1;lib2">Content</div><div dj-libs="lib3"></div>'
@@ -24,12 +39,7 @@ class ConverterTests(TestCase):
self.assertEqual(expected, get_required_libraries(soup)) self.assertEqual(expected, get_required_libraries(soup))
def test_convert_file(self) -> None: def test_convert_file(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_file(f"{tmpdir}/test.html") convert_file(f"{tmpdir}/test.html")
# verify that the new file exists and has the expected value # verify that the new file exists and has the expected value
self.assertTrue(filecmp.cmp( self.assertTrue(filecmp.cmp(
@@ -43,12 +53,7 @@ class ConverterTests(TestCase):
)) ))
def test_convert_file_overwrite(self) -> None: def test_convert_file_overwrite(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_file(f"{tmpdir}/test.html", True) convert_file(f"{tmpdir}/test.html", True)
# verify that the source file has been overwriten # verify that the source file has been overwriten
self.assertTrue(filecmp.cmp( self.assertTrue(filecmp.cmp(
@@ -59,12 +64,7 @@ class ConverterTests(TestCase):
self.assertFalse(os.path.exists(f"{tmpdir}/test.n.html")) self.assertFalse(os.path.exists(f"{tmpdir}/test.n.html"))
def test_convert_file_non_html_extension(self) -> None: def test_convert_file_non_html_extension(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
os.rename(f"{tmpdir}/test.html", f"{tmpdir}/test.txt") os.rename(f"{tmpdir}/test.html", f"{tmpdir}/test.txt")
convert_file(f"{tmpdir}/test.txt") convert_file(f"{tmpdir}/test.txt")
@@ -75,12 +75,7 @@ class ConverterTests(TestCase):
)) ))
def test_convert_file_no_extension(self) -> None: def test_convert_file_no_extension(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
os.rename(f"{tmpdir}/test.html", f"{tmpdir}/test") os.rename(f"{tmpdir}/test.html", f"{tmpdir}/test")
convert_file(f"{tmpdir}/test") convert_file(f"{tmpdir}/test")
@@ -99,12 +94,7 @@ class ConverterTests(TestCase):
convert_file("tests/test_project") convert_file("tests/test_project")
def test_convert_dir(self) -> None: def test_convert_dir(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_dir(f"{tmpdir}") convert_dir(f"{tmpdir}")
for conversion_result in glob(f"{tmpdir}/**/*.n.html", recursive=True): for conversion_result in glob(f"{tmpdir}/**/*.n.html", recursive=True):
@@ -125,12 +115,7 @@ class ConverterTests(TestCase):
)) ))
def test_convert_dir_overwrite(self) -> None: def test_convert_dir_overwrite(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_dir(f"{tmpdir}", True) convert_dir(f"{tmpdir}", True)
for conversion_result in glob(f"{tmpdir}/**/*.html", recursive=True): for conversion_result in glob(f"{tmpdir}/**/*.html", recursive=True):
@@ -153,12 +138,7 @@ class ConverterTests(TestCase):
convert_dir("tests/test_project/test.html") convert_dir("tests/test_project/test.html")
def test_convert_path_file(self) -> None: def test_convert_path_file(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_path(f"{tmpdir}/test.html") convert_path(f"{tmpdir}/test.html")
# verify that the new file exists and has the expected value # verify that the new file exists and has the expected value
self.assertTrue(filecmp.cmp( self.assertTrue(filecmp.cmp(
@@ -172,12 +152,7 @@ class ConverterTests(TestCase):
)) ))
def test_convert_path_file_overwrite(self) -> None: def test_convert_path_file_overwrite(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_path(f"{tmpdir}/test.html", True) convert_path(f"{tmpdir}/test.html", True)
# verify that the source file has been overwriten # verify that the source file has been overwriten
self.assertTrue(filecmp.cmp( self.assertTrue(filecmp.cmp(
@@ -188,12 +163,7 @@ class ConverterTests(TestCase):
self.assertFalse(os.path.exists(f"{tmpdir}/test.n.html")) self.assertFalse(os.path.exists(f"{tmpdir}/test.n.html"))
def test_convert_path_dir(self) -> None: def test_convert_path_dir(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_path(f"{tmpdir}") convert_path(f"{tmpdir}")
for conversion_result in glob(f"{tmpdir}/**/*.n.html", recursive=True): for conversion_result in glob(f"{tmpdir}/**/*.n.html", recursive=True):
@@ -214,12 +184,7 @@ class ConverterTests(TestCase):
)) ))
def test_convert_path_dir_overwrite(self) -> None: def test_convert_path_dir_overwrite(self) -> None:
with tempfile.TemporaryDirectory() as tmpdir: with TestDirectory() as tmpdir:
shutil.copytree(
"tests/test_project",
tmpdir,
dirs_exist_ok=True
)
convert_path(f"{tmpdir}", True) convert_path(f"{tmpdir}", True)
for conversion_result in glob(f"{tmpdir}/**/*.html", recursive=True): for conversion_result in glob(f"{tmpdir}/**/*.html", recursive=True):