renamed files; implemented command_entry; wrote real test and added test file structure

This commit is contained in:
truePhilipp committed 2024-05-02 21:33:46 +02:00
1 parent 92c7aa8934
commit d08aff8dd1
8 files changed
+82 -27

No files matched your search

+3
View File
@@ -1,6 +1,9 @@
# Created by https://www.toptal.com/developers/gitignore/api/python,pycharm+all,macos
# Edit at https://www.toptal.com/developers/gitignore?templates=python,pycharm+all,macos
### Custom ###
tests/test_project_test_result
### macOS ###
# General
.DS_Store
+35
View File
@@ -0,0 +1,35 @@
import bs4
import sys
import os
from glob import glob
from .formatters import formatters
def convert_file(path: str, overwrite: bool = False) -> None:
with open(path, "r") as file:
soup = bs4.BeautifulSoup(file, "html.parser")
for formatter in formatters:
formatter.format(soup)
if overwrite:
out_path = path
else:
out_path = path.replace(".html", ".n.html")
with open(out_path, "w") as file:
file.write("{% load static %}\n")
# indent=4 will be re added when https://github.com/python/typeshed/pull/11855 is accepted
file.write(soup.prettify(formatter=bs4.formatter.HTMLFormatter()))
def convert_dir(path: str, overwrite: bool = False) -> None:
for filepath in glob(f"{path}/**/*.html", recursive=True):
convert_file(filepath, overwrite)
def command_entry() -> None:
path = os.path.abspath(sys.argv[1])
if os.path.isdir(path):
convert_dir(path)
elif os.path.isfile(path):
convert_file(path)
-18
View File
@@ -1,18 +0,0 @@
import bs4
from .formatters import formatters
def main() -> None:
with open("test.html", "r") as file:
soup = bs4.BeautifulSoup(file, "html.parser")
for formatter in formatters:
formatter.format(soup)
with open("out.html", "w") as file:
file.write("{% load static %}\n")
file.write(soup.prettify(formatter=bs4.formatter.HTMLFormatter(indent=4)))
def command_entry() -> None:
print("ok")
+1 -1
View File
@@ -37,7 +37,7 @@ Homepage = ""
Issues = ""
[project.scripts]
html_to_django = "html_to_django.main:command_entry"
html_to_django = "html_to_django.converter:command_entry"
[tool.hatch.version]
path = "html_to_django/__about__.py"
-8
View File
@@ -1,8 +0,0 @@
from html_to_django import main
from unittest import TestCase
class TestTocHTMLParser(TestCase):
def test_command_entry(self):
main.command_entry()
self.assertEqual(0, 0)
File renamed without changes.
@@ -0,0 +1,22 @@
{% load static %}
{% block content %}
{% for i in items %}
<p>
{{ i.text }}
</p>
{% if i.selectable %}
<p>
Select Me
</p>
{% elif i.other %}
<p>
Else if
</p>
{% else %}
<p>
Else
</p>
<img src="{% static 'images/cool_image.png' %}"/>
{% endif %}
{% endfor %}
{% endblock %}
+21
View File
@@ -0,0 +1,21 @@
import os
import filecmp
import shutil
from unittest import TestCase
from html_to_django import converter
class ConverterTests(TestCase):
def test_convert_file(self):
shutil.copytree(
os.path.abspath("tests/test_project"),
os.path.abspath("tests/test_project_test_result"),
dirs_exist_ok=True
)
converter.convert_file(
os.path.abspath("tests/test_project_test_result/test.html")
)
self.assertTrue(filecmp.cmp(
os.path.abspath("tests/test_project_test_result/test.n.html"),
os.path.abspath("tests/test_project_expected_result/test.n.html")
))