Skip to content

Commit f9493f0

Browse files
committed
Rationalize stdlib imports in tests
- Import urllib and email explicitly (since the names clash on Py2 vs Py3) - Import test explicitly from future.standard_library (since it's not available on travis-ci.org or anaconda) - Import unittest explicitly from future.test.base (since on Py2 this monkey-patches in some useful decorators and testing tools from Py2.7 / Py3.x) - Only use import hooks for modules without clashing names between Py2 and Py3
1 parent b9a0c89 commit f9493f0

30 files changed

Lines changed: 206 additions & 237 deletions

future/tests/test_email/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
from future import utils
1010
import os
1111
import sys
12-
import unittest
1312
from future.standard_library.test import support as test_support
1413

1514
from future.standard_library import email
1615
from future.standard_library.email.message import Message
1716
from future.standard_library.email._policybase import compat32
17+
from future.tests.base import unittest
1818
from future.tests.test_email import __file__ as landmark
1919

2020
# Run all tests in package for '-m unittest test.test_email'

future/tests/test_email/test__encoded_words.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import, division, unicode_literals
33

4-
from future import standard_library
54
from future.standard_library.email import _encoded_words as _ew
65
from future.standard_library.email import errors
76
from future.tests.test_email import TestEmailBase

future/tests/test_email/test__header_value_parser.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import, division, unicode_literals
3-
from future.builtins import bytes, range, str
4-
from future import standard_library
53
import string
6-
import unittest
7-
with standard_library.hooks():
8-
from email import _header_value_parser as parser
9-
from email import errors
10-
from email import policy
11-
from test.test_email import TestEmailBase, parameterize
4+
from future.standard_library.email import _header_value_parser as parser
5+
from future.standard_library.email import errors
6+
from future.standard_library.email import policy
7+
from future.tests.base import unittest
8+
from future.tests.test_email import TestEmailBase, parameterize
9+
from future.builtins import bytes, range, str
1210

1311

1412
class TestTokens(TestEmailBase):

future/tests/test_email/test_asian_codecs.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
# email package unit tests for (optional) Asian codecs
44

55
from __future__ import absolute_import, division, unicode_literals
6-
from future.builtins import str
7-
from future import standard_library
8-
96
from future.standard_library.test.support import run_unittest
107
from future.standard_library.email.charset import Charset
118
from future.standard_library.email.header import Header, decode_header
129
from future.standard_library.email.message import Message
1310
from future.tests.base import unittest
1411
from future.tests.test_email.test_email import TestEmailBase
12+
from future.builtins import str
1513

1614
# We're compatible with Python 2.3, but it doesn't have the built-in Asian
1715
# codecs, so we have to skip all these tests.

future/tests/test_email/test_defect_handling.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
from __future__ import absolute_import, division, unicode_literals
2-
from future.builtins import str
3-
from future import standard_library
4-
52
import textwrap
6-
import unittest
73
import contextlib
84
from future.standard_library.email import policy, errors
9-
from future.standard_library.test.email import TestEmailBase
5+
from future.tests.test_email import TestEmailBase
6+
from future.tests.base import unittest
7+
from future.builtins import str
108

119
class TestDefectsBase(object):
1210

future/tests/test_email/test_email.py

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,46 +12,41 @@
1212
import re
1313
import time
1414
import base64
15-
import unittest
1615
import textwrap
1716

1817
from io import StringIO, BytesIO
1918
from itertools import chain
2019

21-
from future import standard_library
22-
standard_library.install_hooks()
23-
24-
import email
25-
import email.policy
26-
27-
from email.charset import Charset
28-
from email.header import Header, decode_header, make_header
29-
from email.parser import Parser, HeaderParser
30-
from email.generator import Generator, DecodedGenerator, BytesGenerator
31-
from email.message import Message
32-
from email.mime.application import MIMEApplication
33-
from email.mime.audio import MIMEAudio
34-
from email.mime.text import MIMEText
35-
from email.mime.image import MIMEImage
36-
from email.mime.base import MIMEBase
37-
from email.mime.message import MIMEMessage
38-
from email.mime.multipart import MIMEMultipart
39-
from email import utils
40-
from email import errors
41-
from email import encoders
42-
from email import iterators
43-
from email import base64mime
44-
from email import quoprimime
45-
import email.feedparser
46-
47-
from test.support import unlink
48-
from test.test_email import openfile, TestEmailBase
20+
import future.standard_library.email as email
21+
22+
from future.standard_library.email.charset import Charset
23+
from future.standard_library.email.header import Header, decode_header, make_header
24+
from future.standard_library.email.parser import Parser, HeaderParser
25+
from future.standard_library.email.generator import Generator, DecodedGenerator, BytesGenerator
26+
from future.standard_library.email.message import Message
27+
from future.standard_library.email.mime.application import MIMEApplication
28+
from future.standard_library.email.mime.audio import MIMEAudio
29+
from future.standard_library.email.mime.text import MIMEText
30+
from future.standard_library.email.mime.image import MIMEImage
31+
from future.standard_library.email.mime.base import MIMEBase
32+
from future.standard_library.email.mime.message import MIMEMessage
33+
from future.standard_library.email.mime.multipart import MIMEMultipart
34+
from future.standard_library.email import utils
35+
from future.standard_library.email import errors
36+
from future.standard_library.email import encoders
37+
from future.standard_library.email import iterators
38+
from future.standard_library.email import base64mime
39+
from future.standard_library.email import quoprimime
40+
import future.standard_library.email.feedparser as email_feedparser
41+
from future.standard_library.test.support import unlink
4942

5043
# These imports are documented to work, but we are testing them using a
5144
# different path, so we import them here just to make sure they are importable.
52-
from email.parser import FeedParser, BytesFeedParser
45+
from future.standard_library.email.parser import FeedParser, BytesFeedParser
46+
47+
from future.tests.base import unittest
48+
from future.tests.test_email import openfile, TestEmailBase
5349

54-
standard_library.remove_hooks()
5550

5651
NL = '\n'
5752
EMPTYSTRING = ''

future/tests/test_email/test_headerregistry.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,16 @@
33
from __future__ import print_function
44
from __future__ import division
55
from __future__ import absolute_import
6-
from future.builtins import range
7-
from future.builtins import str
8-
from future import standard_library
9-
standard_library.install_hooks()
106
import datetime
117
import textwrap
12-
import unittest
13-
from email import errors
14-
from email import policy
15-
from email.message import Message
16-
from test.test_email import TestEmailBase, parameterize
17-
from email import headerregistry
18-
from email.headerregistry import Address, Group
8+
from future.standard_library.email import errors
9+
from future.standard_library.email import policy
10+
from future.standard_library.email.message import Message
11+
from future.standard_library.email import headerregistry
12+
from future.standard_library.email.headerregistry import Address, Group
13+
from future.tests.test_email import TestEmailBase, parameterize
14+
from future.tests.base import unittest
15+
from future.builtins import range, str
1916

2017

2118
DITTO = object()

future/tests/test_email/test_inversion.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@
77
from __future__ import print_function
88
from __future__ import division
99
from __future__ import absolute_import
10-
from future import standard_library
11-
standard_library.install_hooks()
12-
1310
import io
14-
import unittest
15-
from email import policy, message_from_bytes
16-
from email.generator import BytesGenerator
17-
from test.test_email import TestEmailBase, parameterize
11+
from future.standard_library.email import policy, message_from_bytes
12+
from future.standard_library.email.generator import BytesGenerator
13+
from future.tests.test_email import TestEmailBase, parameterize
14+
from future.tests.base import unittest
1815

1916
# This is like textwrap.dedent for bytes, except that it uses \r\n for the line
2017
# separators on the rebuilt string.

future/tests/test_email/test_message.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
from __future__ import print_function
33
from __future__ import division
44
from __future__ import absolute_import
5-
from future import standard_library
6-
standard_library.install_hooks()
7-
import unittest
8-
from email import policy
9-
from test.test_email import TestEmailBase
5+
from future.standard_library.email import policy
6+
from future.tests.base import unittest
7+
from future.tests.test_email import TestEmailBase
108

119

1210
class Test(TestEmailBase):

future/tests/test_email/test_parser.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22
from __future__ import print_function
33
from __future__ import division
44
from __future__ import absolute_import
5-
from future.builtins import super
6-
from future import standard_library
75
import io
8-
import unittest
9-
with standard_library.hooks():
10-
import email
11-
from email.message import Message
12-
from future.tests.test_email import TestEmailBase
6+
import future.standard_library.email as email
7+
from future.standard_library.email.message import Message
8+
from future.tests.test_email import TestEmailBase
9+
from future.tests.base import unittest
10+
from future.builtins import super
1311

1412

1513
class TestCustomMessage(TestEmailBase):

0 commit comments

Comments
 (0)