Skip to content

Commit

Permalink
type annotate twisted.trial.test.test_output
Browse files Browse the repository at this point in the history
  • Loading branch information
graingert committed Sep 8, 2023
1 parent a8bb41c commit b22496c
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 20 deletions.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -880,7 +880,6 @@ module = [
'twisted.trial.test.pyunitcases',
'twisted.trial.test.sample',
'twisted.trial.test.test_doctest',
'twisted.trial.test.test_output',
'twisted.web._auth.digest',
'twisted.web.demo',
'twisted.web.html',
Expand Down
45 changes: 26 additions & 19 deletions src/twisted/trial/test/test_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,22 @@
"""
Tests for the output generated by trial.
"""

from __future__ import annotations

import os
from io import StringIO
from typing import TypeVar

from twisted.scripts import trial
from twisted.trial import runner
from twisted.trial.test import packages

_T = TypeVar("_T")

_noModuleError = "No module named 'frotz'"


def runTrial(*args):
def runTrial(*args: str) -> str:
from twisted.trial import reporter

config = trial.Options()
Expand All @@ -42,77 +45,81 @@ def debug(self) -> None:

parent = "_testImportErrors"

def runTrial(self, *args):
def runTrial(self, *args: str) -> str:
return runTrial("--temp-directory", self.mktemp(), *args)

def _print(self, stuff):
def _print(self, stuff: _T) -> _T:
print(stuff)
return stuff

def assertIn(self, container, containee, *args, **kwargs):
def assertIn( # type: ignore[override]
self, container: str, containee: str, *args: object, **kwargs: object
) -> str:
# redefined to be useful in callbacks
super().assertIn(containee, container, *args, **kwargs)
return container

def assertNotIn(self, container, containee, *args, **kwargs):
def assertNotIn( # type: ignore[override]
self, container: str, containee: str, *args: object, **kwargs: object
) -> str:
# redefined to be useful in callbacks
super().assertNotIn(containee, container, *args, **kwargs)
return container

def test_trialRun(self) -> None:
self.runTrial()

def test_nonexistentModule(self):
def test_nonexistentModule(self) -> str:
d = self.runTrial("twisted.doesntexist")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "twisted.doesntexist")
return d

def test_nonexistentPackage(self):
def test_nonexistentPackage(self) -> str:
d = self.runTrial("doesntexist")
self.assertIn(d, "doesntexist")
self.assertIn(d, "ModuleNotFound")
self.assertIn(d, "[ERROR]")
return d

def test_nonexistentPackageWithModule(self):
def test_nonexistentPackageWithModule(self) -> str:
d = self.runTrial("doesntexist.barney")
self.assertIn(d, "doesntexist.barney")
self.assertIn(d, "ObjectNotFound")
self.assertIn(d, "[ERROR]")
return d

def test_badpackage(self):
def test_badpackage(self) -> str:
d = self.runTrial("badpackage")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "badpackage")
self.assertNotIn(d, "IOError")
return d

def test_moduleInBadpackage(self):
def test_moduleInBadpackage(self) -> str:
d = self.runTrial("badpackage.test_module")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "badpackage.test_module")
self.assertNotIn(d, "IOError")
return d

def test_badmodule(self):
def test_badmodule(self) -> str:
d = self.runTrial("package.test_bad_module")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "package.test_bad_module")
self.assertNotIn(d, "IOError")
self.assertNotIn(d, "<module ")
return d

def test_badimport(self):
def test_badimport(self) -> str:
d = self.runTrial("package.test_import_module")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "package.test_import_module")
self.assertNotIn(d, "IOError")
self.assertNotIn(d, "<module ")
return d

def test_recurseImport(self):
def test_recurseImport(self) -> str:
d = self.runTrial("package")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "test_bad_module")
Expand All @@ -121,7 +128,7 @@ def test_recurseImport(self):
self.assertNotIn(d, "IOError")
return d

def test_recurseImportErrors(self):
def test_recurseImportErrors(self) -> str:
d = self.runTrial("package2")
self.assertIn(d, "[ERROR]")
self.assertIn(d, "package2")
Expand All @@ -131,22 +138,22 @@ def test_recurseImportErrors(self):
self.assertNotIn(d, "IOError")
return d

def test_nonRecurseImportErrors(self):
def test_nonRecurseImportErrors(self) -> str:
d = self.runTrial("-N", "package2")
self.assertIn(d, "[ERROR]")
self.assertIn(d, _noModuleError)
self.assertNotIn(d, "<module ")
return d

def test_regularRun(self):
def test_regularRun(self) -> str:
d = self.runTrial("package.test_module")
self.assertNotIn(d, "[ERROR]")
self.assertNotIn(d, "IOError")
self.assertIn(d, "OK")
self.assertIn(d, "PASSED (successes=1)")
return d

def test_filename(self):
def test_filename(self) -> str:
self.mangleSysPath(self.oldPath)
d = self.runTrial(os.path.join(self.parent, "package", "test_module.py"))
self.assertNotIn(d, "[ERROR]")
Expand All @@ -155,7 +162,7 @@ def test_filename(self):
self.assertIn(d, "PASSED (successes=1)")
return d

def test_dosFile(self):
def test_dosFile(self) -> str:
## XXX -- not really an output test, more of a script test
self.mangleSysPath(self.oldPath)
d = self.runTrial(os.path.join(self.parent, "package", "test_dos_module.py"))
Expand Down

0 comments on commit b22496c

Please sign in to comment.