renamed files; implemented command_entry; wrote real test and added test file structure
This commit is contained in:
1 parent
92c7aa8934
commit
d08aff8dd1
8 files changed
+82
-27
No files matched your search
@@ -1,6 +1,9 @@
|
|||||||
# Created by https://www.toptal.com/developers/gitignore/api/python,pycharm+all,macos
|
# 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
|
# Edit at https://www.toptal.com/developers/gitignore?templates=python,pycharm+all,macos
|
||||||
|
|
||||||
|
### Custom ###
|
||||||
|
tests/test_project_test_result
|
||||||
|
|
||||||
### macOS ###
|
### macOS ###
|
||||||
# General
|
# General
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@@ -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)
|
||||||
@@ -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
@@ -37,7 +37,7 @@ Homepage = ""
|
|||||||
Issues = ""
|
Issues = ""
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
html_to_django = "html_to_django.main:command_entry"
|
html_to_django = "html_to_django.converter:command_entry"
|
||||||
|
|
||||||
[tool.hatch.version]
|
[tool.hatch.version]
|
||||||
path = "html_to_django/__about__.py"
|
path = "html_to_django/__about__.py"
|
||||||
@@ -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 %}
|
||||||
@@ -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")
|
||||||
|
))
|
||||||
Reference in new issue
Block a user