| OLD | NEW |
| (Empty) |
| 1 from twisted.scripts import trial | |
| 2 from twisted.trial import runner | |
| 3 from twisted.trial.test import packages | |
| 4 import os, sys, StringIO | |
| 5 | |
| 6 | |
| 7 def runTrial(*args): | |
| 8 from twisted.trial import reporter | |
| 9 config = trial.Options() | |
| 10 config.parseOptions(args) | |
| 11 output = StringIO.StringIO() | |
| 12 myRunner = runner.TrialRunner( | |
| 13 reporter.VerboseTextReporter, | |
| 14 stream=output, | |
| 15 workingDirectory=config['temp-directory']) | |
| 16 suite = trial._getSuite(config) | |
| 17 result = myRunner.run(suite) | |
| 18 return output.getvalue() | |
| 19 | |
| 20 | |
| 21 class TestImportErrors(packages.SysPathManglingTest): | |
| 22 """Actually run trial as if on the command line and check that the output | |
| 23 is what we expect. | |
| 24 """ | |
| 25 | |
| 26 debug = False | |
| 27 parent = "_testImportErrors" | |
| 28 def runTrial(self, *args): | |
| 29 return runTrial('--temp-directory', self.mktemp(), *args) | |
| 30 | |
| 31 def _print(self, stuff): | |
| 32 print stuff | |
| 33 return stuff | |
| 34 | |
| 35 def failUnlessIn(self, container, containee, *args, **kwargs): | |
| 36 # redefined to be useful in callbacks | |
| 37 super(TestImportErrors, self).failUnlessIn( | |
| 38 containee, container, *args, **kwargs) | |
| 39 return container | |
| 40 | |
| 41 def failIfIn(self, container, containee, *args, **kwargs): | |
| 42 # redefined to be useful in callbacks | |
| 43 super(TestImportErrors, self).failIfIn( | |
| 44 containee, container, *args, **kwargs) | |
| 45 return container | |
| 46 | |
| 47 def test_trialRun(self): | |
| 48 self.runTrial() | |
| 49 | |
| 50 def test_nonexistentModule(self): | |
| 51 d = self.runTrial('twisted.doesntexist') | |
| 52 self.failUnlessIn(d, '[ERROR]') | |
| 53 self.failUnlessIn(d, 'twisted.doesntexist') | |
| 54 return d | |
| 55 | |
| 56 def test_nonexistentPackage(self): | |
| 57 d = self.runTrial('doesntexist') | |
| 58 self.failUnlessIn(d, 'doesntexist') | |
| 59 self.failUnlessIn(d, 'ValueError') | |
| 60 self.failUnlessIn(d, '[ERROR]') | |
| 61 return d | |
| 62 | |
| 63 def test_nonexistentPackageWithModule(self): | |
| 64 d = self.runTrial('doesntexist.barney') | |
| 65 self.failUnlessIn(d, 'doesntexist.barney') | |
| 66 self.failUnlessIn(d, 'ValueError') | |
| 67 self.failUnlessIn(d, '[ERROR]') | |
| 68 return d | |
| 69 | |
| 70 def test_badpackage(self): | |
| 71 d = self.runTrial('badpackage') | |
| 72 self.failUnlessIn(d, '[ERROR]') | |
| 73 self.failUnlessIn(d, 'badpackage') | |
| 74 self.failIfIn(d, 'IOError') | |
| 75 return d | |
| 76 | |
| 77 def test_moduleInBadpackage(self): | |
| 78 d = self.runTrial('badpackage.test_module') | |
| 79 self.failUnlessIn(d, "[ERROR]") | |
| 80 self.failUnlessIn(d, "badpackage.test_module") | |
| 81 self.failIfIn(d, 'IOError') | |
| 82 return d | |
| 83 | |
| 84 def test_badmodule(self): | |
| 85 d = self.runTrial('package.test_bad_module') | |
| 86 self.failUnlessIn(d, '[ERROR]') | |
| 87 self.failUnlessIn(d, 'package.test_bad_module') | |
| 88 self.failIfIn(d, 'IOError') | |
| 89 self.failIfIn(d, '<module ') | |
| 90 return d | |
| 91 | |
| 92 def test_badimport(self): | |
| 93 d = self.runTrial('package.test_import_module') | |
| 94 self.failUnlessIn(d, '[ERROR]') | |
| 95 self.failUnlessIn(d, 'package.test_import_module') | |
| 96 self.failIfIn(d, 'IOError') | |
| 97 self.failIfIn(d, '<module ') | |
| 98 return d | |
| 99 | |
| 100 def test_recurseImport(self): | |
| 101 d = self.runTrial('package') | |
| 102 self.failUnlessIn(d, '[ERROR]') | |
| 103 self.failUnlessIn(d, 'test_bad_module') | |
| 104 self.failUnlessIn(d, 'test_import_module') | |
| 105 self.failIfIn(d, '<module ') | |
| 106 self.failIfIn(d, 'IOError') | |
| 107 return d | |
| 108 | |
| 109 def test_recurseImportErrors(self): | |
| 110 d = self.runTrial('package2') | |
| 111 self.failUnlessIn(d, '[ERROR]') | |
| 112 self.failUnlessIn(d, 'package2') | |
| 113 self.failUnlessIn(d, 'test_module') | |
| 114 self.failUnlessIn(d, "No module named frotz") | |
| 115 self.failIfIn(d, '<module ') | |
| 116 self.failIfIn(d, 'IOError') | |
| 117 return d | |
| 118 | |
| 119 def test_nonRecurseImportErrors(self): | |
| 120 d = self.runTrial('-N', 'package2') | |
| 121 self.failUnlessIn(d, '[ERROR]') | |
| 122 self.failUnlessIn(d, "No module named frotz") | |
| 123 self.failIfIn(d, '<module ') | |
| 124 return d | |
| 125 | |
| 126 def test_regularRun(self): | |
| 127 d = self.runTrial('package.test_module') | |
| 128 self.failIfIn(d, '[ERROR]') | |
| 129 self.failIfIn(d, 'IOError') | |
| 130 self.failUnlessIn(d, 'OK') | |
| 131 self.failUnlessIn(d, 'PASSED (successes=1)') | |
| 132 return d | |
| 133 | |
| 134 def test_filename(self): | |
| 135 self.mangleSysPath(self.oldPath) | |
| 136 d = self.runTrial( | |
| 137 os.path.join(self.parent, 'package', 'test_module.py')) | |
| 138 self.failIfIn(d, '[ERROR]') | |
| 139 self.failIfIn(d, 'IOError') | |
| 140 self.failUnlessIn(d, 'OK') | |
| 141 self.failUnlessIn(d, 'PASSED (successes=1)') | |
| 142 return d | |
| 143 | |
| 144 def test_dosFile(self): | |
| 145 ## XXX -- not really an output test, more of a script test | |
| 146 self.mangleSysPath(self.oldPath) | |
| 147 d = self.runTrial( | |
| 148 os.path.join(self.parent, | |
| 149 'package', 'test_dos_module.py')) | |
| 150 self.failIfIn(d, '[ERROR]') | |
| 151 self.failIfIn(d, 'IOError') | |
| 152 self.failUnlessIn(d, 'OK') | |
| 153 self.failUnlessIn(d, 'PASSED (successes=1)') | |
| 154 return d | |
| OLD | NEW |