From a787a14f9873a996886e6f753f83b262563fdf1e Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Fri, 7 Feb 2020 11:14:57 +0100 Subject: add test_poetry_check() --- creole/tests/test_project_setup.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/creole/tests/test_project_setup.py b/creole/tests/test_project_setup.py index 7491daa..b74fdbc 100644 --- a/creole/tests/test_project_setup.py +++ b/creole/tests/test_project_setup.py @@ -2,7 +2,9 @@ :copyleft: 2020 by python-creole team, see AUTHORS for more details. :license: GNU GPL v3 or above, see LICENSE for more details. """ - +import os +import shutil +import subprocess from pathlib import Path from creole import __version__ @@ -35,3 +37,17 @@ def test_version(): file_path=Path(CREOLE_PACKAGE_ROOT, 'pyproject.toml'), string=f'version = "{__version__}"' ) + + +def test_poetry_check(): + poerty_bin = shutil.which('poetry') + + output = subprocess.check_output( + [poerty_bin, 'check'], + universal_newlines=True, + env=os.environ, + stderr=subprocess.STDOUT, + cwd=str(CREOLE_PACKAGE_ROOT), + ) + print(output) + assert output == 'All set!\n' -- cgit v1.2.1 From 2cd317caa0b4b32ca2b5547d6469bdf6e8817981 Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Fri, 7 Feb 2020 11:15:52 +0100 Subject: Fix #44 by lower "docutils" and move "poetry-publish" as dev-dependencies --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 662de5c..041d10c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,10 +35,10 @@ packages = [ [tool.poetry.dependencies] python = "^3.6" -docutils = "^0.16" -poetry-publish = "^0.2.2" +docutils = "^0.15" [tool.poetry.dev-dependencies] +poetry-publish = "^0.2.2" tox = "^3.14.3" pygments = "^2.5.2" textile = "^4.0.0" -- cgit v1.2.1 From d0b7242e8a26bb60a4b550c7df89fd411cd09069 Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Fri, 7 Feb 2020 11:25:55 +0100 Subject: remove import exceptions in tests: textile and docutils should be installed in tests --- creole/tests/utils/base_unittest.py | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/creole/tests/utils/base_unittest.py b/creole/tests/utils/base_unittest.py index 3d28c94..4541ce1 100644 --- a/creole/tests/utils/base_unittest.py +++ b/creole/tests/utils/base_unittest.py @@ -1,4 +1,3 @@ - """ unitest base class ~~~~~~~~~~~~~~~~~~ @@ -11,32 +10,12 @@ import re -import warnings +import textile from creole import creole2html, html2creole, html2rest, html2textile -from creole.exceptions import DocutilsImportError +from creole.rest_tools.clean_writer import rest2html from creole.tests.utils.utils import MarkupTest -try: - import textile -except ImportError: - test_textile = False - warnings.warn( - "Markup error: The Python textile library isn't installed." - " Download: http://pypi.python.org/pypi/textile" - ) -else: - test_textile = True - - -try: - from creole.rest_tools.clean_writer import rest2html -except DocutilsImportError as err: - REST_INSTALLED = False - warnings.warn(f"Can't run all ReSt unittests: {err}") -else: - REST_INSTALLED = True - tabs2spaces_re = re.compile(r"^(\t*)(.*?)$", re.M) @@ -252,11 +231,6 @@ class BaseCreoleTest(MarkupTest): ) # compare textile -> html - if not test_textile: - # TODO: Use @unittest.skipIf if python 2.6 will be not support anymore - warnings.warn("Skip textile test. Please install python textile module.") - return - html = textile.textile(textile_string) html = html.replace("
", "
\n") html = tabs2spaces(html) @@ -295,10 +269,6 @@ class BaseCreoleTest(MarkupTest): strip_lines=False, debug=False, prepare_strings=True, **kwargs): # compare rest -> html - if not REST_INSTALLED: - warnings.warn("Skip ReSt test. Please install Docutils.") - return - if prepare_strings: rest_string = self._prepare_text(rest_string) html_string = self._prepare_text(html_string) -- cgit v1.2.1 From 722e954ef7affb76edc238e756e06c43b329bed7 Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Fri, 7 Feb 2020 11:37:37 +0100 Subject: add isort config and apply it --- .isort.cfg | 21 +++++++++++++++++++++ creole/__init__.py | 1 + creole/emitter/html2rest_emitter.py | 1 + creole/html_tools/deentity.py | 1 + creole/html_tools/strip_html.py | 1 + creole/html_tools/text_tools.py | 1 + creole/parser/html_parser.py | 1 + creole/rest_tools/clean_writer.py | 1 + creole/rest_tools/pypi_rest2html.py | 1 + creole/setup_utils.py | 1 + creole/shared/example_macros.py | 1 + creole/shared/utils.py | 1 + creole/tests/constants.py | 1 + creole/tests/test_cli.py | 1 + creole/tests/test_creole2html.py | 1 + creole/tests/test_html2creole.py | 8 ++++++-- creole/tests/test_setup_utils.py | 1 + creole/tests/utils/base_unittest.py | 2 ++ 18 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 .isort.cfg diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000..c97c6cc --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,21 @@ +# Configuring isort +# https://github.com/timothycrosley/isort/wiki/isort-Settings + +[settings] +atomic=true +line_length=119 +case_sensitive=false + +# https://github.com/timothycrosley/isort#multi-line-output-modes +# 3 - Vertical Hanging Indent +multi_line_output=3 +include_trailing_comma=true + +known_first_party=creole + +no_lines_before=LOCALFOLDER + +default_section=THIRDPARTY +sections=FUTURE,STDLIB,EXTERNAL,THIRDPARTY,FIRSTPARTY,LOCALFOLDER + +lines_after_imports=2 diff --git a/creole/__init__.py b/creole/__init__.py index 1a4dc21..33d99fd 100644 --- a/creole/__init__.py +++ b/creole/__init__.py @@ -23,6 +23,7 @@ from creole.emitter.html2textile_emitter import TextileEmitter from creole.parser.creol2html_parser import CreoleParser from creole.parser.html_parser import HtmlParser + __version__ = "1.4.3" __api__ = "1.0" # Creole 1.0 spec - http://wikicreole.org/ diff --git a/creole/emitter/html2rest_emitter.py b/creole/emitter/html2rest_emitter.py index 23de5ce..f8e2322 100644 --- a/creole/emitter/html2rest_emitter.py +++ b/creole/emitter/html2rest_emitter.py @@ -19,6 +19,7 @@ import posixpath from creole.shared.base_emitter import BaseEmitter from creole.shared.markup_table import MarkupTable + # Kink of nodes in which hyperlinks are stored in references intead of embedded urls. DO_SUBSTITUTION = ("th", "td",) # TODO: In witch kind of node must we also substitude links? diff --git a/creole/html_tools/deentity.py b/creole/html_tools/deentity.py index 23a6190..165a7af 100644 --- a/creole/html_tools/deentity.py +++ b/creole/html_tools/deentity.py @@ -12,6 +12,7 @@ import re from html import entities + entities_rules = '|'.join([ r"(&\#(?P\d+);)", r"(&\#x(?P[a-fA-F0-9]+);)", diff --git a/creole/html_tools/strip_html.py b/creole/html_tools/strip_html.py index 11a2f91..c265099 100644 --- a/creole/html_tools/strip_html.py +++ b/creole/html_tools/strip_html.py @@ -16,6 +16,7 @@ import re from creole.parser.html_parser_config import BLOCK_TAGS + strip_html_regex = re.compile( r""" \s* diff --git a/creole/html_tools/text_tools.py b/creole/html_tools/text_tools.py index 16487a5..5b52719 100644 --- a/creole/html_tools/text_tools.py +++ b/creole/html_tools/text_tools.py @@ -14,6 +14,7 @@ import re + space_re = re.compile(r"^(\s*)(.*?)(\s*)$", re.DOTALL) diff --git a/creole/parser/html_parser.py b/creole/parser/html_parser.py index d83a936..b8c3cee 100644 --- a/creole/parser/html_parser.py +++ b/creole/parser/html_parser.py @@ -15,6 +15,7 @@ from creole.html_tools.strip_html import strip_html from creole.parser.html_parser_config import BLOCK_TAGS, IGNORE_TAGS from creole.shared.document_tree import DebugList, DocNode + # ------------------------------------------------------------------------------ block_re = re.compile(r''' diff --git a/creole/rest_tools/clean_writer.py b/creole/rest_tools/clean_writer.py index 3798c50..524c8d6 100644 --- a/creole/rest_tools/clean_writer.py +++ b/creole/rest_tools/clean_writer.py @@ -18,6 +18,7 @@ import sys from creole.exceptions import DocutilsImportError + try: import docutils from docutils.core import publish_parts diff --git a/creole/rest_tools/pypi_rest2html.py b/creole/rest_tools/pypi_rest2html.py index b264514..bacdf7f 100644 --- a/creole/rest_tools/pypi_rest2html.py +++ b/creole/rest_tools/pypi_rest2html.py @@ -16,6 +16,7 @@ from urllib.parse import urlparse from creole.exceptions import DocutilsImportError + try: import docutils # noqa flake8 from docutils import io, readers diff --git a/creole/setup_utils.py b/creole/setup_utils.py index cd980a6..e48e8cf 100644 --- a/creole/setup_utils.py +++ b/creole/setup_utils.py @@ -22,6 +22,7 @@ from pathlib import Path from creole import creole2html, html2rest from creole.shared.unknown_tags import raise_unknown_node, transparent_unknown_nodes + RAISE_ERRORS_ARGS = ( 'check', 'register', 'sdist', 'bdist', 'upload', '--long-description', '--restructuredtext', diff --git a/creole/shared/example_macros.py b/creole/shared/example_macros.py index 354469d..88a9bc8 100644 --- a/creole/shared/example_macros.py +++ b/creole/shared/example_macros.py @@ -17,6 +17,7 @@ from xml.sax.saxutils import escape from creole.shared.utils import get_pygments_formatter, get_pygments_lexer + try: from pygments import highlight PYGMENTS = True diff --git a/creole/shared/utils.py b/creole/shared/utils.py index 9ac82e2..1d0071f 100644 --- a/creole/shared/utils.py +++ b/creole/shared/utils.py @@ -13,6 +13,7 @@ import json import shlex + try: from pygments import lexers from pygments.formatters import HtmlFormatter diff --git a/creole/tests/constants.py b/creole/tests/constants.py index 0e276d4..b081658 100644 --- a/creole/tests/constants.py +++ b/creole/tests/constants.py @@ -2,4 +2,5 @@ from pathlib import Path import creole + CREOLE_PACKAGE_ROOT = Path(creole.__file__).parent.parent diff --git a/creole/tests/test_cli.py b/creole/tests/test_cli.py index cae1e40..ffd48ac 100644 --- a/creole/tests/test_cli.py +++ b/creole/tests/test_cli.py @@ -18,6 +18,7 @@ from creole import VERSION_STRING, cmdline from creole.tests.utils.base_unittest import BaseCreoleTest from creole.tests.utils.unittest_subprocess import SubprocessMixin + CMDS = ("creole2html", "html2creole", "html2rest", "html2textile") diff --git a/creole/tests/test_creole2html.py b/creole/tests/test_creole2html.py index 6f60491..d938a38 100644 --- a/creole/tests/test_creole2html.py +++ b/creole/tests/test_creole2html.py @@ -25,6 +25,7 @@ from creole.shared.utils import dict2string, string2dict from creole.tests import test_macros from creole.tests.utils.base_unittest import BaseCreoleTest + try: import pygments # noqa flake8 PYGMENTS = True diff --git a/creole/tests/test_html2creole.py b/creole/tests/test_html2creole.py index 60b35a3..2895b78 100644 --- a/creole/tests/test_html2creole.py +++ b/creole/tests/test_html2creole.py @@ -17,8 +17,12 @@ import unittest from creole import html2creole -from creole.shared.unknown_tags import (escape_unknown_nodes, raise_unknown_node, transparent_unknown_nodes, - use_html_macro) +from creole.shared.unknown_tags import ( + escape_unknown_nodes, + raise_unknown_node, + transparent_unknown_nodes, + use_html_macro, +) from creole.tests.utils.base_unittest import BaseCreoleTest diff --git a/creole/tests/test_setup_utils.py b/creole/tests/test_setup_utils.py index 5a7b366..0500444 100644 --- a/creole/tests/test_setup_utils.py +++ b/creole/tests/test_setup_utils.py @@ -19,6 +19,7 @@ from creole.tests.constants import CREOLE_PACKAGE_ROOT from creole.tests.utils.base_unittest import BaseCreoleTest from creole.tests.utils.utils import IsolatedFilesystem + TEST_README_DIR = Path(__file__).parent TEST_README_FILENAME = "test_README.creole" diff --git a/creole/tests/utils/base_unittest.py b/creole/tests/utils/base_unittest.py index 4541ce1..f6a4ee3 100644 --- a/creole/tests/utils/base_unittest.py +++ b/creole/tests/utils/base_unittest.py @@ -12,10 +12,12 @@ import re import textile + from creole import creole2html, html2creole, html2rest, html2textile from creole.rest_tools.clean_writer import rest2html from creole.tests.utils.utils import MarkupTest + tabs2spaces_re = re.compile(r"^(\t*)(.*?)$", re.M) -- cgit v1.2.1