summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgtags2
-rw-r--r--ChangeLog7
-rw-r--r--__pkginfo__.py2
-rw-r--r--_nodes_compiler.py14
-rw-r--r--bases.py4
-rw-r--r--builder.py2
-rw-r--r--debian/changelog6
-rw-r--r--mixins.py3
-rw-r--r--node_classes.py8
-rw-r--r--nodes.py14
-rw-r--r--nodes_as_string.py6
-rw-r--r--raw_building.py1
-rw-r--r--rebuilder.py4
-rw-r--r--scoped_nodes.py15
-rw-r--r--test/regrtest.py16
-rw-r--r--test/unittest_builder.py260
-rw-r--r--test/unittest_inference.py50
-rw-r--r--test/unittest_lookup.py56
-rw-r--r--test/unittest_manager.py40
-rw-r--r--test/unittest_nodes.py86
-rw-r--r--test/unittest_scoped_nodes.py172
-rw-r--r--test/unittest_utils.py34
-rw-r--r--utils.py2
23 files changed, 410 insertions, 394 deletions
diff --git a/.hgtags b/.hgtags
index 1600e428..f56e98d9 100644
--- a/.hgtags
+++ b/.hgtags
@@ -21,3 +21,5 @@ f7b51764cde673f8775522decb19f97a939c5b70 logilab-astng-version-0.20.1
c863d9cc6c48a2588a18f75c4a3434a91aa121c7 logilab-astng-debian-version-0.20.1-1
85f38bd9cd775d1916691d5953356a73dea488e3 logilab-astng-version-0.20.2
83a9e1804d17ada2234b5cceac6a77cd867e645f logilab-astng-debian-version-0.20.2-1
+24cc9d8273ce8c15e7e73020aa3ed2d8c4d6b76d logilab-astng-version-0.20.3
+f2022f47efb0d0d9d41cd6f1e4445d51fac204dc logilab-astng-debian-version-0.20.3-1
diff --git a/ChangeLog b/ChangeLog
index 0ef69dda..69db17f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,13 @@
Change log for the astng package
================================
+ --
+ * restored python 2.3 compatibility
+
+ * fix #45959: AttributeError: 'NoneType' object has no attribute 'frame', due
+ to handling of __class__ when importing from living object (because of missing
+ source code or C-compiled object)
+
2010-09-10 -- 0.20.2
* fix astng building bug: we've to set module.package flag at the node
creation time otherwise we'll miss this information when infering relative
diff --git a/__pkginfo__.py b/__pkginfo__.py
index 2b50fa99..e23bd1ca 100644
--- a/__pkginfo__.py
+++ b/__pkginfo__.py
@@ -24,7 +24,7 @@ distname = 'logilab-astng'
modname = 'astng'
subpackage_of = 'logilab'
-numversion = (0, 20, 2)
+numversion = (0, 20, 3)
version = '.'.join([str(num) for num in numversion])
install_requires = ['logilab-common >= 0.49.0']
diff --git a/_nodes_compiler.py b/_nodes_compiler.py
index 506fbdc2..54766689 100644
--- a/_nodes_compiler.py
+++ b/_nodes_compiler.py
@@ -33,12 +33,12 @@
[1] http://docs.python.org/lib/module-compiler.ast.html
-
"""
__docformat__ = "restructuredtext en"
-from compiler.ast import Const, Node, Sliceobj
+from compiler.ast import Const, Node, Sliceobj, Function
+import sys
# nodes which are not part of astng
from compiler.ast import And as _And, Or as _Or,\
@@ -51,7 +51,7 @@ from compiler.ast import And as _And, Or as _Or,\
from logilab.astng import nodes as new
from logilab.astng.rebuilder import RebuildVisitor
-
+from logilab.common.compat import set
CONST_NAME_TRANSFORMS = {'None': None,
'True': True,
@@ -399,9 +399,10 @@ class TreeRebuilder(RebuildVisitor):
def visit_discard(self, node, parent):
"""visit a Discard node by returning a fresh instance of it"""
newnode = new.Discard()
- if node.lineno is None:
+ if sys.version_info >= (2, 4) and node.lineno is None:
# ignore dummy Discard introduced when a statement
# is ended by a semi-colon: remove it at the end of rebuilding
+ # however, it does also happen in regular Discard nodes on 2.3
self._remove_nodes.append((newnode, parent))
self._set_infos(node, newnode, parent)
self.asscontext = "Dis"
@@ -457,7 +458,8 @@ class TreeRebuilder(RebuildVisitor):
"""visit a Function node by returning a fresh instance of it"""
newnode = new.Function(node.name, node.doc)
self._set_infos(node, newnode, parent)
- newnode.decorators = self.visit(node.decorators, newnode)
+ if hasattr(node, 'decorators'):
+ newnode.decorators = self.visit(node.decorators, newnode)
newnode.args = self.visit_arguments(node, newnode)
newnode.body = [self.visit(child, newnode) for child in node.code.nodes]
return newnode
@@ -480,7 +482,7 @@ class TreeRebuilder(RebuildVisitor):
newnode.expr = self.visit(node.expr, newnode)
newnode.attrname = node.attrname
return newnode
-
+
def visit_if(self, node, parent):
"""visit an If node by returning a fresh instance of it"""
newnode = subnode = new.If()
diff --git a/bases.py b/bases.py
index ea3c9c6c..8422d676 100644
--- a/bases.py
+++ b/bases.py
@@ -51,8 +51,8 @@ except ImportError:
pass
from logilab.common.compat import set
-from logilab.astng._exceptions import (InferenceError, ASTNGError,
- NotFoundError, UnresolvableName)
+from logilab.astng._exceptions import InferenceError, ASTNGError, \
+ NotFoundError, UnresolvableName
class Proxy(BaseClass):
diff --git a/builder.py b/builder.py
index 9acda4ad..f4563ec4 100644
--- a/builder.py
+++ b/builder.py
@@ -190,6 +190,8 @@ class ASTNGBuilder:
class_node = object_build_class(node, member, name)
# recursion
self.object_build(class_node, member)
+ if name == '__class__' and class_node.parent is None:
+ class_node.parent = self._done[self._module]
elif ismethoddescriptor(member):
assert isinstance(member, object)
object_build_methoddescriptor(node, member, name)
diff --git a/debian/changelog b/debian/changelog
index aed93630..d6763e60 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+logilab-astng (0.20.3-1) unstable; urgency=low
+
+ * new upstream release
+
+ -- Sylvain Thénault <sylvain.thenault@logilab.fr> Tue, 28 Sep 2010 14:30:03 +0200
+
logilab-astng (0.20.2-1) unstable; urgency=low
* new upstream release
diff --git a/mixins.py b/mixins.py
index 7b9606b5..776c8874 100644
--- a/mixins.py
+++ b/mixins.py
@@ -33,8 +33,7 @@
"""
-from logilab.astng import (ASTNGBuildingException, InferenceError,
- NotFoundError)
+from logilab.astng import ASTNGBuildingException, InferenceError, NotFoundError
from logilab.astng.bases import BaseClass
# /!\ We cannot build a StmtNode(NodeNG) class since modifying "__bases__"
diff --git a/node_classes.py b/node_classes.py
index c5e4dcec..c9311759 100644
--- a/node_classes.py
+++ b/node_classes.py
@@ -23,10 +23,10 @@
from logilab.common.compat import chain, imap
from logilab.astng import NoDefault
-from logilab.astng.bases import (NodeNG, BaseClass, Instance, copy_context,
- _infer_stmts, YES)
-from logilab.astng.mixins import (StmtMixIn, BlockRangeMixIn, AssignTypeMixin,
- ParentAssignTypeMixin, FromImportMixIn)
+from logilab.astng.bases import NodeNG, BaseClass, Instance, copy_context, \
+ _infer_stmts, YES
+from logilab.astng.mixins import StmtMixIn, BlockRangeMixIn, AssignTypeMixin, \
+ ParentAssignTypeMixin, FromImportMixIn
def unpack_infer(stmt, context=None):
"""return an iterator on nodes inferred by the given statement if the
diff --git a/nodes.py b/nodes.py
index 7d5b4631..ce6bdcee 100644
--- a/nodes.py
+++ b/nodes.py
@@ -51,13 +51,13 @@ on From and Import :
__docformat__ = "restructuredtext en"
-from logilab.astng.node_classes import (Arguments, AssAttr, Assert,
- Assign, AssName, AugAssign, Backquote, BinOp, BoolOp, Break, CallFunc, Compare,
- Comprehension, Const, Continue, Decorators, DelAttr, DelName, Delete,
- Dict, Discard, Ellipsis, EmptyNode, ExceptHandler, Exec, ExtSlice, For,
- From, Getattr, Global, If, IfExp, Import, Index, Keyword,
- List, ListComp, Name, Pass, Print, Raise, Return, Slice, Subscript,
- TryExcept, TryFinally, Tuple, UnaryOp, While, With, Yield, const_factory )
+from logilab.astng.node_classes import Arguments, AssAttr, Assert, Assign, \
+ AssName, AugAssign, Backquote, BinOp, BoolOp, Break, CallFunc, Compare, \
+ Comprehension, Const, Continue, Decorators, DelAttr, DelName, Delete, \
+ Dict, Discard, Ellipsis, EmptyNode, ExceptHandler, Exec, ExtSlice, For, \
+ From, Getattr, Global, If, IfExp, Import, Index, Keyword, \
+ List, ListComp, Name, Pass, Print, Raise, Return, Slice, Subscript, \
+ TryExcept, TryFinally, Tuple, UnaryOp, While, With, Yield, const_factory
from logilab.astng.scoped_nodes import Module, GenExpr, Lambda, Function, Class
ALL_NODE_CLASSES = (
diff --git a/nodes_as_string.py b/nodes_as_string.py
index 6bb7d5fb..0a0f287f 100644
--- a/nodes_as_string.py
+++ b/nodes_as_string.py
@@ -63,7 +63,7 @@ class AsStringVisitor(ASTVisitor):
def _stmt_list(self, stmts):
"""return a list of nodes to string"""
- stmts = '\n'.join([nstr for nstr in (n.accept(self) for n in stmts) if nstr])
+ stmts = '\n'.join([nstr for nstr in [n.accept(self) for n in stmts] if nstr])
return INDENT + stmts.replace('\n', '\n'+INDENT)
@@ -167,7 +167,7 @@ class AsStringVisitor(ASTVisitor):
def visit_decorators(self, node):
"""return an astng.Decorators node as string"""
- return '@%s\n' % '\n@'.join(item.accept(self) for item in node.nodes)
+ return '@%s\n' % '\n@'.join([item.accept(self) for item in node.nodes])
def visit_dict(self, node):
"""return an astng.Dict node as string"""
@@ -210,7 +210,7 @@ class AsStringVisitor(ASTVisitor):
def visit_extslice(self, node):
"""return an astng.ExtSlice node as string"""
- return ','.join( dim.accept(self) for dim in node.dims )
+ return ','.join( [dim.accept(self) for dim in node.dims] )
def visit_for(self, node):
"""return an astng.For node as string"""
fors = 'for %s in %s:\n%s' % (node.target.accept(self),
diff --git a/raw_building.py b/raw_building.py
index f34961d9..534f58c5 100644
--- a/raw_building.py
+++ b/raw_building.py
@@ -31,7 +31,6 @@
# with logilab-astng. If not, see <http://www.gnu.org/licenses/>.
"""this module contains a set of functions to create astng trees from scratch
(build_* functions) or from living object (object_build_* functions)
-
"""
__docformat__ = "restructuredtext en"
diff --git a/rebuilder.py b/rebuilder.py
index d902875e..4bdbc6ca 100644
--- a/rebuilder.py
+++ b/rebuilder.py
@@ -214,11 +214,11 @@ class RebuildVisitor(object):
for name in imported.wildcard_import_names():
node.parent.set_local(name, node)
if delayed:
- node.parent.scope().locals[name].sort(cmp=cmp_nodes)
+ node.parent.scope().locals[name].sort(cmp_nodes)
else:
node.parent.set_local(asname or name, node)
if delayed:
- node.parent.scope().locals[asname or name].sort(cmp=cmp_nodes)
+ node.parent.scope().locals[asname or name].sort(cmp_nodes)
def visit_function(self, node, parent):
diff --git a/scoped_nodes.py b/scoped_nodes.py
index c890661f..9238983d 100644
--- a/scoped_nodes.py
+++ b/scoped_nodes.py
@@ -34,12 +34,12 @@ from logilab.common.decorators import cached
from logilab.astng import MANAGER, NotFoundError, NoDefault, \
ASTNGBuildingException, InferenceError
-from logilab.astng.node_classes import (Const, DelName, DelAttr,
- Dict, From, List, Name, Pass, Raise, Return, Tuple, Yield,
- are_exclusive, LookupMixIn, const_factory as cf, unpack_infer)
-from logilab.astng.bases import (NodeNG, BaseClass, InferenceContext, Instance,
- YES, Generator, UnboundMethod, BoundMethod, _infer_stmts, copy_context)
-from logilab.astng.mixins import (StmtMixIn, FilterStmtsMixin)
+from logilab.astng.node_classes import Const, DelName, DelAttr, \
+ Dict, From, List, Name, Pass, Raise, Return, Tuple, Yield, \
+ are_exclusive, LookupMixIn, const_factory as cf, unpack_infer
+from logilab.astng.bases import NodeNG, BaseClass, InferenceContext, Instance,\
+ YES, Generator, UnboundMethod, BoundMethod, _infer_stmts, copy_context
+from logilab.astng.mixins import StmtMixIn, FilterStmtsMixin
from logilab.astng.nodes_as_string import as_string
@@ -519,7 +519,6 @@ class Function(StmtMixIn, Lambda):
# (e.g. pylint...) when is_method() return True
return self.type != 'function' and isinstance(self.parent.frame(), Class)
- @cached
def decoratornames(self):
"""return a list of decorator qualified names"""
result = set()
@@ -531,7 +530,7 @@ class Function(StmtMixIn, Lambda):
for infnode in decnode.infer():
result.add(infnode.qname())
return result
-
+ decoratornames = cached(decoratornames)
def is_bound(self):
"""return true if the function is bound to an Instance or a class"""
diff --git a/test/regrtest.py b/test/regrtest.py
index 3f2267f7..5443cfe7 100644
--- a/test/regrtest.py
+++ b/test/regrtest.py
@@ -55,7 +55,7 @@ class NonRegressionTC(TestCase):
try:
import pygtk
except ImportError:
- self.skip('test skipped: pygtk is not available')
+ self.skipTest('test skipped: pygtk is not available')
else:
# XXX may fail on some pygtk version, because objects in
# gobject._gobject have __module__ set to gobject :(
@@ -94,27 +94,27 @@ if __name__ == "__main__":
try:
from pylint import lint
except ImportError:
- self.skip('pylint not available')
+ self.skipTest('pylint not available')
mod = m.astng_from_module_name('pylint.lint')
pylinter = mod['PyLinter']
- self.assertEquals([c.name for c in pylinter.ancestors()],
+ self.assertEqual([c.name for c in pylinter.ancestors()],
['OptionsManagerMixIn', 'object', 'MessagesHandlerMixIn',
'ReportsHandlerMixIn', 'BaseRawChecker', 'BaseChecker',
'OptionsProviderMixIn', 'ASTWalker'])
self.assert_(list(Instance(pylinter).getattr('config')))
infered = list(Instance(pylinter).igetattr('config'))
- self.assertEquals(len(infered), 2)
+ self.assertEqual(len(infered), 2)
infered = [c for c in infered if not c is YES]
- self.assertEquals(len(infered), 1)
- self.assertEquals(infered[0].root().name, 'optparse')
- self.assertEquals(infered[0].name, 'Values')
+ self.assertEqual(len(infered), 1)
+ self.assertEqual(infered[0].root().name, 'optparse')
+ self.assertEqual(infered[0].name, 'Values')
def test_numpy_crash(self):
try:
import numpy
except ImportError:
- self.skip('test skipped: numpy is not available')
+ self.skipTest('test skipped: numpy is not available')
else:
builder = ASTNGBuilder()
data = """
diff --git a/test/unittest_builder.py b/test/unittest_builder.py
index c40572bc..31cd333f 100644
--- a/test/unittest_builder.py
+++ b/test/unittest_builder.py
@@ -61,24 +61,24 @@ class FromToLineNoTC(TestCase):
# earzer', hop)
discard = stmts[0]
self.assertIsInstance(discard, nodes.Discard)
- self.assertEquals(discard.fromlineno, 4)
- self.assertEquals(discard.tolineno, 5)
+ self.assertEqual(discard.fromlineno, 4)
+ self.assertEqual(discard.tolineno, 5)
callfunc = discard.value
self.assertIsInstance(callfunc, nodes.CallFunc)
- self.assertEquals(callfunc.fromlineno, 4)
- self.assertEquals(callfunc.tolineno, 5)
+ self.assertEqual(callfunc.fromlineno, 4)
+ self.assertEqual(callfunc.tolineno, 5)
name = callfunc.func
self.assertIsInstance(name, nodes.Name)
- self.assertEquals(name.fromlineno, 4)
- self.assertEquals(name.tolineno, 4)
+ self.assertEqual(name.fromlineno, 4)
+ self.assertEqual(name.tolineno, 4)
strarg = callfunc.args[0]
self.assertIsInstance(strarg, nodes.Const)
- self.assertEquals(strarg.fromlineno, 5) # no way for this one (is 4 actually)
- self.assertEquals(strarg.tolineno, 5)
+ self.assertEqual(strarg.fromlineno, 5) # no way for this one (is 4 actually)
+ self.assertEqual(strarg.tolineno, 5)
namearg = callfunc.args[1]
self.assertIsInstance(namearg, nodes.Name)
- self.assertEquals(namearg.fromlineno, 5)
- self.assertEquals(namearg.tolineno, 5)
+ self.assertEqual(namearg.fromlineno, 5)
+ self.assertEqual(namearg.tolineno, 5)
# on line 10:
# fonction(1,
# 2,
@@ -86,20 +86,20 @@ class FromToLineNoTC(TestCase):
# 4)
discard = stmts[2]
self.assertIsInstance(discard, nodes.Discard)
- self.assertEquals(discard.fromlineno, 10)
- self.assertEquals(discard.tolineno, 13)
+ self.assertEqual(discard.fromlineno, 10)
+ self.assertEqual(discard.tolineno, 13)
callfunc = discard.value
self.assertIsInstance(callfunc, nodes.CallFunc)
- self.assertEquals(callfunc.fromlineno, 10)
- self.assertEquals(callfunc.tolineno, 13)
+ self.assertEqual(callfunc.fromlineno, 10)
+ self.assertEqual(callfunc.tolineno, 13)
name = callfunc.func
self.assertIsInstance(name, nodes.Name)
- self.assertEquals(name.fromlineno, 10)
- self.assertEquals(name.tolineno, 10)
+ self.assertEqual(name.fromlineno, 10)
+ self.assertEqual(name.tolineno, 10)
for i, arg in enumerate(callfunc.args):
self.assertIsInstance(arg, nodes.Const)
- self.assertEquals(arg.fromlineno, 10+i)
- self.assertEquals(arg.tolineno, 10+i)
+ self.assertEqual(arg.fromlineno, 10+i)
+ self.assertEqual(arg.tolineno, 10+i)
def test_function_lineno(self):
stmts = self.astng.body
@@ -110,17 +110,17 @@ class FromToLineNoTC(TestCase):
# return a + b + c
function = stmts[3]
self.assertIsInstance(function, nodes.Function)
- self.assertEquals(function.fromlineno, 15)
- self.assertEquals(function.tolineno, 18)
- self.assertEquals(function.blockstart_tolineno, 17)
+ self.assertEqual(function.fromlineno, 15)
+ self.assertEqual(function.tolineno, 18)
+ self.assertEqual(function.blockstart_tolineno, 17)
return_ = function.body[0]
self.assertIsInstance(return_, nodes.Return)
- self.assertEquals(return_.fromlineno, 18)
- self.assertEquals(return_.tolineno, 18)
+ self.assertEqual(return_.fromlineno, 18)
+ self.assertEqual(return_.tolineno, 18)
def test_decorated_function_lineno(self):
if sys.version_info < (2, 4):
- self.skip('require python >=2.4')
+ self.skipTest('require python >=2.4')
astng = builder.ASTNGBuilder().string_build('''
@decorator
def function(
@@ -128,11 +128,11 @@ def function(
print arg
''', __name__, __file__)
function = astng['function']
- self.assertEquals(function.fromlineno, 3) # XXX discussable, but that's what is expected by pylint right now
- self.assertEquals(function.tolineno, 5)
- self.assertEquals(function.blockstart_tolineno, 4)
- self.assertEquals(function.decorators.fromlineno, 2)
- self.assertEquals(function.decorators.tolineno, 2)
+ self.assertEqual(function.fromlineno, 3) # XXX discussable, but that's what is expected by pylint right now
+ self.assertEqual(function.tolineno, 5)
+ self.assertEqual(function.blockstart_tolineno, 4)
+ self.assertEqual(function.decorators.fromlineno, 2)
+ self.assertEqual(function.decorators.tolineno, 2)
def test_class_lineno(self):
@@ -143,13 +143,13 @@ def function(
# pass
class_ = stmts[4]
self.assertIsInstance(class_, nodes.Class)
- self.assertEquals(class_.fromlineno, 20)
- self.assertEquals(class_.tolineno, 22)
- self.assertEquals(class_.blockstart_tolineno, 21)
+ self.assertEqual(class_.fromlineno, 20)
+ self.assertEqual(class_.tolineno, 22)
+ self.assertEqual(class_.blockstart_tolineno, 21)
pass_ = class_.body[0]
self.assertIsInstance(pass_, nodes.Pass)
- self.assertEquals(pass_.fromlineno, 22)
- self.assertEquals(pass_.tolineno, 22)
+ self.assertEqual(pass_.fromlineno, 22)
+ self.assertEqual(pass_.tolineno, 22)
def test_if_lineno(self):
stmts = self.astng.body
@@ -160,11 +160,11 @@ def function(
# aaaa,bbbb = bbbb,aaaa
if_ = stmts[5]
self.assertIsInstance(if_, nodes.If)
- self.assertEquals(if_.fromlineno, 24)
- self.assertEquals(if_.tolineno, 27)
- self.assertEquals(if_.blockstart_tolineno, 24)
- self.assertEquals(if_.orelse[0].fromlineno, 26)
- self.assertEquals(if_.orelse[1].tolineno, 27)
+ self.assertEqual(if_.fromlineno, 24)
+ self.assertEqual(if_.tolineno, 27)
+ self.assertEqual(if_.blockstart_tolineno, 24)
+ self.assertEqual(if_.orelse[0].fromlineno, 26)
+ self.assertEqual(if_.orelse[1].tolineno, 27)
def test_for_while_lineno(self):
for code in ('''
@@ -183,11 +183,11 @@ else:
):
astng = builder.ASTNGBuilder().string_build(code, __name__, __file__)
stmt = astng.body[0]
- self.assertEquals(stmt.fromlineno, 2)
- self.assertEquals(stmt.tolineno, 6)
- self.assertEquals(stmt.blockstart_tolineno, 2)
- self.assertEquals(stmt.orelse[0].fromlineno, 6) # XXX
- self.assertEquals(stmt.orelse[0].tolineno, 6)
+ self.assertEqual(stmt.fromlineno, 2)
+ self.assertEqual(stmt.tolineno, 6)
+ self.assertEqual(stmt.blockstart_tolineno, 2)
+ self.assertEqual(stmt.orelse[0].fromlineno, 6) # XXX
+ self.assertEqual(stmt.orelse[0].tolineno, 6)
def test_try_except_lineno(self):
@@ -200,15 +200,15 @@ else:
print "bouh"
''', __name__, __file__)
try_ = astng.body[0]
- self.assertEquals(try_.fromlineno, 2)
- self.assertEquals(try_.tolineno, 7)
- self.assertEquals(try_.blockstart_tolineno, 2)
- self.assertEquals(try_.orelse[0].fromlineno, 7) # XXX
- self.assertEquals(try_.orelse[0].tolineno, 7)
+ self.assertEqual(try_.fromlineno, 2)
+ self.assertEqual(try_.tolineno, 7)
+ self.assertEqual(try_.blockstart_tolineno, 2)
+ self.assertEqual(try_.orelse[0].fromlineno, 7) # XXX
+ self.assertEqual(try_.orelse[0].tolineno, 7)
hdlr = try_.handlers[0]
- self.assertEquals(hdlr.fromlineno, 4)
- self.assertEquals(hdlr.tolineno, 5)
- self.assertEquals(hdlr.blockstart_tolineno, 4)
+ self.assertEqual(hdlr.fromlineno, 4)
+ self.assertEqual(hdlr.tolineno, 5)
+ self.assertEqual(hdlr.blockstart_tolineno, 4)
def test_try_finally_lineno(self):
@@ -219,16 +219,16 @@ finally:
print "bouh"
''', __name__, __file__)
try_ = astng.body[0]
- self.assertEquals(try_.fromlineno, 2)
- self.assertEquals(try_.tolineno, 5)
- self.assertEquals(try_.blockstart_tolineno, 2)
- self.assertEquals(try_.finalbody[0].fromlineno, 5) # XXX
- self.assertEquals(try_.finalbody[0].tolineno, 5)
+ self.assertEqual(try_.fromlineno, 2)
+ self.assertEqual(try_.tolineno, 5)
+ self.assertEqual(try_.blockstart_tolineno, 2)
+ self.assertEqual(try_.finalbody[0].fromlineno, 5) # XXX
+ self.assertEqual(try_.finalbody[0].tolineno, 5)
def test_try_finally_25_lineno(self):
if sys.version_info < (2, 5):
- self.skip('require python >= 2.5')
+ self.skipTest('require python >= 2.5')
astng = builder.ASTNGBuilder().string_build('''
try:
print a
@@ -238,25 +238,25 @@ finally:
print "bouh"
''', __name__, __file__)
try_ = astng.body[0]
- self.assertEquals(try_.fromlineno, 2)
- self.assertEquals(try_.tolineno, 7)
- self.assertEquals(try_.blockstart_tolineno, 2)
- self.assertEquals(try_.finalbody[0].fromlineno, 7) # XXX
- self.assertEquals(try_.finalbody[0].tolineno, 7)
+ self.assertEqual(try_.fromlineno, 2)
+ self.assertEqual(try_.tolineno, 7)
+ self.assertEqual(try_.blockstart_tolineno, 2)
+ self.assertEqual(try_.finalbody[0].fromlineno, 7) # XXX
+ self.assertEqual(try_.finalbody[0].tolineno, 7)
def test_with_lineno(self):
if sys.version_info < (2, 5):
- self.skip('require python >=2.5')
+ self.skipTest('require python >=2.5')
astng = builder.ASTNGBuilder().string_build('''
from __future__ import with_statement
with file("/tmp/pouet") as f:
print f
''', __name__, __file__)
with_ = astng.body[1]
- self.assertEquals(with_.fromlineno, 3)
- self.assertEquals(with_.tolineno, 4)
- self.assertEquals(with_.blockstart_tolineno, 3)
+ self.assertEqual(with_.fromlineno, 3)
+ self.assertEqual(with_.tolineno, 4)
+ self.assertEqual(with_.blockstart_tolineno, 3)
@@ -283,7 +283,7 @@ class BuilderTC(TestCase):
self.assertIsInstance(fclass['read'], nodes.Function)
# check builtin function has args.args == None
dclass = builtin_astng['dict']
- self.assertEquals(dclass['has_key'].args.args, None)
+ self.assertEqual(dclass['has_key'].args.args, None)
# just check type and object are there
builtin_astng.getattr('type')
builtin_astng.getattr('object')
@@ -303,14 +303,14 @@ class BuilderTC(TestCase):
def test_inspect_build1(self):
time_astng = MANAGER.astng_from_module_name('time')
self.assert_(time_astng)
- self.assertEquals(time_astng['time'].args.defaults, [])
+ self.assertEqual(time_astng['time'].args.defaults, [])
def test_inspect_build2(self):
"""test astng tree build from a living object"""
try:
from mx import DateTime
except ImportError:
- self.skip('test skipped: mxDateTime is not available')
+ self.skipTest('test skipped: mxDateTime is not available')
else:
dt_astng = self.builder.inspect_build(DateTime)
dt_astng.getattr('DateTime')
@@ -339,25 +339,25 @@ class BuilderTC(TestCase):
builtin_astng = MANAGER.astng_from_module_name('__builtin__')
infered = list(builtin_astng.igetattr('object'))
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
infered = infered[0]
- self.assertEquals(infered.name, 'object')
+ self.assertEqual(infered.name, 'object')
as_string(infered)
infered = list(builtin_astng.igetattr('type'))
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
infered = infered[0]
- self.assertEquals(infered.name, 'type')
+ self.assertEqual(infered.name, 'type')
as_string(infered)
def test_package_name(self):
"""test base properties and method of a astng module"""
datap = self.builder.file_build('data/__init__.py', 'data')
- self.assertEquals(datap.name, 'data')
- self.assertEquals(datap.package, 1)
+ self.assertEqual(datap.name, 'data')
+ self.assertEqual(datap.package, 1)
datap = self.builder.file_build('data/__init__.py', 'data.__init__')
- self.assertEquals(datap.name, 'data')
- self.assertEquals(datap.package, 1)
+ self.assertEqual(datap.name, 'data')
+ self.assertEqual(datap.package, 1)
def test_yield_parent(self):
"""check if we added discard nodes as yield parent (w/ compiler)"""
@@ -465,18 +465,18 @@ class FileBuildTC(TestCase):
def test_module_base_props(self):
"""test base properties and method of a astng module"""
module = self.module
- self.assertEquals(module.name, 'data.module')
- self.assertEquals(module.doc, "test module for astng\n")
- self.assertEquals(module.fromlineno, 0)
- self.assertEquals(module.parent, None)
- self.assertEquals(module.frame(), module)
- self.assertEquals(module.root(), module)
- self.assertEquals(module.file, join(abspath(data.__path__[0]), 'module.py'))
- self.assertEquals(module.pure_python, 1)
- self.assertEquals(module.package, 0)
+ self.assertEqual(module.name, 'data.module')
+ self.assertEqual(module.doc, "test module for astng\n")
+ self.assertEqual(module.fromlineno, 0)
+ self.assertEqual(module.parent, None)
+ self.assertEqual(module.frame(), module)
+ self.assertEqual(module.root(), module)
+ self.assertEqual(module.file, join(abspath(data.__path__[0]), 'module.py'))
+ self.assertEqual(module.pure_python, 1)
+ self.assertEqual(module.package, 0)
self.assert_(not module.is_statement)
- self.assertEquals(module.statement(), module)
- self.assertEquals(module.statement(), module)
+ self.assertEqual(module.statement(), module)
+ self.assertEqual(module.statement(), module)
def test_module_locals(self):
"""test the 'locals' dictionary of a astng module"""
@@ -490,43 +490,43 @@ class FileBuildTC(TestCase):
'os', 'redirect', 'spawn', 'LocalsVisitor',
'ASTWalker', 'ASTVisitor']
should.sort()
- self.assertEquals(keys, should)
+ self.assertEqual(keys, should)
def test_function_base_props(self):
"""test base properties and method of a astng function"""
module = self.module
function = module['global_access']
- self.assertEquals(function.name, 'global_access')
- self.assertEquals(function.doc, 'function test')
- self.assertEquals(function.fromlineno, 15)
+ self.assertEqual(function.name, 'global_access')
+ self.assertEqual(function.doc, 'function test')
+ self.assertEqual(function.fromlineno, 15)
self.assert_(function.parent)
- self.assertEquals(function.frame(), function)
- self.assertEquals(function.parent.frame(), module)
- self.assertEquals(function.root(), module)
- self.assertEquals([n.name for n in function.args.args], ['key', 'val'])
- self.assertEquals(function.type, 'function')
+ self.assertEqual(function.frame(), function)
+ self.assertEqual(function.parent.frame(), module)
+ self.assertEqual(function.root(), module)
+ self.assertEqual([n.name for n in function.args.args], ['key', 'val'])
+ self.assertEqual(function.type, 'function')
def test_function_locals(self):
"""test the 'locals' dictionary of a astng function"""
_locals = self.module['global_access'].locals
- self.assertEquals(len(_locals), 4)
+ self.assertEqual(len(_locals), 4)
keys = _locals.keys()
keys.sort()
- self.assertEquals(keys, ['i', 'key', 'local', 'val'])
+ self.assertEqual(keys, ['i', 'key', 'local', 'val'])
def test_class_base_props(self):
"""test base properties and method of a astng class"""
module = self.module
klass = module['YO']
- self.assertEquals(klass.name, 'YO')
- self.assertEquals(klass.doc, 'hehe')
- self.assertEquals(klass.fromlineno, 28)
+ self.assertEqual(klass.name, 'YO')
+ self.assertEqual(klass.doc, 'hehe')
+ self.assertEqual(klass.fromlineno, 28)
self.assert_(klass.parent)
- self.assertEquals(klass.frame(), klass)
- self.assertEquals(klass.parent.frame(), module)
- self.assertEquals(klass.root(), module)
- self.assertEquals(klass.basenames, [])
- self.assertEquals(klass.newstyle, False)
+ self.assertEqual(klass.frame(), klass)
+ self.assertEqual(klass.parent.frame(), module)
+ self.assertEqual(klass.root(), module)
+ self.assertEqual(klass.basenames, [])
+ self.assertEqual(klass.newstyle, False)
def test_class_locals(self):
"""test the 'locals' dictionary of a astng class"""
@@ -535,56 +535,56 @@ class FileBuildTC(TestCase):
locals1 = klass1.locals
keys = locals1.keys()
keys.sort()
- self.assertEquals(keys, ['__init__', 'a'])
+ self.assertEqual(keys, ['__init__', 'a'])
klass2 = module['YOUPI']
locals2 = klass2.locals
keys = locals2.keys()
keys.sort()
- self.assertEquals(keys, ['__init__', 'class_attr', 'class_method',
+ self.assertEqual(keys, ['__init__', 'class_attr', 'class_method',
'method', 'static_method'])
def test_class_instance_attrs(self):
module = self.module
klass1 = module['YO']
klass2 = module['YOUPI']
- self.assertEquals(klass1.instance_attrs.keys(), ['yo'])
- self.assertEquals(klass2.instance_attrs.keys(), ['member'])
+ self.assertEqual(klass1.instance_attrs.keys(), ['yo'])
+ self.assertEqual(klass2.instance_attrs.keys(), ['member'])
def test_class_basenames(self):
module = self.module
klass1 = module['YO']
klass2 = module['YOUPI']
- self.assertEquals(klass1.basenames, [])
- self.assertEquals(klass2.basenames, ['YO'])
+ self.assertEqual(klass1.basenames, [])
+ self.assertEqual(klass2.basenames, ['YO'])
def test_method_base_props(self):
"""test base properties and method of a astng method"""
klass2 = self.module['YOUPI']
# "normal" method
method = klass2['method']
- self.assertEquals(method.name, 'method')
- self.assertEquals([n.name for n in method.args.args], ['self'])
- self.assertEquals(method.doc, 'method test')
- self.assertEquals(method.fromlineno, 48)
- self.assertEquals(method.type, 'method')
+ self.assertEqual(method.name, 'method')
+ self.assertEqual([n.name for n in method.args.args], ['self'])
+ self.assertEqual(method.doc, 'method test')
+ self.assertEqual(method.fromlineno, 48)
+ self.assertEqual(method.type, 'method')
# class method
method = klass2['class_method']
- self.assertEquals([n.name for n in method.args.args], ['cls'])
- self.assertEquals(method.type, 'classmethod')
+ self.assertEqual([n.name for n in method.args.args], ['cls'])
+ self.assertEqual(method.type, 'classmethod')
# static method
method = klass2['static_method']
- self.assertEquals(method.args.args, [])
- self.assertEquals(method.type, 'staticmethod')
+ self.assertEqual(method.args.args, [])
+ self.assertEqual(method.type, 'staticmethod')
def test_method_locals(self):
"""test the 'locals' dictionary of a astng method"""
klass2 = self.module['YOUPI']
method = klass2['method']
_locals = method.locals
- self.assertEquals(len(_locals), 5)
+ self.assertEqual(len(_locals), 5)
keys = _locals.keys()
keys.sort()
- self.assertEquals(keys, ['a', 'autre', 'b', 'local', 'self'])
+ self.assertEqual(keys, ['a', 'autre', 'b', 'local', 'self'])
class ModuleBuildTC(FileBuildTC):
@@ -609,7 +609,7 @@ A.ass_type = A_ass_type
'''
astng = self.builder.string_build(code)
lclass = list(astng.igetattr('A'))
- self.assertEquals(len(lclass), 1)
+ self.assertEqual(len(lclass), 1)
lclass = lclass[0]
self.assert_('ass_type' in lclass.locals, lclass.locals.keys())
self.assert_('type' in lclass.locals.keys())
@@ -621,7 +621,7 @@ A.ass_type = A_ass_type
# astastng = astng.MANAGER.astng_from_file(join(compiler.__path__[0], 'ast.py'))
# # check monkey patching of the compiler module has been inferred
# lclass = list(astastng.igetattr('Function'))
-# self.assertEquals(len(lclass), 1)
+# self.assertEqual(len(lclass), 1)
# lclass = lclass[0]
# self.assert_('ass_type' in lclass.locals, lclass.locals.keys())
@@ -674,10 +674,10 @@ def func():
astng = self.builder.string_build(code)
none, nothing, chain = [ret.value for ret in astng.body[0].body]
self.assertIsInstance(none, nodes.Const)
- self.assertEquals(none.value, None)
- self.assertEquals(nothing, None)
+ self.assertEqual(none.value, None)
+ self.assertEqual(nothing, None)
self.assertIsInstance(chain, nodes.Const)
- self.assertEquals(chain.value, 'None')
+ self.assertEqual(chain.value, 'None')
if __name__ == '__main__':
diff --git a/test/unittest_inference.py b/test/unittest_inference.py
index 86b7654d..92dbd0de 100644
--- a/test/unittest_inference.py
+++ b/test/unittest_inference.py
@@ -720,7 +720,7 @@ un = mirror(1)
def test_factory_method(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
code = '''
class Super(object):
@classmethod
@@ -870,7 +870,7 @@ x = randint(1)
# The __name__ trick here makes it work when invoked directly
# (__name__ == '__main__') and through pytest (__name__ ==
# 'unittest_inference')
- self.assertEquals(value, ['Instance of %s.myarray' % (__name__,),
+ self.assertEqual(value, ['Instance of %s.myarray' % (__name__,),
'Instance of __builtin__.int'])
def test_nonregr_lambda_arg(self):
@@ -908,16 +908,16 @@ def f(x):
def test_python25_relative_import(self):
if sys.version_info < (2, 5):
- self.skip('require py >= 2.5')
+ self.skipTest('require py >= 2.5')
data = "from ...common import date; print date"
astng = builder.string_build(data, 'logilab.astng.test.unittest_inference', __file__)
infered = get_name_node(astng, 'date').infer().next()
self.assertIsInstance(infered, nodes.Module)
- self.assertEquals(infered.name, 'logilab.common.date')
+ self.assertEqual(infered.name, 'logilab.common.date')
def test_python25_no_relative_import(self):
if sys.version_info < (2, 5):
- self.skip('require py >= 2.5')
+ self.skipTest('require py >= 2.5')
# data = 'import unittest_lookup; print unittest_lookup'
# astng = builder.string_build(data, 'logilab.astng.test.unittest_inference', __file__)
# self.failIf(astng.absolute_import_activated())
@@ -934,7 +934,7 @@ def f(x):
# try:
# import mechanize
# except ImportError:
-# self.skip('require mechanize installed')
+# self.skipTest('require mechanize installed')
# data = '''from mechanize import Browser
# print Browser
# b = Browser()
@@ -945,14 +945,14 @@ def f(x):
# self.assertIsInstance(browser, nodes.Class)
# print '*'*80
# bopen = list(browser.igetattr('open'))
-# self.assertEquals(len(bopen), 1)
+# self.assertEqual(len(bopen), 1)
# self.assertIsInstance(bopen[0], nodes.Function)
# self.failUnless(bopen[0].callable())
# print '*'*80
# b = get_name_node(astng, 'b').infer().next()
# self.assertIsInstance(b, Instance)
# bopen = list(b.igetattr('open'))
-# self.assertEquals(len(bopen), 1)
+# self.assertEqual(len(bopen), 1)
# self.assertIsInstance(bopen[0], BoundMethod)
# self.failUnless(bopen[0].callable())
@@ -973,22 +973,22 @@ print SendMailController().smtp
print SendMailController().me
'''
astng = builder.string_build(code, __name__, __file__)
- self.assertEquals(astng['SendMailController']['smtp'].decoratornames(),
+ self.assertEqual(astng['SendMailController']['smtp'].decoratornames(),
set(('__builtin__.property',)))
propinfered = list(astng.body[2].values[0].infer())
- self.assertEquals(len(propinfered), 1)
+ self.assertEqual(len(propinfered), 1)
propinfered = propinfered[0]
self.assertIsInstance(propinfered, Instance)
- self.assertEquals(propinfered.name, 'SMTP')
- self.assertEquals(propinfered.root().name, 'smtplib')
- self.assertEquals(astng['SendMailController']['me'].decoratornames(),
+ self.assertEqual(propinfered.name, 'SMTP')
+ self.assertEqual(propinfered.root().name, 'smtplib')
+ self.assertEqual(astng['SendMailController']['me'].decoratornames(),
set(('__builtin__.property',)))
propinfered = list(astng.body[3].values[0].infer())
- self.assertEquals(len(propinfered), 1)
+ self.assertEqual(len(propinfered), 1)
propinfered = propinfered[0]
self.assertIsInstance(propinfered, Instance)
- self.assertEquals(propinfered.name, 'SendMailController')
- self.assertEquals(propinfered.root().name, __name__)
+ self.assertEqual(propinfered.name, 'SendMailController')
+ self.assertEqual(propinfered.root().name, __name__)
def test_im_func_unwrap(self):
@@ -1007,11 +1007,11 @@ class EnvBasedTC2:
astng = builder.string_build(code, __name__, __file__)
pactions = get_name_node(astng, 'pactions')
infered = list(pactions.infer())
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Function)
pactions = get_name_node(astng['EnvBasedTC2'], 'pactions')
infered = list(pactions.infer())
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Function)
def test_augassign(self):
@@ -1023,9 +1023,9 @@ print a
astng = builder.string_build(code, __name__, __file__)
infered = list(get_name_node(astng, 'a').infer())
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
self.assertIsInstance(infered[0], nodes.Const)
- self.assertEquals(infered[0].value, 3)
+ self.assertEqual(infered[0].value, 3)
def test_nonregr_func_arg(self):
code = '''
@@ -1039,7 +1039,7 @@ def foo(self, bar):
'''
astng = builder.string_build(code, __name__, __file__)
infered = list(get_name_node(astng['foo'], 'spam').infer())
- self.assertEquals(len(infered), 1)
+ self.assertEqual(len(infered), 1)
self.assertIs(infered[0], YES)
def test_nonregr_func_global(self):
@@ -1064,9 +1064,9 @@ class DataManager(object):
'''
astng = builder.string_build(code, __name__, __file__)
infered = list(Instance(astng['DataManager']).igetattr('app'))
- self.assertEquals(len(infered), 2, infered) # None / Instance(Application)
+ self.assertEqual(len(infered), 2, infered) # None / Instance(Application)
infered = list(get_name_node(astng['DataManager']['test'], 'p').infer())
- self.assertEquals(len(infered), 2, infered)
+ self.assertEqual(len(infered), 2, infered)
for node in infered:
if isinstance(node, Instance) and node.name == 'Application':
break
@@ -1100,10 +1100,10 @@ Z = test()
'''
astng = builder.string_build(code, __name__, __file__)
infered = list(astng['Z'].infer())
- self.assertEquals(len(infered), 1, infered)
+ self.assertEqual(len(infered), 1, infered)
self.assertIsInstance(infered[0], Instance)
self.assertIsInstance(infered[0]._proxied, nodes.Class)
- self.assertEquals(infered[0]._proxied.name, 'list')
+ self.assertEqual(infered[0]._proxied.name, 'list')
if __name__ == '__main__':
unittest_main()
diff --git a/test/unittest_lookup.py b/test/unittest_lookup.py
index 6878a45d..ae6d9bc9 100644
--- a/test/unittest_lookup.py
+++ b/test/unittest_lookup.py
@@ -78,14 +78,14 @@ def func():
astng = builder.string_build('pass', __name__, __file__)
# built-in objects
none = astng.ilookup('None').next()
- self.assertEquals(none.value, None)
+ self.assertEqual(none.value, None)
obj = astng.ilookup('object').next()
self.assertIsInstance(obj, nodes.Class)
- self.assertEquals(obj.name, 'object')
+ self.assertEqual(obj.name, 'object')
self.assertRaises(InferenceError, astng.ilookup('YOAA').next)
# XXX
- self.assertEquals(len(list(NONREGR.ilookup('enumerate'))), 2)
+ self.assertEqual(len(list(NONREGR.ilookup('enumerate'))), 2)
def test_class_ancestor_name(self):
code = '''
@@ -99,7 +99,7 @@ class A(A):
cls1 = astng.locals['A'][0]
cls2 = astng.locals['A'][1]
name = cls2.nodes_of_class(nodes.Name).next()
- self.assertEquals(name.infer().next(), cls1)
+ self.assertEqual(name.infer().next(), cls1)
### backport those test to inline code
def test_method(self):
@@ -107,7 +107,7 @@ class A(A):
my_dict = method.ilookup('MY_DICT').next()
self.assert_(isinstance(my_dict, nodes.Dict), my_dict)
none = method.ilookup('None').next()
- self.assertEquals(none.value, None)
+ self.assertEqual(none.value, None)
self.assertRaises(InferenceError, method.ilookup('YOAA').next)
@@ -115,8 +115,8 @@ class A(A):
make_class = MODULE2['make_class']
base = make_class.ilookup('base').next()
self.assert_(isinstance(base, nodes.Class), base.__class__)
- self.assertEquals(base.name, 'YO')
- self.assertEquals(base.root().name, 'data.module')
+ self.assertEqual(base.name, 'YO')
+ self.assertEqual(base.root().name, 'data.module')
def test_class(self):
@@ -124,16 +124,16 @@ class A(A):
my_dict = klass.ilookup('MY_DICT').next()
self.assertIsInstance(my_dict, nodes.Dict)
none = klass.ilookup('None').next()
- self.assertEquals(none.value, None)
+ self.assertEqual(none.value, None)
obj = klass.ilookup('object').next()
self.assertIsInstance(obj, nodes.Class)
- self.assertEquals(obj.name, 'object')
+ self.assertEqual(obj.name, 'object')
self.assertRaises(InferenceError, klass.ilookup('YOAA').next)
def test_inner_classes(self):
ccc = NONREGR['Ccc']
- self.assertEquals(ccc.ilookup('Ddd').next().name, 'Ddd')
+ self.assertEqual(ccc.ilookup('Ddd').next().name, 'Ddd')
def test_loopvar_hiding(self):
@@ -147,26 +147,26 @@ if x > 0:
""", __name__, __file__)
xnames = [n for n in astng.nodes_of_class(nodes.Name) if n.name == 'x']
# inside the loop, only one possible assignment
- self.assertEquals(len(xnames[0].lookup('x')[1]), 1)
+ self.assertEqual(len(xnames[0].lookup('x')[1]), 1)
# outside the loop, two possible assignments
- self.assertEquals(len(xnames[1].lookup('x')[1]), 2)
- self.assertEquals(len(xnames[2].lookup('x')[1]), 2)
+ self.assertEqual(len(xnames[1].lookup('x')[1]), 2)
+ self.assertEqual(len(xnames[2].lookup('x')[1]), 2)
def test_list_comps(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
astng = builder.string_build("""
print [ i for i in range(10) ]
print [ i for i in range(10) ]
print list( i for i in range(10) )
""", __name__, __file__)
xnames = [n for n in astng.nodes_of_class(nodes.Name) if n.name == 'i']
- self.assertEquals(len(xnames[0].lookup('i')[1]), 1)
- self.assertEquals(xnames[0].lookup('i')[1][0].lineno, 2)
- self.assertEquals(len(xnames[1].lookup('i')[1]), 1)
- self.assertEquals(xnames[1].lookup('i')[1][0].lineno, 3)
- self.assertEquals(len(xnames[2].lookup('i')[1]), 1)
- self.assertEquals(xnames[2].lookup('i')[1][0].lineno, 4)
+ self.assertEqual(len(xnames[0].lookup('i')[1]), 1)
+ self.assertEqual(xnames[0].lookup('i')[1][0].lineno, 2)
+ self.assertEqual(len(xnames[1].lookup('i')[1]), 1)
+ self.assertEqual(xnames[1].lookup('i')[1][0].lineno, 3)
+ self.assertEqual(len(xnames[2].lookup('i')[1]), 1)
+ self.assertEqual(xnames[2].lookup('i')[1][0].lineno, 4)
def test_explicit___name__(self):
@@ -198,21 +198,21 @@ def initialize(linter):
package_load(linter, __path__[0])
''', 'data.__init__', 'data/__init__.py')
path = [n for n in astng.nodes_of_class(nodes.Name) if n.name == '__path__'][0]
- self.assertEquals(len(path.lookup('__path__')[1]), 1)
+ self.assertEqual(len(path.lookup('__path__')[1]), 1)
def test_builtin_lookup(self):
- self.assertEquals(builtin_lookup('__dict__')[1], ())
+ self.assertEqual(builtin_lookup('__dict__')[1], ())
intstmts = builtin_lookup('int')[1]
- self.assertEquals(len(intstmts), 1)
+ self.assertEqual(len(intstmts), 1)
self.assertIsInstance(intstmts[0], nodes.Class)
- self.assertEquals(intstmts[0].name, 'int')
+ self.assertEqual(intstmts[0].name, 'int')
self.assertIs(intstmts[0], nodes.const_factory(1)._proxied)
def test_decorator_arguments_lookup(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
code = '''
def decorator(value):
def wrapper(function):
@@ -231,13 +231,13 @@ class foo:
it = member.infer()
obj = it.next()
self.assertIsInstance(obj, nodes.Const)
- self.assertEquals(obj.value, 10)
+ self.assertEqual(obj.value, 10)
self.assertRaises(StopIteration, it.next)
def test_inner_decorator_member_lookup(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
code = '''
class FileA:
def decorator(bla):
@@ -257,7 +257,7 @@ class FileA:
def test_static_method_lookup(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
code = '''
class FileA:
@staticmethod
diff --git a/test/unittest_manager.py b/test/unittest_manager.py
index 51c926ac..faf7e519 100644
--- a/test/unittest_manager.py
+++ b/test/unittest_manager.py
@@ -30,19 +30,19 @@ class ASTNGManagerTC(unittest.TestCase):
def test_astng_from_module(self):
astng = self.manager.astng_from_module(unittest)
- self.assertEquals(astng.pure_python, True)
+ self.assertEqual(astng.pure_python, True)
import time
astng = self.manager.astng_from_module(time)
- self.assertEquals(astng.pure_python, False)
+ self.assertEqual(astng.pure_python, False)
def test_astng_from_class(self):
astng = self.manager.astng_from_class(file)
- self.assertEquals(astng.name, 'file')
- self.assertEquals(astng.parent.frame().name, '__builtin__')
+ self.assertEqual(astng.name, 'file')
+ self.assertEqual(astng.parent.frame().name, '__builtin__')
astng = self.manager.astng_from_class(object)
- self.assertEquals(astng.name, 'object')
- self.assertEquals(astng.parent.frame().name, '__builtin__')
+ self.assertEqual(astng.name, 'object')
+ self.assertEqual(astng.parent.frame().name, '__builtin__')
self.failUnless('__setattr__' in astng)
def _test_astng_from_zip(self, archive):
@@ -51,7 +51,7 @@ class ASTNGManagerTC(unittest.TestCase):
sys.path.insert(0, join(dirname(__file__), 'data', archive))
try:
module = self.manager.astng_from_module_name('mypypa')
- self.assertEquals(module.name, 'mypypa')
+ self.assertEqual(module.name, 'mypypa')
self.failUnless(module.file.endswith('%s/mypypa' % archive),
module.file)
finally:
@@ -65,8 +65,8 @@ class ASTNGManagerTC(unittest.TestCase):
def test_from_directory(self):
obj = self.manager.from_directory('data')
- self.assertEquals(obj.name, 'data')
- self.assertEquals(obj.path, join(os.getcwd(), 'data'))
+ self.assertEqual(obj.name, 'data')
+ self.assertEqual(obj.path, join(os.getcwd(), 'data'))
def test_package_node(self):
obj = self.manager.from_directory('data')
@@ -75,20 +75,20 @@ class ASTNGManagerTC(unittest.TestCase):
expected_long = ['SSL1', 'data', 'data.all', 'appl', 'data.format', 'data.module',
'data.module2', 'data.noendingnewline', 'data.nonregr',
'data.notall']
- self.assertEquals(obj.keys(), expected_short)
- self.assertEquals([m.name for m in obj.values()], expected_long)
- self.assertEquals([m for m in list(obj)], expected_short)
- self.assertEquals([(name, m.name) for name, m in obj.items()],
+ self.assertEqual(obj.keys(), expected_short)
+ self.assertEqual([m.name for m in obj.values()], expected_long)
+ self.assertEqual([m for m in list(obj)], expected_short)
+ self.assertEqual([(name, m.name) for name, m in obj.items()],
zip(expected_short, expected_long))
- self.assertEquals([(name, m.name) for name, m in obj.items()],
+ self.assertEqual([(name, m.name) for name, m in obj.items()],
zip(expected_short, expected_long))
- self.assertEquals('module' in obj, True)
- self.assertEquals(obj.has_key('module'), True)
- self.assertEquals(obj.get('module').name, 'data.module')
- self.assertEquals(obj['module'].name, 'data.module')
- self.assertEquals(obj.get('whatever'), None)
- self.assertEquals(obj.fullname(), 'data')
+ self.assertEqual('module' in obj, True)
+ self.assertEqual(obj.has_key('module'), True)
+ self.assertEqual(obj.get('module').name, 'data.module')
+ self.assertEqual(obj['module'].name, 'data.module')
+ self.assertEqual(obj.get('whatever'), None)
+ self.assertEqual(obj.fullname(), 'data')
# FIXME: test fullname on a subpackage
diff --git a/test/unittest_nodes.py b/test/unittest_nodes.py
index bec815d1..5a82d73b 100644
--- a/test/unittest_nodes.py
+++ b/test/unittest_nodes.py
@@ -82,7 +82,7 @@ else:
def test_if_elif_else_node(self):
"""test transformation for If node"""
- self.assertEquals(len(self.astng.body), 4)
+ self.assertEqual(len(self.astng.body), 4)
for stmt in self.astng.body:
self.assertIsInstance( stmt, nodes.If)
self.failIf(self.astng.body[0].orelse) # simple If
@@ -92,12 +92,12 @@ else:
def test_block_range(self):
# XXX ensure expected values
- self.assertEquals(self.astng.block_range(1), (0, 22))
- self.assertEquals(self.astng.block_range(10), (0, 22)) # XXX (10, 22) ?
- self.assertEquals(self.astng.body[1].block_range(5), (5, 6))
- self.assertEquals(self.astng.body[1].block_range(6), (6, 6))
- self.assertEquals(self.astng.body[1].orelse[0].block_range(7), (7, 8))
- self.assertEquals(self.astng.body[1].orelse[0].block_range(8), (8, 8))
+ self.assertEqual(self.astng.block_range(1), (0, 22))
+ self.assertEqual(self.astng.block_range(10), (0, 22)) # XXX (10, 22) ?
+ self.assertEqual(self.astng.body[1].block_range(5), (5, 6))
+ self.assertEqual(self.astng.body[1].block_range(6), (6, 6))
+ self.assertEqual(self.astng.body[1].orelse[0].block_range(7), (7, 8))
+ self.assertEqual(self.astng.body[1].orelse[0].block_range(8), (8, 8))
class TryExceptNodeTC(_NodeTC):
@@ -113,14 +113,14 @@ else:
"""
def test_block_range(self):
# XXX ensure expected values
- self.assertEquals(self.astng.body[0].block_range(1), (1, 8))
- self.assertEquals(self.astng.body[0].block_range(2), (2, 2))
- self.assertEquals(self.astng.body[0].block_range(3), (3, 8))
- self.assertEquals(self.astng.body[0].block_range(4), (4, 4))
- self.assertEquals(self.astng.body[0].block_range(5), (5, 5))
- self.assertEquals(self.astng.body[0].block_range(6), (6, 6))
- self.assertEquals(self.astng.body[0].block_range(7), (7, 7))
- self.assertEquals(self.astng.body[0].block_range(8), (8, 8))
+ self.assertEqual(self.astng.body[0].block_range(1), (1, 8))
+ self.assertEqual(self.astng.body[0].block_range(2), (2, 2))
+ self.assertEqual(self.astng.body[0].block_range(3), (3, 8))
+ self.assertEqual(self.astng.body[0].block_range(4), (4, 4))
+ self.assertEqual(self.astng.body[0].block_range(5), (5, 5))
+ self.assertEqual(self.astng.body[0].block_range(6), (6, 6))
+ self.assertEqual(self.astng.body[0].block_range(7), (7, 7))
+ self.assertEqual(self.astng.body[0].block_range(8), (8, 8))
class TryFinallyNodeTC(_NodeTC):
@@ -132,10 +132,10 @@ finally:
"""
def test_block_range(self):
# XXX ensure expected values
- self.assertEquals(self.astng.body[0].block_range(1), (1, 4))
- self.assertEquals(self.astng.body[0].block_range(2), (2, 2))
- self.assertEquals(self.astng.body[0].block_range(3), (3, 4))
- self.assertEquals(self.astng.body[0].block_range(4), (4, 4))
+ self.assertEqual(self.astng.body[0].block_range(1), (1, 4))
+ self.assertEqual(self.astng.body[0].block_range(2), (2, 2))
+ self.assertEqual(self.astng.body[0].block_range(3), (3, 4))
+ self.assertEqual(self.astng.body[0].block_range(4), (4, 4))
class TryFinally25NodeTC(_NodeTC):
@@ -149,14 +149,14 @@ finally:
"""
def test_block_range(self):
if sys.version_info < (2, 5):
- self.skip('require python >= 2.5')
+ self.skipTest('require python >= 2.5')
# XXX ensure expected values
- self.assertEquals(self.astng.body[0].block_range(1), (1, 6))
- self.assertEquals(self.astng.body[0].block_range(2), (2, 2))
- self.assertEquals(self.astng.body[0].block_range(3), (3, 4))
- self.assertEquals(self.astng.body[0].block_range(4), (4, 4))
- self.assertEquals(self.astng.body[0].block_range(5), (5, 5))
- self.assertEquals(self.astng.body[0].block_range(6), (6, 6))
+ self.assertEqual(self.astng.body[0].block_range(1), (1, 6))
+ self.assertEqual(self.astng.body[0].block_range(2), (2, 2))
+ self.assertEqual(self.astng.body[0].block_range(3), (3, 4))
+ self.assertEqual(self.astng.body[0].block_range(4), (4, 4))
+ self.assertEqual(self.astng.body[0].block_range(5), (5, 5))
+ self.assertEqual(self.astng.body[0].block_range(6), (6, 6))
MODULE = abuilder.module_build(test_module)
@@ -186,25 +186,25 @@ class ImportNodeTC(testlib.TestCase):
def test_real_name(self):
from_ = MODULE['spawn']
- self.assertEquals(from_.real_name('spawn'), 'Execute')
+ self.assertEqual(from_.real_name('spawn'), 'Execute')
imp_ = MODULE['os']
- self.assertEquals(imp_.real_name('os'), 'os')
+ self.assertEqual(imp_.real_name('os'), 'os')
self.assertRaises(NotFoundError, imp_.real_name, 'os.path')
imp_ = MODULE['spawn']
- self.assertEquals(imp_.real_name('spawn'), 'Execute')
+ self.assertEqual(imp_.real_name('spawn'), 'Execute')
self.assertRaises(NotFoundError, imp_.real_name, 'Execute')
imp_ = MODULE2['YO']
- self.assertEquals(imp_.real_name('YO'), 'YO')
+ self.assertEqual(imp_.real_name('YO'), 'YO')
self.assertRaises(NotFoundError, imp_.real_name, 'data')
def test_as_string(self):
ast = MODULE['modutils']
- self.assertEquals(as_string(ast), "from logilab.common import modutils")
+ self.assertEqual(as_string(ast), "from logilab.common import modutils")
ast = MODULE['spawn']
- self.assertEquals(as_string(ast), "from logilab.common.shellutils import Execute as spawn")
+ self.assertEqual(as_string(ast), "from logilab.common.shellutils import Execute as spawn")
ast = MODULE['os']
- self.assertEquals(as_string(ast), "import os.path")
+ self.assertEqual(as_string(ast), "import os.path")
def test_module_as_string(self):
"""just check as_string on a whole module doesn't raise an exception
@@ -216,7 +216,7 @@ class ImportNodeTC(testlib.TestCase):
class CmpNodeTC(testlib.TestCase):
def test_as_string(self):
ast = abuilder.string_build("a == 2")
- self.assertEquals(as_string(ast), "a == 2")
+ self.assertEqual(as_string(ast), "a == 2")
class ConstNodeTC(testlib.TestCase):
@@ -224,10 +224,10 @@ class ConstNodeTC(testlib.TestCase):
def _test(self, value):
node = nodes.const_factory(value)
self.assertIsInstance(node._proxied, nodes.Class)
- self.assertEquals(node._proxied.name, value.__class__.__name__)
+ self.assertEqual(node._proxied.name, value.__class__.__name__)
self.assertIs(node.value, value)
self.failUnless(node._proxied.parent)
- self.assertEquals(node._proxied.root().name, value.__class__.__module__)
+ self.assertEqual(node._proxied.root().name, value.__class__.__module__)
def test_none(self):
self._test(None)
@@ -258,12 +258,12 @@ def func(a,
b): pass
x = lambda x: None
''')
- self.assertEquals(ast['func'].args.fromlineno, 2)
- self.assertEquals(ast['func'].args.tolineno, 3)
+ self.assertEqual(ast['func'].args.fromlineno, 2)
+ self.assertEqual(ast['func'].args.tolineno, 3)
self.failIf(ast['func'].args.is_statement)
xlambda = ast['x'].infer().next()
- self.assertEquals(xlambda.args.fromlineno, 4)
- self.assertEquals(xlambda.args.tolineno, 4)
+ self.assertEqual(xlambda.args.fromlineno, 4)
+ self.assertEqual(xlambda.args.tolineno, 4)
self.failIf(xlambda.args.is_statement)
@@ -272,7 +272,7 @@ class SliceNodeTC(testlib.TestCase):
for code in ('a[0]', 'a[1:3]', 'a[:-1:step]', 'a[:,newaxis]',
'a[newaxis,:]', 'del L[::2]', 'del A[1]', 'del Br[:]'):
ast = abuilder.string_build(code)
- self.assertEquals(ast.as_string(), code)
+ self.assertEqual(ast.as_string(), code)
def test_slice_and_subscripts(self):
code = """a[:1] = bord[2:]
@@ -291,12 +291,12 @@ del (ccok, (name.thing, foo.attrib.value)), Fee.form[left:]
if all[1] == bord[0:]:
pass"""
ast = abuilder.string_build(code)
- self.assertEquals(ast.as_string(), code)
+ self.assertEqual(ast.as_string(), code)
class EllipsisNodeTC(testlib.TestCase):
def test(self):
ast = abuilder.string_build('a[...]')
- self.assertEquals(ast.as_string(), 'a[...]')
+ self.assertEqual(ast.as_string(), 'a[...]')
if __name__ == '__main__':
testlib.unittest_main()
diff --git a/test/unittest_scoped_nodes.py b/test/unittest_scoped_nodes.py
index 38a2a9f3..2853bf20 100644
--- a/test/unittest_scoped_nodes.py
+++ b/test/unittest_scoped_nodes.py
@@ -49,19 +49,19 @@ def _test_dict_interface(self, node, test_attr):
class ModuleNodeTC(TestCase):
def test_special_attributes(self):
- self.assertEquals(len(MODULE.getattr('__name__')), 1)
+ self.assertEqual(len(MODULE.getattr('__name__')), 1)
self.assertIsInstance(MODULE.getattr('__name__')[0], nodes.Const)
- self.assertEquals(MODULE.getattr('__name__')[0].value, 'data.module')
- self.assertEquals(len(MODULE.getattr('__doc__')), 1)
+ self.assertEqual(MODULE.getattr('__name__')[0].value, 'data.module')
+ self.assertEqual(len(MODULE.getattr('__doc__')), 1)
self.assertIsInstance(MODULE.getattr('__doc__')[0], nodes.Const)
- self.assertEquals(MODULE.getattr('__doc__')[0].value, 'test module for astng\n')
- self.assertEquals(len(MODULE.getattr('__file__')), 1)
+ self.assertEqual(MODULE.getattr('__doc__')[0].value, 'test module for astng\n')
+ self.assertEqual(len(MODULE.getattr('__file__')), 1)
self.assertIsInstance(MODULE.getattr('__file__')[0], nodes.Const)
- self.assertEquals(MODULE.getattr('__file__')[0].value, abspath(join('data', 'module.py')))
- self.assertEquals(len(MODULE.getattr('__dict__')), 1)
+ self.assertEqual(MODULE.getattr('__file__')[0].value, abspath(join('data', 'module.py')))
+ self.assertEqual(len(MODULE.getattr('__dict__')), 1)
self.assertIsInstance(MODULE.getattr('__dict__')[0], nodes.Dict)
self.assertRaises(NotFoundError, MODULE.getattr, '__path__')
- self.assertEquals(len(PACK.getattr('__path__')), 1)
+ self.assertEqual(len(PACK.getattr('__path__')), 1)
self.assertIsInstance(PACK.getattr('__path__')[0], nodes.List)
def test_dict_interface(self):
@@ -70,34 +70,34 @@ class ModuleNodeTC(TestCase):
def test_getattr(self):
yo = MODULE.getattr('YO')[0]
self.assertIsInstance(yo, nodes.Class)
- self.assertEquals(yo.name, 'YO')
+ self.assertEqual(yo.name, 'YO')
red = MODULE.igetattr('redirect').next()
self.assertIsInstance(red, nodes.Function)
- self.assertEquals(red.name, 'nested_args')
+ self.assertEqual(red.name, 'nested_args')
spawn = MODULE.igetattr('spawn').next()
self.assertIsInstance(spawn, nodes.Class)
- self.assertEquals(spawn.name, 'Execute')
+ self.assertEqual(spawn.name, 'Execute')
# resolve packageredirection
sys.path.insert(1, 'data')
try:
m = abuilder.file_build('data/appl/myConnection.py', 'appl.myConnection')
cnx = m.igetattr('SSL1').next().igetattr('Connection').next()
- self.assertEquals(cnx.__class__, nodes.Class)
- self.assertEquals(cnx.name, 'Connection')
- self.assertEquals(cnx.root().name, 'SSL1.Connection1')
+ self.assertEqual(cnx.__class__, nodes.Class)
+ self.assertEqual(cnx.name, 'Connection')
+ self.assertEqual(cnx.root().name, 'SSL1.Connection1')
finally:
del sys.path[1]
- self.assertEquals(len(NONREGR.getattr('enumerate')), 2)
+ self.assertEqual(len(NONREGR.getattr('enumerate')), 2)
# raise ResolveError
self.assertRaises(InferenceError, MODULE.igetattr, 'YOAA')
def test_wildard_import_names(self):
m = abuilder.file_build('data/all.py', 'all')
- self.assertEquals(m.wildcard_import_names(), ['Aaa', '_bla', 'name'])
+ self.assertEqual(m.wildcard_import_names(), ['Aaa', '_bla', 'name'])
m = abuilder.file_build('data/notall.py', 'notall')
res = m.wildcard_import_names()
res.sort()
- self.assertEquals(res, ['Aaa', 'func', 'name', 'other'])
+ self.assertEqual(res, ['Aaa', 'func', 'name', 'other'])
def test_module_getattr(self):
data = '''
@@ -107,7 +107,7 @@ del appli
'''
astng = abuilder.string_build(data, __name__, __file__)
# test del statement not returned by getattr
- self.assertEquals(len(astng.getattr('appli')), 2,
+ self.assertEqual(len(astng.getattr('appli')), 2,
astng.getattr('appli'))
@@ -115,13 +115,13 @@ class FunctionNodeTC(TestCase):
def test_special_attributes(self):
func = MODULE2['make_class']
- self.assertEquals(len(func.getattr('__name__')), 1)
+ self.assertEqual(len(func.getattr('__name__')), 1)
self.assertIsInstance(func.getattr('__name__')[0], nodes.Const)
- self.assertEquals(func.getattr('__name__')[0].value, 'make_class')
- self.assertEquals(len(func.getattr('__doc__')), 1)
+ self.assertEqual(func.getattr('__name__')[0].value, 'make_class')
+ self.assertEqual(len(func.getattr('__doc__')), 1)
self.assertIsInstance(func.getattr('__doc__')[0], nodes.Const)
- self.assertEquals(func.getattr('__doc__')[0].value, 'check base is correctly resolved to Concrete0')
- self.assertEquals(len(MODULE.getattr('__dict__')), 1)
+ self.assertEqual(func.getattr('__doc__')[0].value, 'check base is correctly resolved to Concrete0')
+ self.assertEqual(len(MODULE.getattr('__dict__')), 1)
self.assertIsInstance(MODULE.getattr('__dict__')[0], nodes.Dict)
def test_dict_interface(self):
@@ -135,11 +135,11 @@ class FunctionNodeTC(TestCase):
self.assertRaises(scoped_nodes.NoDefault, func.args.default_value, 'any')
#self.assertIsInstance(func.mularg_class('args'), nodes.Tuple)
#self.assertIsInstance(func.mularg_class('kwargs'), nodes.Dict)
- #self.assertEquals(func.mularg_class('base'), None)
+ #self.assertEqual(func.mularg_class('base'), None)
def test_navigation(self):
function = MODULE['global_access']
- self.assertEquals(function.statement(), function)
+ self.assertEqual(function.statement(), function)
l_sibling = function.previous_sibling()
# check taking parent if child is not a stmt
self.assertIsInstance(l_sibling, nodes.Assign)
@@ -147,27 +147,27 @@ class FunctionNodeTC(TestCase):
self.assert_(l_sibling is child.previous_sibling())
r_sibling = function.next_sibling()
self.assertIsInstance(r_sibling, nodes.Class)
- self.assertEquals(r_sibling.name, 'YO')
+ self.assertEqual(r_sibling.name, 'YO')
self.assert_(r_sibling is child.next_sibling())
last = r_sibling.next_sibling().next_sibling().next_sibling()
self.assertIsInstance(last, nodes.Assign)
- self.assertEquals(last.next_sibling(), None)
+ self.assertEqual(last.next_sibling(), None)
first = l_sibling.previous_sibling().previous_sibling().previous_sibling().previous_sibling().previous_sibling()
- self.assertEquals(first.previous_sibling(), None)
+ self.assertEqual(first.previous_sibling(), None)
def test_nested_args(self):
func = MODULE['nested_args']
- #self.assertEquals(func.args.args, ['a', ('b', 'c', 'd')])
+ #self.assertEqual(func.args.args, ['a', ('b', 'c', 'd')])
local = func.keys()
local.sort()
- self.assertEquals(local, ['a', 'b', 'c', 'd'])
- self.assertEquals(func.type, 'function')
+ self.assertEqual(local, ['a', 'b', 'c', 'd'])
+ self.assertEqual(func.type, 'function')
def test_format_args(self):
func = MODULE2['make_class']
- self.assertEquals(func.args.format_args(), 'any, base=data.module.YO, *args, **kwargs')
+ self.assertEqual(func.args.format_args(), 'any, base=data.module.YO, *args, **kwargs')
func = MODULE['nested_args']
- self.assertEquals(func.args.format_args(), 'a, (b, c, d)')
+ self.assertEqual(func.args.format_args(), 'a, (b, c, d)')
def test_is_abstract(self):
method = MODULE2['AbstractClass']['to_override']
@@ -182,13 +182,13 @@ class FunctionNodeTC(TestCase):
## def test_raises(self):
## method = MODULE2['AbstractClass']['to_override']
-## self.assertEquals([str(term) for term in method.raises()],
+## self.assertEqual([str(term) for term in method.raises()],
## ["CallFunc(Name('NotImplementedError'), [], None, None)"] )
## def test_returns(self):
## method = MODULE2['AbstractClass']['return_something']
## # use string comp since Node doesn't handle __cmp__
-## self.assertEquals([str(term) for term in method.returns()],
+## self.assertEqual([str(term) for term in method.returns()],
## ["Const('toto')", "Const(None)"])
def test_lambda_pytype(self):
@@ -202,7 +202,7 @@ def f():
def test_is_method(self):
if sys.version_info < (2, 4):
- self.skip('this test require python >= 2.4')
+ self.skipTest('this test require python >= 2.4')
data = '''
class A:
def meth1(self):
@@ -231,7 +231,7 @@ def sfunction():
def test_argnames(self):
code = 'def f(a, (b, c), *args, **kwargs): pass'
astng = abuilder.string_build(code, __name__, __file__)
- self.assertEquals(astng['f'].argnames(), ['a', 'b', 'c', 'args', 'kwargs'])
+ self.assertEqual(astng['f'].argnames(), ['a', 'b', 'c', 'args', 'kwargs'])
class ClassNodeTC(TestCase):
@@ -241,26 +241,26 @@ class ClassNodeTC(TestCase):
def test_cls_special_attributes_1(self):
cls = MODULE['YO']
- self.assertEquals(len(cls.getattr('__bases__')), 1)
- self.assertEquals(len(cls.getattr('__name__')), 1)
+ self.assertEqual(len(cls.getattr('__bases__')), 1)
+ self.assertEqual(len(cls.getattr('__name__')), 1)
self.assertIsInstance(cls.getattr('__name__')[0], nodes.Const)
- self.assertEquals(cls.getattr('__name__')[0].value, 'YO')
- self.assertEquals(len(cls.getattr('__doc__')), 1)
+ self.assertEqual(cls.getattr('__name__')[0].value, 'YO')
+ self.assertEqual(len(cls.getattr('__doc__')), 1)
self.assertIsInstance(cls.getattr('__doc__')[0], nodes.Const)
- self.assertEquals(cls.getattr('__doc__')[0].value, 'hehe')
- self.assertEquals(len(cls.getattr('__module__')), 1)
+ self.assertEqual(cls.getattr('__doc__')[0].value, 'hehe')
+ self.assertEqual(len(cls.getattr('__module__')), 1)
self.assertIsInstance(cls.getattr('__module__')[0], nodes.Const)
- self.assertEquals(cls.getattr('__module__')[0].value, 'data.module')
- self.assertEquals(len(cls.getattr('__dict__')), 1)
+ self.assertEqual(cls.getattr('__module__')[0].value, 'data.module')
+ self.assertEqual(len(cls.getattr('__dict__')), 1)
self.assertRaises(NotFoundError, cls.getattr, '__mro__')
for cls in (nodes.List._proxied, nodes.Const(1)._proxied):
- self.assertEquals(len(cls.getattr('__bases__')), 1)
- self.assertEquals(len(cls.getattr('__name__')), 1)
- self.assertEquals(len(cls.getattr('__doc__')), 1, (cls, cls.getattr('__doc__')))
- self.assertEquals(cls.getattr('__doc__')[0].value, cls.doc)
- self.assertEquals(len(cls.getattr('__module__')), 1)
- self.assertEquals(len(cls.getattr('__dict__')), 1)
- self.assertEquals(len(cls.getattr('__mro__')), 1)
+ self.assertEqual(len(cls.getattr('__bases__')), 1)
+ self.assertEqual(len(cls.getattr('__name__')), 1)
+ self.assertEqual(len(cls.getattr('__doc__')), 1, (cls, cls.getattr('__doc__')))
+ self.assertEqual(cls.getattr('__doc__')[0].value, cls.doc)
+ self.assertEqual(len(cls.getattr('__module__')), 1)
+ self.assertEqual(len(cls.getattr('__dict__')), 1)
+ self.assertEqual(len(cls.getattr('__mro__')), 1)
def test_cls_special_attributes_2(self):
astng = abuilder.string_build('''
@@ -269,7 +269,7 @@ class B: pass
A.__bases__ += (B,)
''', __name__, __file__)
- self.assertEquals(len(astng['A'].getattr('__bases__')), 2)
+ self.assertEqual(len(astng['A'].getattr('__bases__')), 2)
self.assertIsInstance(astng['A'].getattr('__bases__')[0], nodes.Tuple)
self.assertIsInstance(astng['A'].getattr('__bases__')[1], nodes.AssAttr)
@@ -278,25 +278,25 @@ A.__bases__ += (B,)
self.assertRaises(NotFoundError, inst.getattr, '__mro__')
self.assertRaises(NotFoundError, inst.getattr, '__bases__')
self.assertRaises(NotFoundError, inst.getattr, '__name__')
- self.assertEquals(len(inst.getattr('__dict__')), 1)
- self.assertEquals(len(inst.getattr('__doc__')), 1)
+ self.assertEqual(len(inst.getattr('__dict__')), 1)
+ self.assertEqual(len(inst.getattr('__doc__')), 1)
def test_navigation(self):
klass = MODULE['YO']
- self.assertEquals(klass.statement(), klass)
+ self.assertEqual(klass.statement(), klass)
l_sibling = klass.previous_sibling()
self.assert_(isinstance(l_sibling, nodes.Function), l_sibling)
- self.assertEquals(l_sibling.name, 'global_access')
+ self.assertEqual(l_sibling.name, 'global_access')
r_sibling = klass.next_sibling()
self.assertIsInstance(r_sibling, nodes.Class)
- self.assertEquals(r_sibling.name, 'YOUPI')
+ self.assertEqual(r_sibling.name, 'YOUPI')
def test_local_attr_ancestors(self):
klass2 = MODULE['YOUPI']
it = klass2.local_attr_ancestors('__init__')
anc_klass = it.next()
self.assertIsInstance(anc_klass, nodes.Class)
- self.assertEquals(anc_klass.name, 'YO')
+ self.assertEqual(anc_klass.name, 'YO')
self.assertRaises(StopIteration, it.next)
it = klass2.local_attr_ancestors('method')
self.assertRaises(StopIteration, it.next)
@@ -306,7 +306,7 @@ A.__bases__ += (B,)
it = klass2.instance_attr_ancestors('yo')
anc_klass = it.next()
self.assertIsInstance(anc_klass, nodes.Class)
- self.assertEquals(anc_klass.name, 'YO')
+ self.assertEqual(anc_klass.name, 'YO')
self.assertRaises(StopIteration, it.next)
klass2 = MODULE['YOUPI']
it = klass2.instance_attr_ancestors('member')
@@ -316,23 +316,23 @@ A.__bases__ += (B,)
klass2 = MODULE['YOUPI']
methods = [m.name for m in klass2.methods()]
methods.sort()
- self.assertEquals(methods, ['__init__', 'class_method',
+ self.assertEqual(methods, ['__init__', 'class_method',
'method', 'static_method'])
methods = [m.name for m in klass2.mymethods()]
methods.sort()
- self.assertEquals(methods, ['__init__', 'class_method',
+ self.assertEqual(methods, ['__init__', 'class_method',
'method', 'static_method'])
klass2 = MODULE2['Specialization']
methods = [m.name for m in klass2.mymethods()]
methods.sort()
- self.assertEquals(methods, [])
+ self.assertEqual(methods, [])
method_locals = klass2.local_attr('method')
- self.assertEquals(len(method_locals), 1)
- self.assertEquals(method_locals[0].name, 'method')
+ self.assertEqual(len(method_locals), 1)
+ self.assertEqual(method_locals[0].name, 'method')
self.assertRaises(NotFoundError, klass2.local_attr, 'nonexistant')
methods = [m.name for m in klass2.methods()]
methods.sort()
- self.assertEquals(methods, ['__init__', 'class_method',
+ self.assertEqual(methods, ['__init__', 'class_method',
'method', 'static_method'])
#def test_rhs(self):
@@ -341,27 +341,27 @@ A.__bases__ += (B,)
# a = MODULE['YO']['a']
# value = a.rhs()
# self.assertIsInstance(value, nodes.Const)
- # self.assertEquals(value.value, 1)
+ # self.assertEqual(value.value, 1)
def test_ancestors(self):
klass = MODULE['YOUPI']
ancs = [a.name for a in klass.ancestors()]
- self.assertEquals(ancs, ['YO'])
+ self.assertEqual(ancs, ['YO'])
klass = MODULE2['Specialization']
ancs = [a.name for a in klass.ancestors()]
- self.assertEquals(ancs, ['YOUPI', 'YO', 'YO'])
+ self.assertEqual(ancs, ['YOUPI', 'YO', 'YO'])
def test_type(self):
klass = MODULE['YOUPI']
- self.assertEquals(klass.type, 'class')
+ self.assertEqual(klass.type, 'class')
klass = MODULE2['Metaclass']
- self.assertEquals(klass.type, 'metaclass')
+ self.assertEqual(klass.type, 'metaclass')
klass = MODULE2['MyException']
- self.assertEquals(klass.type, 'exception')
+ self.assertEqual(klass.type, 'exception')
klass = MODULE2['MyIFace']
- self.assertEquals(klass.type, 'interface')
+ self.assertEqual(klass.type, 'interface')
klass = MODULE2['MyError']
- self.assertEquals(klass.type, 'exception')
+ self.assertEqual(klass.type, 'exception')
def test_interfaces(self):
for klass, interfaces in (('Concrete0', ['MyIFace']),
@@ -369,7 +369,7 @@ A.__bases__ += (B,)
('Concrete2', ['MyIFace', 'AnotherIFace']),
('Concrete23', ['MyIFace', 'AnotherIFace'])):
klass = MODULE2[klass]
- self.assertEquals([i.name for i in klass.interfaces()],
+ self.assertEqual([i.name for i in klass.interfaces()],
interfaces)
def test_concat_interfaces(self):
@@ -389,12 +389,12 @@ class InterfaceCanNowBeFound:
__implements__ = BadArgument.__implements__ + Correct2.__implements__
''')
- self.assertEquals([i.name for i in astng['InterfaceCanNowBeFound'].interfaces()],
+ self.assertEqual([i.name for i in astng['InterfaceCanNowBeFound'].interfaces()],
['IMachin'])
def test_inner_classes(self):
eee = NONREGR['Ccc']['Eee']
- self.assertEquals([n.name for n in eee.ancestors()], ['Ddd', 'Aaa', 'object'])
+ self.assertEqual([n.name for n in eee.ancestors()], ['Ddd', 'Aaa', 'object'])
def test_classmethod_attributes(self):
@@ -409,7 +409,7 @@ class WebAppObject(object):
'''
astng = abuilder.string_build(data, __name__, __file__)
cls = astng['WebAppObject']
- self.assertEquals(sorted(cls.locals.keys()),
+ self.assertEqual(sorted(cls.locals.keys()),
['appli', 'config', 'registered', 'schema'])
@@ -423,7 +423,7 @@ class WebAppObject(object):
astng = abuilder.string_build(data, __name__, __file__)
cls = astng['WebAppObject']
# test del statement not returned by getattr
- self.assertEquals(len(cls.getattr('appli')), 2)
+ self.assertEqual(len(cls.getattr('appli')), 2)
def test_instance_getattr(self):
@@ -437,7 +437,7 @@ class WebAppObject(object):
astng = abuilder.string_build(data, __name__, __file__)
inst = Instance(astng['WebAppObject'])
# test del statement not returned by getattr
- self.assertEquals(len(inst.getattr('appli')), 2)
+ self.assertEqual(len(inst.getattr('appli')), 2)
def test_instance_getattr_with_class_attr(self):
@@ -460,9 +460,9 @@ class Klass(Parent):
'''
astng = abuilder.string_build(data, __name__, __file__)
inst = Instance(astng['Klass'])
- self.assertEquals(len(inst.getattr('aa')), 3, inst.getattr('aa'))
- self.assertEquals(len(inst.getattr('bb')), 1, inst.getattr('bb'))
- self.assertEquals(len(inst.getattr('cc')), 2, inst.getattr('cc'))
+ self.assertEqual(len(inst.getattr('aa')), 3, inst.getattr('aa'))
+ self.assertEqual(len(inst.getattr('bb')), 1, inst.getattr('bb'))
+ self.assertEqual(len(inst.getattr('cc')), 2, inst.getattr('cc'))
def test_getattr_method_transform(self):
@@ -486,13 +486,13 @@ inst.m4 = func
# test del statement not returned by getattr
for method in ('m1', 'm2', 'm3'):
inferred = list(cls.igetattr(method))
- self.assertEquals(len(inferred), 1)
+ self.assertEqual(len(inferred), 1)
self.assertIsInstance(inferred[0], UnboundMethod)
inferred = list(Instance(cls).igetattr(method))
- self.assertEquals(len(inferred), 1)
+ self.assertEqual(len(inferred), 1)
self.assertIsInstance(inferred[0], BoundMethod)
inferred = list(Instance(cls).igetattr('m4'))
- self.assertEquals(len(inferred), 1)
+ self.assertEqual(len(inferred), 1)
self.assertIsInstance(inferred[0], nodes.Function)
__all__ = ('ModuleNodeTC', 'ImportNodeTC', 'FunctionNodeTC', 'ClassNodeTC')
diff --git a/test/unittest_utils.py b/test/unittest_utils.py
index a1606f34..ba19de37 100644
--- a/test/unittest_utils.py
+++ b/test/unittest_utils.py
@@ -39,8 +39,8 @@ if x > 0:
xnames = [n for n in astng.nodes_of_class(nodes.Name) if n.name == 'x']
assert len(xnames) == 3
assert xnames[1].lineno == 6
- self.assertEquals(are_exclusive(xass1, xnames[1]), False)
- self.assertEquals(are_exclusive(xass1, xnames[2]), False)
+ self.assertEqual(are_exclusive(xass1, xnames[1]), False)
+ self.assertEqual(are_exclusive(xass1, xnames[2]), False)
def test_if(self):
astng = builder.string_build('''
@@ -61,12 +61,12 @@ else:
a4 = astng.locals['a'][3]
a5 = astng.locals['a'][4]
a6 = astng.locals['a'][5]
- self.assertEquals(are_exclusive(a1, a2), False)
- self.assertEquals(are_exclusive(a1, a3), True)
- self.assertEquals(are_exclusive(a1, a5), True)
- self.assertEquals(are_exclusive(a3, a5), True)
- self.assertEquals(are_exclusive(a3, a4), False)
- self.assertEquals(are_exclusive(a5, a6), False)
+ self.assertEqual(are_exclusive(a1, a2), False)
+ self.assertEqual(are_exclusive(a1, a3), True)
+ self.assertEqual(are_exclusive(a1, a5), True)
+ self.assertEqual(are_exclusive(a3, a5), True)
+ self.assertEqual(are_exclusive(a3, a4), False)
+ self.assertEqual(are_exclusive(a5, a6), False)
def test_try_except(self):
astng = builder.string_build('''
@@ -88,16 +88,16 @@ else:
f2 = astng.locals['exclusive_func2'][1]
f3 = astng.locals['exclusive_func2'][2]
f4 = astng.locals['exclusive_func2'][3]
- self.assertEquals(are_exclusive(f1, f2), True)
- self.assertEquals(are_exclusive(f1, f3), True)
- self.assertEquals(are_exclusive(f1, f4), False)
- self.assertEquals(are_exclusive(f2, f4), True)
- self.assertEquals(are_exclusive(f3, f4), True)
- self.assertEquals(are_exclusive(f3, f2), True)
+ self.assertEqual(are_exclusive(f1, f2), True)
+ self.assertEqual(are_exclusive(f1, f3), True)
+ self.assertEqual(are_exclusive(f1, f4), False)
+ self.assertEqual(are_exclusive(f2, f4), True)
+ self.assertEqual(are_exclusive(f3, f4), True)
+ self.assertEqual(are_exclusive(f3, f2), True)
- self.assertEquals(are_exclusive(f2, f1), True)
- self.assertEquals(are_exclusive(f4, f1), False)
- self.assertEquals(are_exclusive(f4, f2), True)
+ self.assertEqual(are_exclusive(f2, f1), True)
+ self.assertEqual(are_exclusive(f4, f1), False)
+ self.assertEqual(are_exclusive(f4, f2), True)
if __name__ == '__main__':
unittest_main()
diff --git a/utils.py b/utils.py
index 524a2ccb..cf2a7c78 100644
--- a/utils.py
+++ b/utils.py
@@ -37,7 +37,7 @@ extract information from it
__docformat__ = "restructuredtext en"
from logilab.astng._exceptions import IgnoreChild, ASTNGBuildingException
-
+from logilab.common.compat import set
class ASTVisitor(object):
"""Abstract Base Class for Python AST Visitors.