Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: third_party/twisted_8_1/twisted/test/test_modules.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/test/test_modules.py
diff --git a/third_party/twisted_8_1/twisted/test/test_modules.py b/third_party/twisted_8_1/twisted/test/test_modules.py
deleted file mode 100644
index 9b764f57e6418e70dfd612b9c806a4f04d7ea60c..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/test/test_modules.py
+++ /dev/null
@@ -1,371 +0,0 @@
-# Copyright (c) 2006-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Tests for twisted.python.modules, abstract access to imported or importable
-objects.
-"""
-
-import os
-import sys
-import itertools
-import zipfile
-import compileall
-
-from twisted.trial.unittest import TestCase
-
-from twisted.python import modules
-from twisted.python.filepath import FilePath
-from twisted.python.reflect import namedAny
-
-from twisted.test.test_paths import zipit
-
-
-
-class PySpaceTestCase(TestCase):
-
- def findByIteration(self, modname, where=modules, importPackages=False):
- """
- You don't ever actually want to do this, so it's not in the public API, but
- sometimes we want to compare the result of an iterative call with a
- lookup call and make sure they're the same for test purposes.
- """
- for modinfo in where.walkModules(importPackages=importPackages):
- if modinfo.name == modname:
- return modinfo
- self.fail("Unable to find module %r through iteration." % (modname,))
-
-
-
-class BasicTests(PySpaceTestCase):
- def test_nonexistentPaths(self):
- """
- Verify that L{modules.walkModules} ignores entries in sys.path which
- do not exist in the filesystem.
- """
- existentPath = FilePath(self.mktemp())
- os.makedirs(existentPath.child("test_package").path)
- existentPath.child("test_package").child("__init__.py").setContent("")
-
- nonexistentPath = FilePath(self.mktemp())
- self.failIf(nonexistentPath.exists())
-
- originalSearchPaths = sys.path[:]
- sys.path[:] = [existentPath.path]
- try:
- expected = [modules.getModule("test_package")]
-
- beforeModules = list(modules.walkModules())
- sys.path.append(nonexistentPath.path)
- afterModules = list(modules.walkModules())
- finally:
- sys.path[:] = originalSearchPaths
-
- self.assertEqual(beforeModules, expected)
- self.assertEqual(afterModules, expected)
-
-
- def test_nonDirectoryPaths(self):
- """
- Verify that L{modules.walkModules} ignores entries in sys.path which
- refer to regular files in the filesystem.
- """
- existentPath = FilePath(self.mktemp())
- os.makedirs(existentPath.child("test_package").path)
- existentPath.child("test_package").child("__init__.py").setContent("")
-
- nonDirectoryPath = FilePath(self.mktemp())
- self.failIf(nonDirectoryPath.exists())
- nonDirectoryPath.setContent("zip file or whatever\n")
-
- originalSearchPaths = sys.path[:]
- sys.path[:] = [existentPath.path]
- try:
- beforeModules = list(modules.walkModules())
- sys.path.append(nonDirectoryPath.path)
- afterModules = list(modules.walkModules())
- finally:
- sys.path[:] = originalSearchPaths
-
- self.assertEqual(beforeModules, afterModules)
-
-
- def test_twistedShowsUp(self):
- """
- Scrounge around in the top-level module namespace and make sure that
- Twisted shows up, and that the module thusly obtained is the same as
- the module that we find when we look for it explicitly by name.
- """
- self.assertEquals(modules.getModule('twisted'),
- self.findByIteration("twisted"))
-
-
- def test_dottedNames(self):
- """
- Verify that the walkModules APIs will give us back subpackages, not just
- subpackages.
- """
- self.assertEquals(
- modules.getModule('twisted.python'),
- self.findByIteration("twisted.python",
- where=modules.getModule('twisted')))
-
-
- def test_onlyTopModules(self):
- """
- Verify that the iterModules API will only return top-level modules and
- packages, not submodules or subpackages.
- """
- for module in modules.iterModules():
- self.failIf(
- '.' in module.name,
- "no nested modules should be returned from iterModules: %r"
- % (module.filePath))
-
-
- def test_loadPackagesAndModules(self):
- """
- Verify that we can locate and load packages, modules, submodules, and
- subpackages.
- """
- for n in ['os',
- 'twisted',
- 'twisted.python',
- 'twisted.python.reflect']:
- m = namedAny(n)
- self.failUnlessIdentical(
- modules.getModule(n).load(),
- m)
- self.failUnlessIdentical(
- self.findByIteration(n).load(),
- m)
-
-
- def test_pathEntriesOnPath(self):
- """
- Verify that path entries discovered via module loading are, in fact, on
- sys.path somewhere.
- """
- for n in ['os',
- 'twisted',
- 'twisted.python',
- 'twisted.python.reflect']:
- self.failUnlessIn(
- modules.getModule(n).pathEntry.filePath.path,
- sys.path)
-
-
- def test_alwaysPreferPy(self):
- """
- Verify that .py files will always be preferred to .pyc files, regardless of
- directory listing order.
- """
- mypath = FilePath(self.mktemp())
- mypath.createDirectory()
- pp = modules.PythonPath(sysPath=[mypath.path])
- originalSmartPath = pp._smartPath
- def _evilSmartPath(pathName):
- o = originalSmartPath(pathName)
- originalChildren = o.children
- def evilChildren():
- # normally this order is random; let's make sure it always
- # comes up .pyc-first.
- x = originalChildren()
- x.sort()
- x.reverse()
- return x
- o.children = evilChildren
- return o
- mypath.child("abcd.py").setContent('\n')
- compileall.compile_dir(mypath.path, quiet=True)
- # sanity check
- self.assertEquals(len(mypath.children()), 2)
- pp._smartPath = _evilSmartPath
- self.assertEquals(pp['abcd'].filePath,
- mypath.child('abcd.py'))
-
-
- def test_packageMissingPath(self):
- """
- A package can delete its __path__ for some reasons,
- C{modules.PythonPath} should be able to deal with it.
- """
- mypath = FilePath(self.mktemp())
- mypath.createDirectory()
- pp = modules.PythonPath(sysPath=[mypath.path])
- subpath = mypath.child("abcd")
- subpath.createDirectory()
- subpath.child("__init__.py").setContent('del __path__\n')
- sys.path.append(mypath.path)
- import abcd
- try:
- l = list(pp.walkModules())
- self.assertEquals(len(l), 1)
- self.assertEquals(l[0].name, 'abcd')
- finally:
- del abcd
- del sys.modules['abcd']
- sys.path.remove(mypath.path)
-
-
-
-class PathModificationTest(PySpaceTestCase):
- """
- These tests share setup/cleanup behavior of creating a dummy package and
- stuffing some code in it.
- """
-
- _serialnum = itertools.count().next # used to generate serial numbers for
- # package names.
-
- def setUp(self):
- self.pathExtensionName = self.mktemp()
- self.pathExtension = FilePath(self.pathExtensionName)
- self.pathExtension.createDirectory()
- self.packageName = "pyspacetests%d" % (self._serialnum(),)
- self.packagePath = self.pathExtension.child(self.packageName)
- self.packagePath.createDirectory()
- self.packagePath.child("__init__.py").setContent("")
- self.packagePath.child("a.py").setContent("")
- self.packagePath.child("b.py").setContent("")
- self.packagePath.child("c__init__.py").setContent("")
- self.pathSetUp = False
-
-
- def _setupSysPath(self):
- assert not self.pathSetUp
- self.pathSetUp = True
- sys.path.append(self.pathExtensionName)
-
-
- def _underUnderPathTest(self, doImport=True):
- moddir2 = self.mktemp()
- fpmd = FilePath(moddir2)
- fpmd.createDirectory()
- fpmd.child("foozle.py").setContent("x = 123\n")
- self.packagePath.child("__init__.py").setContent(
- "__path__.append(%r)\n" % (moddir2,))
- # Cut here
- self._setupSysPath()
- modinfo = modules.getModule(self.packageName)
- self.assertEquals(
- self.findByIteration(self.packageName+".foozle", modinfo,
- importPackages=doImport),
- modinfo['foozle'])
- self.assertEquals(modinfo['foozle'].load().x, 123)
-
-
- def test_underUnderPathAlreadyImported(self):
- """
- Verify that iterModules will honor the __path__ of already-loaded packages.
- """
- self._underUnderPathTest()
-
-
- def test_underUnderPathNotAlreadyImported(self):
- """
- Verify that iterModules will honor the __path__ of already-loaded packages.
- """
- self._underUnderPathTest(False)
-
-
- test_underUnderPathNotAlreadyImported.todo = (
- "This may be impossible but it sure would be nice.")
-
-
- def _listModules(self):
- pkginfo = modules.getModule(self.packageName)
- nfni = [modinfo.name.split(".")[-1] for modinfo in
- pkginfo.iterModules()]
- nfni.sort()
- self.failUnlessEqual(nfni, ['a', 'b', 'c__init__'])
-
-
- def test_listingModules(self):
- """
- Make sure the module list comes back as we expect from iterModules on a
- package, whether zipped or not.
- """
- self._setupSysPath()
- self._listModules()
-
-
- def test_listingModulesAlreadyImported(self):
- """
- Make sure the module list comes back as we expect from iterModules on a
- package, whether zipped or not, even if the package has already been
- imported.
- """
- self._setupSysPath()
- namedAny(self.packageName)
- self._listModules()
-
-
- def tearDown(self):
- # Intentionally using 'assert' here, this is not a test assertion, this
- # is just an "oh fuck what is going ON" assertion. -glyph
- if self.pathSetUp:
- HORK = "path cleanup failed: don't be surprised if other tests break"
- assert sys.path.pop() is self.pathExtensionName, HORK+", 1"
- assert self.pathExtensionName not in sys.path, HORK+", 2"
-
-
-
-class RebindingTest(PathModificationTest):
- """
- These tests verify that the default path interrogation API works properly
- even when sys.path has been rebound to a different object.
- """
- def _setupSysPath(self):
- assert not self.pathSetUp
- self.pathSetUp = True
- self.savedSysPath = sys.path
- sys.path = sys.path[:]
- sys.path.append(self.pathExtensionName)
-
-
- def tearDown(self):
- """
- Clean up sys.path by re-binding our original object.
- """
- if self.pathSetUp:
- sys.path = self.savedSysPath
-
-
-
-class ZipPathModificationTest(PathModificationTest):
- def _setupSysPath(self):
- assert not self.pathSetUp
- zipit(self.pathExtensionName, self.pathExtensionName+'.zip')
- self.pathExtensionName += '.zip'
- assert zipfile.is_zipfile(self.pathExtensionName)
- PathModificationTest._setupSysPath(self)
-
-
-class PythonPathTestCase(TestCase):
- """
- Tests for the class which provides the implementation for all of the
- public API of L{twisted.python.modules}.
- """
- def test_unhandledImporter(self):
- """
- Make sure that the behavior when encountering an unknown importer
- type is not catastrophic failure.
- """
- class SecretImporter(object):
- pass
-
- def hook(name):
- return SecretImporter()
-
- syspath = ['example/path']
- sysmodules = {}
- syshooks = [hook]
- syscache = {}
- def sysloader(name):
- return None
- space = modules.PythonPath(
- syspath, sysmodules, syshooks, syscache, sysloader)
- entries = list(space.iterEntries())
- self.assertEquals(len(entries), 1)
- self.assertRaises(KeyError, lambda: entries[0]['module'])
« no previous file with comments | « third_party/twisted_8_1/twisted/test/test_memcache.py ('k') | third_party/twisted_8_1/twisted/test/test_monkey.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698