我们从Python开源项目中,提取了以下22个代码示例,用于说明如何使用unittest.py()。
def find_tests(testdir, prefixes=DEFAULT_PREFIXES, suffix=".py", excludes=(), remove_suffix=True): """ Return a list of all applicable test modules. """ tests = [] for name in os.listdir(testdir): if not suffix or name.endswith(suffix): for prefix in prefixes: if name.startswith(prefix): if remove_suffix and name.endswith(suffix): name = name[:-len(suffix)] if name not in excludes: tests.append(name) tests.sort() return tests ## PostMortem Debug facilities #####
def test___is_valid_py_file(self): isvalid = self.MyTestRunner._PydevTestRunner__is_valid_py_file self.assertEquals(1, isvalid("test.py")) self.assertEquals(0, isvalid("asdf.pyc")) self.assertEquals(0, isvalid("__init__.py")) self.assertEquals(0, isvalid("__init__.pyc")) self.assertEquals(1, isvalid("asdf asdf.pyw"))
def test___unixify(self): unixify = self.MyTestRunner._PydevTestRunner__unixify self.assertEquals("c:/temp/junk/asdf.py", unixify("c:SEPtempSEPjunkSEPasdf.py".replace('SEP', os.sep)))
def test___importify(self): importify = self.MyTestRunner._PydevTestRunner__importify self.assertEquals("temp.junk.asdf", importify("temp/junk/asdf.py")) self.assertEquals("asdf", importify("asdf.py")) self.assertEquals("abc.def.hgi", importify("abc/def/hgi"))
def test_finding_a_file_from_file_system(self): test_file = "simple_test.py" self.MyTestRunner.files_or_dirs = [self.file_dir[0] + test_file] files = self.MyTestRunner.find_import_files() self.assertEquals(1, len(files)) self.assertEquals(files[0], self.file_dir[0] + test_file)
def test_finding_tests_when_no_filter(self): # unittest.py will create a TestCase with 0 tests in it # since it just imports what is given self.assertEquals(1, len(self.all_tests) > 0) files_with_tests = [1 for t in self.all_tests if len(t._tests) > 0] self.assertNotEquals(len(self.files), len(files_with_tests))
def set_description(self, descr): """sets the current test's description. This can be useful for generative tests because it allows to specify a description per yield """ self._current_test_descr = descr # override default's unittest.py feature
def create_files(paths, chroot): """Creates directories and files found in <path>. :param paths: list of relative paths to files or directories :param chroot: the root directory in which paths will be created >>> from os.path import isdir, isfile >>> isdir('/tmp/a') False >>> create_files(['a/b/foo.py', 'a/b/c/', 'a/b/c/d/e.py'], '/tmp') >>> isdir('/tmp/a') True >>> isdir('/tmp/a/b/c') True >>> isfile('/tmp/a/b/c/d/e.py') True >>> isfile('/tmp/a/b/foo.py') True """ dirs, files = set(), set() for path in paths: path = osp.join(chroot, path) filename = osp.basename(path) # path is a directory path if filename == '': dirs.add(path) # path is a filename path else: dirs.add(osp.dirname(path)) files.add(path) for dirpath in dirs: if not osp.isdir(dirpath): os.makedirs(dirpath) for filepath in files: open(filepath, 'w').close()
def test_parse_cmdline(self): sys.argv = "pydev_runfiles.py ./".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals([sys.argv[1]], configuration.files_or_dirs) self.assertEquals(2, configuration.verbosity) # default value self.assertEquals(None, configuration.include_tests) # default value sys.argv = "pydev_runfiles.py ../images c:/temp".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals(sys.argv[1:3], configuration.files_or_dirs) self.assertEquals(2, configuration.verbosity) sys.argv = "pydev_runfiles.py --verbosity 3 ../junk c:/asdf ".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals(sys.argv[3:], configuration.files_or_dirs) self.assertEquals(int(sys.argv[2]), configuration.verbosity) sys.argv = "pydev_runfiles.py --include_tests test_def ./".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals([sys.argv[-1]], configuration.files_or_dirs) self.assertEquals([sys.argv[2]], configuration.include_tests) sys.argv = "pydev_runfiles.py --include_tests Abc.test_def,Mod.test_abc c:/junk/".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals([sys.argv[-1]], configuration.files_or_dirs) self.assertEquals(sys.argv[2].split(','), configuration.include_tests) sys.argv = ('C:\\eclipse-SDK-3.2-win32\\eclipse\\plugins\\org.python.pydev.debug_1.2.2\\pysrc\\pydev_runfiles.py ' + '--verbosity 1 ' + 'C:\\workspace_eclipse\\fronttpa\\tests\\gui_tests\\calendar_popup_control_test.py ').split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals([sys.argv[-1]], configuration.files_or_dirs) self.assertEquals(1, configuration.verbosity) sys.argv = "pydev_runfiles.py --verbosity 1 --include_tests Mod.test_abc c:/junk/ ./".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals(sys.argv[5:], configuration.files_or_dirs) self.assertEquals(int(sys.argv[2]), configuration.verbosity) self.assertEquals([sys.argv[4]], configuration.include_tests) sys.argv = "pydev_runfiles.py --exclude_files=*.txt,a*.py".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals(['*.txt', 'a*.py'], configuration.exclude_files) sys.argv = "pydev_runfiles.py --exclude_tests=*__todo,test*bar".split() configuration = pydev_runfiles.parse_cmdline() self.assertEquals(['*__todo', 'test*bar'], configuration.exclude_tests)
def __call__(self, result=None, runcondition=None, options=None): """rewrite TestCase.__call__ to support generative tests This is mostly a copy/paste from unittest.py (i.e same variable names, same logic, except for the generative tests part) """ from logilab.common.pytest import FILE_RESTART if result is None: result = self.defaultTestResult() result.pdbclass = self.pdbclass self._options_ = options # if result.cvg: # result.cvg.start() testMethod = self._get_test_method() if (getattr(self.__class__, "__unittest_skip__", False) or getattr(testMethod, "__unittest_skip__", False)): # If the class or method was skipped. try: skip_why = (getattr(self.__class__, '__unittest_skip_why__', '') or getattr(testMethod, '__unittest_skip_why__', '')) self._addSkip(result, skip_why) finally: result.stopTest(self) return if runcondition and not runcondition(testMethod): return # test is skipped result.startTest(self) try: if not self.quiet_run(result, self.setUp): return generative = isgeneratorfunction(testMethod) # generative tests if generative: self._proceed_generative(result, testMethod, runcondition) else: status = self._proceed(result, testMethod) success = (status == 0) if not self.quiet_run(result, self.tearDown): return if not generative and success: if hasattr(options, "exitfirst") and options.exitfirst: # add this test to restart file try: restartfile = open(FILE_RESTART, 'a') try: descr = '.'.join((self.__class__.__module__, self.__class__.__name__, self._testMethodName)) restartfile.write(descr+os.linesep) finally: restartfile.close() except Exception: print("Error while saving succeeded test into", osp.join(os.getcwd(), FILE_RESTART), file=sys.__stderr__) raise result.addSuccess(self) finally: # if result.cvg: # result.cvg.stop() result.stopTest(self)