diff --git a/.coveragerc b/.coveragerc index 48a64ce..909a0e2 100644 --- a/.coveragerc +++ b/.coveragerc @@ -6,4 +6,3 @@ partial_branches = pragma: no branch if py3k: if not py3k: - if py26: diff --git a/.travis.yml b/.travis.yml index c0233d9..5fc2718 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,12 @@ language: python python: - - 2.6 - 2.7 - - 3.2 - - 3.3 - 3.4 - 3.5 - 3.6 - nightly sudo: false install: - - if [[ $TRAVIS_PYTHON_VERSION == '3.2' ]]; then pip install coverage==3.7.1; fi - pip install coveralls - python setup.py build script: diff --git a/mwparserfromhell/compat.py b/mwparserfromhell/compat.py index 7a83cd1..85f9d48 100644 --- a/mwparserfromhell/compat.py +++ b/mwparserfromhell/compat.py @@ -10,9 +10,7 @@ meant to be imported directly from within the parser's modules. import sys -py26 = (sys.version_info[0] == 2) and (sys.version_info[1] == 6) py3k = (sys.version_info[0] == 3) -py32 = py3k and (sys.version_info[1] == 2) if py3k: bytes = bytes diff --git a/mwparserfromhell/string_mixin.py b/mwparserfromhell/string_mixin.py index 88898a1..b33e0ab 100644 --- a/mwparserfromhell/string_mixin.py +++ b/mwparserfromhell/string_mixin.py @@ -28,7 +28,7 @@ interface for the ``unicode`` type (``str`` on py3k) in a dynamic manner. from __future__ import unicode_literals from sys import getdefaultencoding -from .compat import bytes, py26, py3k, str +from .compat import bytes, py3k, str __all__ = ["StringMixIn"] @@ -116,14 +116,5 @@ class StringMixIn(object): if py3k: maketrans = str.maketrans # Static method can't rely on __getattr__ - if py26: - @inheritdoc - def encode(self, encoding=None, errors=None): - if encoding is None: - encoding = getdefaultencoding() - if errors is not None: - return self.__unicode__().encode(encoding, errors) - return self.__unicode__().encode(encoding) - del inheritdoc diff --git a/setup.py b/setup.py index 0b33d42..ba7f706 100644 --- a/setup.py +++ b/setup.py @@ -27,15 +27,15 @@ from glob import glob from os import environ import sys -if ((sys.version_info[0] == 2 and sys.version_info[1] < 6) or - (sys.version_info[1] == 3 and sys.version_info[1] < 2)): - raise RuntimeError("mwparserfromhell needs Python 2.6+ or 3.2+") +if ((sys.version_info[0] == 2 and sys.version_info[1] < 7) or + (sys.version_info[1] == 3 and sys.version_info[1] < 4)): + raise RuntimeError("mwparserfromhell needs Python 2.7 or 3.4+") from setuptools import setup, find_packages, Extension from setuptools.command.build_ext import build_ext from mwparserfromhell import __version__ -from mwparserfromhell.compat import py26, py3k +from mwparserfromhell.compat import py3k with open("README.rst", **({'encoding':'utf-8'} if py3k else {})) as fp: long_docs = fp.read() @@ -82,7 +82,6 @@ setup( name = "mwparserfromhell", packages = find_packages(exclude=("tests",)), ext_modules = [tokenizer] if use_extension else [], - tests_require = ["unittest2"] if py26 else [], test_suite = "tests.discover", version = __version__, author = "Ben Kurtovic", @@ -99,11 +98,9 @@ setup( "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", - "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.2", - "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", diff --git a/tests/_test_tree_equality.py b/tests/_test_tree_equality.py index fe626ce..3c9aa0e 100644 --- a/tests/_test_tree_equality.py +++ b/tests/_test_tree_equality.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - from unittest2 import TestCase -except ImportError: - from unittest import TestCase +from unittest import TestCase from mwparserfromhell.compat import range from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, diff --git a/tests/discover.py b/tests/discover.py index 6bb971b..a41af83 100644 --- a/tests/discover.py +++ b/tests/discover.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- """ -Discover tests using ``unittest2` for Python 2.6. - It appears the default distutils test suite doesn't play nice with ``setUpClass`` thereby making some tests fail. Using ``unittest2`` to load tests seems to work around that issue. @@ -12,12 +10,7 @@ http://stackoverflow.com/a/17004409/753501 import os.path -from mwparserfromhell.compat import py26 - -if py26: - import unittest2 as unittest -else: - import unittest +import unittest def additional_tests(): project_root = os.path.split(os.path.dirname(__file__))[0] diff --git a/tests/test_argument.py b/tests/test_argument.py index 6209b2f..16b4d0c 100644 --- a/tests/test_argument.py +++ b/tests/test_argument.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Argument, Text diff --git a/tests/test_attribute.py b/tests/test_attribute.py index 7fe5772..a36f59f 100644 --- a/tests/test_attribute.py +++ b/tests/test_attribute.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Template diff --git a/tests/test_builder.py b/tests/test_builder.py index eed5861..67e0043 100644 --- a/tests/test_builder.py +++ b/tests/test_builder.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import py3k from mwparserfromhell.nodes import (Argument, Comment, ExternalLink, Heading, diff --git a/tests/test_comment.py b/tests/test_comment.py index 27129c9..cf2f14d 100644 --- a/tests/test_comment.py +++ b/tests/test_comment.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Comment diff --git a/tests/test_ctokenizer.py b/tests/test_ctokenizer.py index 27ff237..3552a02 100644 --- a/tests/test_ctokenizer.py +++ b/tests/test_ctokenizer.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest try: from mwparserfromhell.parser._tokenizer import CTokenizer diff --git a/tests/test_docs.py b/tests/test_docs.py index 398be4c..bc4da1d 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -23,11 +23,7 @@ from __future__ import print_function, unicode_literals import json import os - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest import mwparserfromhell from mwparserfromhell.compat import py3k, str diff --git a/tests/test_external_link.py b/tests/test_external_link.py index 8cb3158..c70905a 100644 --- a/tests/test_external_link.py +++ b/tests/test_external_link.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import ExternalLink, Text diff --git a/tests/test_heading.py b/tests/test_heading.py index 5e6776a..e5ec470 100644 --- a/tests/test_heading.py +++ b/tests/test_heading.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Heading, Text diff --git a/tests/test_html_entity.py b/tests/test_html_entity.py index 4db1c13..fc09fde 100644 --- a/tests/test_html_entity.py +++ b/tests/test_html_entity.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import HTMLEntity diff --git a/tests/test_parameter.py b/tests/test_parameter.py index 44c30af..be09448 100644 --- a/tests/test_parameter.py +++ b/tests/test_parameter.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Text diff --git a/tests/test_parser.py b/tests/test_parser.py index d586ecd..5b12a0e 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell import parser from mwparserfromhell.compat import range diff --git a/tests/test_pytokenizer.py b/tests/test_pytokenizer.py index f7f26b8..85a55b9 100644 --- a/tests/test_pytokenizer.py +++ b/tests/test_pytokenizer.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.parser.tokenizer import Tokenizer diff --git a/tests/test_roundtripping.py b/tests/test_roundtripping.py index a217e21..50f9c1f 100644 --- a/tests/test_roundtripping.py +++ b/tests/test_roundtripping.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from ._test_tokenizer import TokenizerTestCase diff --git a/tests/test_smart_list.py b/tests/test_smart_list.py index 3de7db7..6569c8a 100644 --- a/tests/test_smart_list.py +++ b/tests/test_smart_list.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import py3k, range from mwparserfromhell.smart_list import SmartList, _ListProxy diff --git a/tests/test_string_mixin.py b/tests/test_string_mixin.py index 08d5b9e..e6c133f 100644 --- a/tests/test_string_mixin.py +++ b/tests/test_string_mixin.py @@ -23,13 +23,9 @@ from __future__ import unicode_literals from sys import getdefaultencoding from types import GeneratorType +import unittest -try: - import unittest2 as unittest -except ImportError: - import unittest - -from mwparserfromhell.compat import bytes, py3k, py32, range, str +from mwparserfromhell.compat import bytes, py3k, range, str from mwparserfromhell.string_mixin import StringMixIn class _FakeString(StringMixIn): @@ -54,9 +50,7 @@ class TestStringMixIn(unittest.TestCase): "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", "swapcase", "title", "translate", "upper", "zfill"] if py3k: - if not py32: - methods.append("casefold") - methods.extend(["format_map", "isidentifier", "isprintable", + methods.extend(["casefold", "format_map", "isidentifier", "isprintable", "maketrans"]) else: methods.append("decode") @@ -329,7 +323,7 @@ class TestStringMixIn(unittest.TestCase): self.assertEqual("", str15.lower()) self.assertEqual("foobar", str16.lower()) self.assertEqual("ß", str22.lower()) - if py3k and not py32: + if py3k: self.assertEqual("", str15.casefold()) self.assertEqual("foobar", str16.casefold()) self.assertEqual("ss", str22.casefold()) @@ -378,7 +372,7 @@ class TestStringMixIn(unittest.TestCase): self.assertEqual(actual, str25.rsplit(None, 3)) actual = [" this is a sentence with", "", "whitespace", ""] self.assertEqual(actual, str25.rsplit(" ", 3)) - if py3k and not py32: + if py3k: actual = [" this is a", "sentence", "with", "whitespace"] self.assertEqual(actual, str25.rsplit(maxsplit=3)) @@ -396,7 +390,7 @@ class TestStringMixIn(unittest.TestCase): self.assertEqual(actual, str25.split(None, 3)) actual = ["", "", "", "this is a sentence with whitespace "] self.assertEqual(actual, str25.split(" ", 3)) - if py3k and not py32: + if py3k: actual = ["this", "is", "a", "sentence with whitespace "] self.assertEqual(actual, str25.split(maxsplit=3)) diff --git a/tests/test_tag.py b/tests/test_tag.py index 2e6d8a3..c8c9808 100644 --- a/tests/test_tag.py +++ b/tests/test_tag.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Tag, Template, Text diff --git a/tests/test_template.py b/tests/test_template.py index 5b939f0..e03a564 100644 --- a/tests/test_template.py +++ b/tests/test_template.py @@ -22,11 +22,7 @@ from __future__ import unicode_literals from difflib import unified_diff - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import HTMLEntity, Template, Text diff --git a/tests/test_text.py b/tests/test_text.py index aaf8db2..4464418 100644 --- a/tests/test_text.py +++ b/tests/test_text.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Text diff --git a/tests/test_tokens.py b/tests/test_tokens.py index b33c2f1..e766002 100644 --- a/tests/test_tokens.py +++ b/tests/test_tokens.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import py3k from mwparserfromhell.parser import tokens diff --git a/tests/test_utils.py b/tests/test_utils.py index 342cfd7..b79b544 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.nodes import Template, Text from mwparserfromhell.utils import parse_anything diff --git a/tests/test_wikicode.py b/tests/test_wikicode.py index c77fdd2..12a1761 100644 --- a/tests/test_wikicode.py +++ b/tests/test_wikicode.py @@ -24,11 +24,7 @@ from __future__ import unicode_literals from functools import partial import re from types import GeneratorType - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import py3k, str from mwparserfromhell.nodes import (Argument, Comment, Heading, HTMLEntity, diff --git a/tests/test_wikilink.py b/tests/test_wikilink.py index 80116ca..487b7af 100644 --- a/tests/test_wikilink.py +++ b/tests/test_wikilink.py @@ -21,11 +21,7 @@ # SOFTWARE. from __future__ import unicode_literals - -try: - import unittest2 as unittest -except ImportError: - import unittest +import unittest from mwparserfromhell.compat import str from mwparserfromhell.nodes import Text, Wikilink