Skip to content

Commit f3aee8b

Browse files
authored
Merge pull request #459 from testing-cabal/drop-try-import
Avoid using try_import
2 parents 66f653f + 1483dc3 commit f3aee8b

File tree

9 files changed

+99
-42
lines changed

9 files changed

+99
-42
lines changed

testtools/testcase.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
from testtools import content
2828
from testtools.compat import reraise
29-
from testtools.helpers import try_import
3029
from testtools.matchers import (
3130
Annotate,
3231
Contains,
@@ -166,7 +165,10 @@ def gather_details(source_dict, target_dict):
166165
# Circular import: fixtures imports gather_details from here, we import
167166
# fixtures, leading to gather_details not being available and fixtures being
168167
# unable to import it.
169-
fixtures = try_import("fixtures")
168+
try:
169+
import fixtures
170+
except ImportError:
171+
fixtures = None
170172

171173

172174
class UseFixtureProtocol(Protocol):

testtools/tests/test_fixturesupport.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
content_type,
99
)
1010
from testtools.compat import _b
11-
from testtools.helpers import try_import
1211
from testtools.matchers import (
1312
Contains,
1413
Equals,
@@ -17,8 +16,15 @@
1716
ExtendedTestResult,
1817
)
1918

20-
fixtures = try_import("fixtures")
21-
LoggingFixture = try_import("fixtures.tests.helpers.LoggingFixture")
19+
try:
20+
import fixtures
21+
except ImportError:
22+
fixtures = None
23+
24+
try:
25+
from fixtures.tests.helpers import LoggingFixture
26+
except ImportError:
27+
LoggingFixture = None
2228

2329

2430
class TestFixtureSupport(TestCase):

testtools/tests/test_run.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,21 @@
1212
import testtools
1313
from testtools import TestCase, run, skipUnless
1414
from testtools.compat import _b
15-
from testtools.helpers import try_import
1615
from testtools.matchers import (
1716
Contains,
1817
DocTestMatches,
1918
MatchesRegex,
2019
)
2120

22-
fixtures = try_import("fixtures")
23-
testresources = try_import("testresources")
21+
try:
22+
import fixtures
23+
except ImportError:
24+
fixtures = None
25+
26+
try:
27+
import testresources
28+
except ImportError:
29+
testresources = None
2430

2531

2632
if fixtures:

testtools/tests/test_testresult.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
text_content,
5555
)
5656
from testtools.content_type import UTF8_TEXT, ContentType
57-
from testtools.helpers import try_import
5857
from testtools.matchers import (
5958
AllMatch,
6059
Contains,
@@ -86,7 +85,10 @@
8685
run_with_stack_hidden,
8786
)
8887

89-
testresources = try_import("testresources")
88+
try:
89+
import testresources
90+
except ImportError:
91+
testresources = None
9092

9193

9294
def _utcfromtimestamp(t):

testtools/tests/test_testsuite.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@
1414
TestCase,
1515
iterate_tests,
1616
)
17-
from testtools.helpers import try_import
1817
from testtools.matchers import DocTestMatches, Equals
1918
from testtools.testresult.doubles import StreamResult as LoggingStream
2019
from testtools.tests.helpers import LoggingResult
2120
from testtools.testsuite import FixtureSuite, sorted_tests
2221

23-
FunctionFixture = try_import("fixtures.FunctionFixture")
22+
try:
23+
from fixtures import FunctionFixture
24+
except ImportError:
25+
FunctionFixture = None
2426

2527

2628
class Sample(TestCase):

testtools/tests/twistedsupport/_helpers.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
]
66

77
from testtools import TestCase
8-
from testtools.helpers import try_import
98

10-
defer = try_import("twisted.internet.defer")
9+
try:
10+
from twisted.internet import defer
11+
except ImportError:
12+
defer = None
1113

1214

1315
class NeedsTwistedTestCase(TestCase):

testtools/tests/twistedsupport/test_deferred.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
"""Tests for testtools._deferred."""
44

5-
from testtools.helpers import try_import
65
from testtools.matchers import (
76
Equals,
87
MatchesException,
@@ -11,11 +10,21 @@
1110

1211
from ._helpers import NeedsTwistedTestCase
1312

14-
DeferredNotFired = try_import("testtools.twistedsupport._deferred.DeferredNotFired")
15-
extract_result = try_import("testtools.twistedsupport._deferred.extract_result")
13+
try:
14+
from testtools.twistedsupport._deferred import DeferredNotFired, extract_result
15+
except ImportError:
16+
DeferredNotFired = None
17+
extract_result = None
1618

17-
defer = try_import("twisted.internet.defer")
18-
Failure = try_import("twisted.python.failure.Failure")
19+
try:
20+
from twisted.internet import defer
21+
except ImportError:
22+
defer = None
23+
24+
try:
25+
from twisted.python.failure import Failure
26+
except ImportError:
27+
Failure = None
1928

2029

2130
class TestExtractResult(NeedsTwistedTestCase):

testtools/tests/twistedsupport/test_runtest.py

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
TestResult,
1212
skipIf,
1313
)
14-
from testtools.helpers import try_import
1514
from testtools.matchers import (
1615
AfterPreprocessing,
1716
Contains,
@@ -33,24 +32,44 @@
3332

3433
from ._helpers import NeedsTwistedTestCase
3534

36-
DebugTwisted = try_import("testtools.twistedsupport._deferreddebug.DebugTwisted")
37-
38-
assert_fails_with = try_import("testtools.twistedsupport.assert_fails_with")
39-
AsynchronousDeferredRunTest = try_import(
40-
"testtools.twistedsupport.AsynchronousDeferredRunTest"
41-
)
42-
flush_logged_errors = try_import("testtools.twistedsupport.flush_logged_errors")
43-
SynchronousDeferredRunTest = try_import(
44-
"testtools.twistedsupport.SynchronousDeferredRunTest"
45-
)
46-
47-
defer = try_import("twisted.internet.defer")
48-
failure = try_import("twisted.python.failure")
49-
log = try_import("twisted.python.log")
50-
DelayedCall = try_import("twisted.internet.base.DelayedCall")
51-
_get_global_publisher_and_observers = try_import(
52-
"testtools.twistedsupport._runtest._get_global_publisher_and_observers"
53-
)
35+
try:
36+
from testtools.twistedsupport._deferreddebug import DebugTwisted
37+
except ImportError:
38+
DebugTwisted = None
39+
40+
try:
41+
from testtools.twistedsupport import (
42+
AsynchronousDeferredRunTest,
43+
SynchronousDeferredRunTest,
44+
assert_fails_with,
45+
flush_logged_errors,
46+
)
47+
except ImportError:
48+
assert_fails_with = None
49+
AsynchronousDeferredRunTest = None
50+
flush_logged_errors = None
51+
SynchronousDeferredRunTest = None
52+
53+
try:
54+
from twisted.internet import defer
55+
except ImportError:
56+
defer = None
57+
58+
try:
59+
from twisted.python import failure, log
60+
except ImportError:
61+
failure = None
62+
log = None
63+
64+
try:
65+
from twisted.internet.base import DelayedCall
66+
except ImportError:
67+
DelayedCall = None
68+
69+
try:
70+
from testtools.twistedsupport._runtest import _get_global_publisher_and_observers
71+
except ImportError:
72+
_get_global_publisher_and_observers = None
5473

5574

5675
class X:

testtools/tests/twistedsupport/test_spinner.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import signal
77

88
from testtools import skipIf
9-
from testtools.helpers import try_import
109
from testtools.matchers import (
1110
Equals,
1211
Is,
@@ -16,10 +15,20 @@
1615

1716
from ._helpers import NeedsTwistedTestCase
1817

19-
_spinner = try_import("testtools.twistedsupport._spinner")
18+
try:
19+
from testtools.twistedsupport import _spinner
20+
except ImportError:
21+
_spinner = None
2022

21-
defer = try_import("twisted.internet.defer")
22-
Failure = try_import("twisted.python.failure.Failure")
23+
try:
24+
from twisted.internet import defer
25+
except ImportError:
26+
defer = None
27+
28+
try:
29+
from twisted.python.failure import Failure
30+
except ImportError:
31+
Failure = None
2332

2433

2534
class TestNotReentrant(NeedsTwistedTestCase):

0 commit comments

Comments
 (0)