| Index: third_party/twisted_8_1/twisted/test/test_explorer.py
|
| diff --git a/third_party/twisted_8_1/twisted/test/test_explorer.py b/third_party/twisted_8_1/twisted/test/test_explorer.py
|
| deleted file mode 100644
|
| index cf3bf96f947690c4d702a756d37ac862319fdcc3..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/test/test_explorer.py
|
| +++ /dev/null
|
| @@ -1,236 +0,0 @@
|
| -
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -"""
|
| -Test cases for explorer
|
| -"""
|
| -
|
| -from twisted.trial import unittest
|
| -
|
| -from twisted.manhole import explorer
|
| -
|
| -import types, string
|
| -
|
| -"""
|
| -# Tests:
|
| -
|
| - Get an ObjectLink. Browse ObjectLink.identifier. Is it the same?
|
| -
|
| - Watch Object. Make sure an ObjectLink is received when:
|
| - Call a method.
|
| - Set an attribute.
|
| -
|
| - Have an Object with a setattr class. Watch it.
|
| - Do both the navite setattr and the watcher get called?
|
| -
|
| - Sequences with circular references. Does it blow up?
|
| -"""
|
| -
|
| -class SomeDohickey:
|
| - def __init__(self, *a):
|
| - self.__dict__['args'] = a
|
| -
|
| - def bip(self):
|
| - return self.args
|
| -
|
| -
|
| -class TestBrowser(unittest.TestCase):
|
| - def setUp(self):
|
| - self.pool = explorer.explorerPool
|
| - self.pool.clear()
|
| - self.testThing = ["How many stairs must a man climb down?",
|
| - SomeDohickey(42)]
|
| -
|
| - def test_chain(self):
|
| - "Following a chain of Explorers."
|
| - xplorer = self.pool.getExplorer(self.testThing, 'testThing')
|
| - self.failUnlessEqual(xplorer.id, id(self.testThing))
|
| - self.failUnlessEqual(xplorer.identifier, 'testThing')
|
| -
|
| - dxplorer = xplorer.get_elements()[1]
|
| - self.failUnlessEqual(dxplorer.id, id(self.testThing[1]))
|
| -
|
| -class Watcher:
|
| - zero = 0
|
| - def __init__(self):
|
| - self.links = []
|
| -
|
| - def receiveBrowserObject(self, olink):
|
| - self.links.append(olink)
|
| -
|
| - def setZero(self):
|
| - self.zero = len(self.links)
|
| -
|
| - def len(self):
|
| - return len(self.links) - self.zero
|
| -
|
| -
|
| -class SetattrDohickey:
|
| - def __setattr__(self, k, v):
|
| - v = list(str(v))
|
| - v.reverse()
|
| - self.__dict__[k] = string.join(v, '')
|
| -
|
| -class MiddleMan(SomeDohickey, SetattrDohickey):
|
| - pass
|
| -
|
| -# class TestWatch(unittest.TestCase):
|
| -class FIXME_Watch:
|
| - def setUp(self):
|
| - self.globalNS = globals().copy()
|
| - self.localNS = {}
|
| - self.browser = explorer.ObjectBrowser(self.globalNS, self.localNS)
|
| - self.watcher = Watcher()
|
| -
|
| - def test_setAttrPlain(self):
|
| - "Triggering a watcher response by setting an attribute."
|
| -
|
| - testThing = SomeDohickey('pencil')
|
| - self.browser.watchObject(testThing, 'testThing',
|
| - self.watcher.receiveBrowserObject)
|
| - self.watcher.setZero()
|
| -
|
| - testThing.someAttr = 'someValue'
|
| -
|
| - self.failUnlessEqual(testThing.someAttr, 'someValue')
|
| - self.failUnless(self.watcher.len())
|
| - olink = self.watcher.links[-1]
|
| - self.failUnlessEqual(olink.id, id(testThing))
|
| -
|
| - def test_setAttrChain(self):
|
| - "Setting an attribute on a watched object that has __setattr__"
|
| - testThing = MiddleMan('pencil')
|
| -
|
| - self.browser.watchObject(testThing, 'testThing',
|
| - self.watcher.receiveBrowserObject)
|
| - self.watcher.setZero()
|
| -
|
| - testThing.someAttr = 'ZORT'
|
| -
|
| - self.failUnlessEqual(testThing.someAttr, 'TROZ')
|
| - self.failUnless(self.watcher.len())
|
| - olink = self.watcher.links[-1]
|
| - self.failUnlessEqual(olink.id, id(testThing))
|
| -
|
| -
|
| - def test_method(self):
|
| - "Triggering a watcher response by invoking a method."
|
| -
|
| - for testThing in (SomeDohickey('pencil'), MiddleMan('pencil')):
|
| - self.browser.watchObject(testThing, 'testThing',
|
| - self.watcher.receiveBrowserObject)
|
| - self.watcher.setZero()
|
| -
|
| - rval = testThing.bip()
|
| - self.failUnlessEqual(rval, ('pencil',))
|
| -
|
| - self.failUnless(self.watcher.len())
|
| - olink = self.watcher.links[-1]
|
| - self.failUnlessEqual(olink.id, id(testThing))
|
| -
|
| -
|
| -def function_noArgs():
|
| - "A function which accepts no arguments at all."
|
| - return
|
| -
|
| -def function_simple(a, b, c):
|
| - "A function which accepts several arguments."
|
| - return a, b, c
|
| -
|
| -def function_variable(*a, **kw):
|
| - "A function which accepts a variable number of args and keywords."
|
| - return a, kw
|
| -
|
| -def function_crazy((alpha, beta), c, d=range(4), **kw):
|
| - "A function with a mad crazy signature."
|
| - return alpha, beta, c, d, kw
|
| -
|
| -class TestBrowseFunction(unittest.TestCase):
|
| -
|
| - def setUp(self):
|
| - self.pool = explorer.explorerPool
|
| - self.pool.clear()
|
| -
|
| - def test_sanity(self):
|
| - """Basic checks for browse_function.
|
| -
|
| - Was the proper type returned? Does it have the right name and ID?
|
| - """
|
| - for f_name in ('function_noArgs', 'function_simple',
|
| - 'function_variable', 'function_crazy'):
|
| - f = eval(f_name)
|
| -
|
| - xplorer = self.pool.getExplorer(f, f_name)
|
| -
|
| - self.failUnlessEqual(xplorer.id, id(f))
|
| -
|
| - self.failUnless(isinstance(xplorer, explorer.ExplorerFunction))
|
| -
|
| - self.failUnlessEqual(xplorer.name, f_name)
|
| -
|
| - def test_signature_noArgs(self):
|
| - """Testing zero-argument function signature.
|
| - """
|
| -
|
| - xplorer = self.pool.getExplorer(function_noArgs, 'function_noArgs')
|
| -
|
| - self.failUnlessEqual(len(xplorer.signature), 0)
|
| -
|
| - def test_signature_simple(self):
|
| - """Testing simple function signature.
|
| - """
|
| -
|
| - xplorer = self.pool.getExplorer(function_simple, 'function_simple')
|
| -
|
| - expected_signature = ('a','b','c')
|
| -
|
| - self.failUnlessEqual(xplorer.signature.name, expected_signature)
|
| -
|
| - def test_signature_variable(self):
|
| - """Testing variable-argument function signature.
|
| - """
|
| -
|
| - xplorer = self.pool.getExplorer(function_variable,
|
| - 'function_variable')
|
| -
|
| - expected_names = ('a','kw')
|
| - signature = xplorer.signature
|
| -
|
| - self.failUnlessEqual(signature.name, expected_names)
|
| - self.failUnless(signature.is_varlist(0))
|
| - self.failUnless(signature.is_keyword(1))
|
| -
|
| - def test_signature_crazy(self):
|
| - """Testing function with crazy signature.
|
| - """
|
| - xplorer = self.pool.getExplorer(function_crazy, 'function_crazy')
|
| -
|
| - signature = xplorer.signature
|
| -
|
| - expected_signature = [{'name': 'c'},
|
| - {'name': 'd',
|
| - 'default': range(4)},
|
| - {'name': 'kw',
|
| - 'keywords': 1}]
|
| -
|
| - # The name of the first argument seems to be indecipherable,
|
| - # but make sure it has one (and no default).
|
| - self.failUnless(signature.get_name(0))
|
| - self.failUnless(not signature.get_default(0)[0])
|
| -
|
| - self.failUnlessEqual(signature.get_name(1), 'c')
|
| -
|
| - # Get a list of values from a list of ExplorerImmutables.
|
| - arg_2_default = map(lambda l: l.value,
|
| - signature.get_default(2)[1].get_elements())
|
| -
|
| - self.failUnlessEqual(signature.get_name(2), 'd')
|
| - self.failUnlessEqual(arg_2_default, range(4))
|
| -
|
| - self.failUnlessEqual(signature.get_name(3), 'kw')
|
| - self.failUnless(signature.is_keyword(3))
|
| -
|
| -if __name__ == '__main__':
|
| - unittest.main()
|
|
|