Viewing file: test_output.py (5.05 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# Copyright (c) 2008 Twisted Matrix Laboratories. # See LICENSE for details.
""" Tests for the output generated by trial. """
import os, StringIO
from twisted.scripts import trial from twisted.trial import runner from twisted.trial.test import packages
def runTrial(*args): from twisted.trial import reporter config = trial.Options() config.parseOptions(args) output = StringIO.StringIO() myRunner = runner.TrialRunner( reporter.VerboseTextReporter, stream=output, workingDirectory=config['temp-directory']) suite = trial._getSuite(config) result = myRunner.run(suite) return output.getvalue()
class TestImportErrors(packages.SysPathManglingTest): """Actually run trial as if on the command line and check that the output is what we expect. """
debug = False parent = "_testImportErrors" def runTrial(self, *args): return runTrial('--temp-directory', self.mktemp(), *args)
def _print(self, stuff): print stuff return stuff
def failUnlessIn(self, container, containee, *args, **kwargs): # redefined to be useful in callbacks super(TestImportErrors, self).failUnlessIn( containee, container, *args, **kwargs) return container
def failIfIn(self, container, containee, *args, **kwargs): # redefined to be useful in callbacks super(TestImportErrors, self).failIfIn( containee, container, *args, **kwargs) return container
def test_trialRun(self): self.runTrial()
def test_nonexistentModule(self): d = self.runTrial('twisted.doesntexist') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'twisted.doesntexist') return d
def test_nonexistentPackage(self): d = self.runTrial('doesntexist') self.failUnlessIn(d, 'doesntexist') self.failUnlessIn(d, 'ModuleNotFound') self.failUnlessIn(d, '[ERROR]') return d
def test_nonexistentPackageWithModule(self): d = self.runTrial('doesntexist.barney') self.failUnlessIn(d, 'doesntexist.barney') self.failUnlessIn(d, 'ObjectNotFound') self.failUnlessIn(d, '[ERROR]') return d
def test_badpackage(self): d = self.runTrial('badpackage') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'badpackage') self.failIfIn(d, 'IOError') return d
def test_moduleInBadpackage(self): d = self.runTrial('badpackage.test_module') self.failUnlessIn(d, "[ERROR]") self.failUnlessIn(d, "badpackage.test_module") self.failIfIn(d, 'IOError') return d
def test_badmodule(self): d = self.runTrial('package.test_bad_module') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'package.test_bad_module') self.failIfIn(d, 'IOError') self.failIfIn(d, '<module ') return d
def test_badimport(self): d = self.runTrial('package.test_import_module') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'package.test_import_module') self.failIfIn(d, 'IOError') self.failIfIn(d, '<module ') return d
def test_recurseImport(self): d = self.runTrial('package') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'test_bad_module') self.failUnlessIn(d, 'test_import_module') self.failIfIn(d, '<module ') self.failIfIn(d, 'IOError') return d
def test_recurseImportErrors(self): d = self.runTrial('package2') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, 'package2') self.failUnlessIn(d, 'test_module') self.failUnlessIn(d, "No module named frotz") self.failIfIn(d, '<module ') self.failIfIn(d, 'IOError') return d
def test_nonRecurseImportErrors(self): d = self.runTrial('-N', 'package2') self.failUnlessIn(d, '[ERROR]') self.failUnlessIn(d, "No module named frotz") self.failIfIn(d, '<module ') return d
def test_regularRun(self): d = self.runTrial('package.test_module') self.failIfIn(d, '[ERROR]') self.failIfIn(d, 'IOError') self.failUnlessIn(d, 'OK') self.failUnlessIn(d, 'PASSED (successes=1)') return d
def test_filename(self): self.mangleSysPath(self.oldPath) d = self.runTrial( os.path.join(self.parent, 'package', 'test_module.py')) self.failIfIn(d, '[ERROR]') self.failIfIn(d, 'IOError') self.failUnlessIn(d, 'OK') self.failUnlessIn(d, 'PASSED (successes=1)') return d
def test_dosFile(self): ## 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')) self.failIfIn(d, '[ERROR]') self.failIfIn(d, 'IOError') self.failUnlessIn(d, 'OK') self.failUnlessIn(d, 'PASSED (successes=1)') return d
|