Skip to content

Commit

Permalink
type annotate twisted.trial.test.test_keyboard
Browse files Browse the repository at this point in the history
  • Loading branch information
graingert committed Sep 16, 2023
1 parent ee63957 commit 46d67ce
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 21 deletions.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,6 @@ module = [
'twisted.trial.test.test_assertions',
'twisted.trial.test.test_asyncassertions',
'twisted.trial.test.test_deferred',
'twisted.trial.test.test_keyboard',
'twisted.trial.test.test_log',
'twisted.trial.test.test_plugins',
'twisted.trial.test.test_reporter',
Expand Down
44 changes: 24 additions & 20 deletions src/twisted/trial/test/test_keyboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,44 @@
"""
Tests for interrupting tests with Control-C.
"""

from __future__ import annotations

from io import StringIO

from twisted.trial import reporter, runner, unittest


class TrialTest(unittest.SynchronousTestCase):
def setUp(self):
def setUp(self) -> None:
self.output = StringIO()
self.reporter = reporter.TestResult()
self.loader = runner.TestLoader()


class InterruptInTestTests(TrialTest):
test_03_doNothing_run: bool | None

class InterruptedTest(unittest.TestCase):
def test_02_raiseInterrupt(self):
def test_02_raiseInterrupt(self) -> None:
raise KeyboardInterrupt

def test_01_doNothing(self):
def test_01_doNothing(self) -> None:
pass

def test_03_doNothing(self):
def test_03_doNothing(self) -> None:
InterruptInTestTests.test_03_doNothing_run = True

def setUp(self):
def setUp(self) -> None:
super().setUp()
self.suite = self.loader.loadClass(InterruptInTestTests.InterruptedTest)
InterruptInTestTests.test_03_doNothing_run = None

def test_setUpOK(self):
def test_setUpOK(self) -> None:
self.assertEqual(3, self.suite.countTestCases())
self.assertEqual(0, self.reporter.testsRun)
self.assertFalse(self.reporter.shouldStop)

def test_interruptInTest(self):
def test_interruptInTest(self) -> None:
runner.TrialSuite([self.suite]).run(self.reporter)
self.assertTrue(self.reporter.shouldStop)
self.assertEqual(2, self.reporter.testsRun)
Expand All @@ -50,32 +52,33 @@ def test_interruptInTest(self):

class InterruptInSetUpTests(TrialTest):
testsRun = 0
test_02_run: bool

class InterruptedTest(unittest.TestCase):
def setUp(self):
def setUp(self) -> None:
if InterruptInSetUpTests.testsRun > 0:
raise KeyboardInterrupt

def test_01(self):
def test_01(self) -> None:
InterruptInSetUpTests.testsRun += 1

def test_02(self):
def test_02(self) -> None:
InterruptInSetUpTests.testsRun += 1
InterruptInSetUpTests.test_02_run = True

def setUp(self):
def setUp(self) -> None:
super().setUp()
self.suite = self.loader.loadClass(InterruptInSetUpTests.InterruptedTest)
InterruptInSetUpTests.test_02_run = False
InterruptInSetUpTests.testsRun = 0

def test_setUpOK(self):
def test_setUpOK(self) -> None:
self.assertEqual(0, InterruptInSetUpTests.testsRun)
self.assertEqual(2, self.suite.countTestCases())
self.assertEqual(0, self.reporter.testsRun)
self.assertFalse(self.reporter.shouldStop)

def test_interruptInSetUp(self):
def test_interruptInSetUp(self) -> None:
runner.TrialSuite([self.suite]).run(self.reporter)
self.assertTrue(self.reporter.shouldStop)
self.assertEqual(2, self.reporter.testsRun)
Expand All @@ -84,32 +87,33 @@ def test_interruptInSetUp(self):

class InterruptInTearDownTests(TrialTest):
testsRun = 0
test_02_run: bool

class InterruptedTest(unittest.TestCase):
def tearDown(self):
def tearDown(self) -> None:
if InterruptInTearDownTests.testsRun > 0:
raise KeyboardInterrupt

def test_01(self):
def test_01(self) -> None:
InterruptInTearDownTests.testsRun += 1

def test_02(self):
def test_02(self) -> None:
InterruptInTearDownTests.testsRun += 1
InterruptInTearDownTests.test_02_run = True

def setUp(self):
def setUp(self) -> None:
super().setUp()
self.suite = self.loader.loadClass(InterruptInTearDownTests.InterruptedTest)
InterruptInTearDownTests.testsRun = 0
InterruptInTearDownTests.test_02_run = False

def test_setUpOK(self):
def test_setUpOK(self) -> None:
self.assertEqual(0, InterruptInTearDownTests.testsRun)
self.assertEqual(2, self.suite.countTestCases())
self.assertEqual(0, self.reporter.testsRun)
self.assertFalse(self.reporter.shouldStop)

def test_interruptInTearDown(self):
def test_interruptInTearDown(self) -> None:
runner.TrialSuite([self.suite]).run(self.reporter)
self.assertEqual(1, self.reporter.testsRun)
self.assertTrue(self.reporter.shouldStop)
Expand Down

0 comments on commit 46d67ce

Please sign in to comment.