| 1 | import unittest |
|---|
| 2 | import os |
|---|
| 3 | from os.path import join |
|---|
| 4 | from logilab.astng.manager import ASTNGManager |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | class ASTNGManagerTC(unittest.TestCase): |
|---|
| 8 | def setUp(self): |
|---|
| 9 | self.manager = ASTNGManager() |
|---|
| 10 | |
|---|
| 11 | def test_astng_from_module(self): |
|---|
| 12 | astng = self.manager.astng_from_module(unittest) |
|---|
| 13 | self.assertEquals(astng.pure_python, True) |
|---|
| 14 | import time |
|---|
| 15 | astng = self.manager.astng_from_module(time) |
|---|
| 16 | self.assertEquals(astng.pure_python, False) |
|---|
| 17 | |
|---|
| 18 | def test_astng_from_class(self): |
|---|
| 19 | astng = self.manager.astng_from_class(file) |
|---|
| 20 | self.assertEquals(astng.name, 'file') |
|---|
| 21 | self.assertEquals(astng.parent.frame().name, '__builtin__') |
|---|
| 22 | |
|---|
| 23 | astng = self.manager.astng_from_class(object) |
|---|
| 24 | self.assertEquals(astng.name, 'object') |
|---|
| 25 | self.assertEquals(astng.parent.frame().name, '__builtin__') |
|---|
| 26 | self.failUnless('__setattr__' in astng) |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | def test_from_directory(self): |
|---|
| 31 | obj = self.manager.from_directory('data') |
|---|
| 32 | self.assertEquals(obj.name, 'data') |
|---|
| 33 | self.assertEquals(obj.path, join(os.getcwd(), 'data')) |
|---|
| 34 | |
|---|
| 35 | def test_package_node(self): |
|---|
| 36 | obj = self.manager.from_directory('data') |
|---|
| 37 | expected_short = ['SSL1', '__init__', 'all', 'appl', 'format', 'module', 'module2', |
|---|
| 38 | 'noendingnewline', 'nonregr', 'notall'] |
|---|
| 39 | expected_long = ['SSL1', 'data', 'data.all', 'appl', 'data.format', 'data.module', |
|---|
| 40 | 'data.module2', 'data.noendingnewline', 'data.nonregr', |
|---|
| 41 | 'data.notall'] |
|---|
| 42 | self.assertEquals(obj.keys(), expected_short) |
|---|
| 43 | self.assertEquals([m.name for m in obj.values()], expected_long) |
|---|
| 44 | self.assertEquals([m for m in list(obj)], expected_short) |
|---|
| 45 | self.assertEquals([(name, m.name) for name, m in obj.items()], |
|---|
| 46 | zip(expected_short, expected_long)) |
|---|
| 47 | self.assertEquals([(name, m.name) for name, m in obj.items()], |
|---|
| 48 | zip(expected_short, expected_long)) |
|---|
| 49 | |
|---|
| 50 | self.assertEquals('module' in obj, True) |
|---|
| 51 | self.assertEquals(obj.has_key('module'), True) |
|---|
| 52 | self.assertEquals(obj.get('module').name, 'data.module') |
|---|
| 53 | self.assertEquals(obj['module'].name, 'data.module') |
|---|
| 54 | self.assertEquals(obj.get('whatever'), None) |
|---|
| 55 | |
|---|
| 56 | #self.assertEquals(obj.has_key, []) |
|---|
| 57 | #self.assertEquals(obj.get, []) |
|---|
| 58 | #for key in obj: |
|---|
| 59 | # print key, |
|---|
| 60 | # print obj[key] |
|---|
| 61 | |
|---|
| 62 | self.assertEquals(obj.fullname(), 'data') |
|---|
| 63 | # FIXME: test fullname on a subpackage |
|---|
| 64 | |
|---|
| 65 | __all__ = ('ASTNGManagerTC',) |
|---|
| 66 | |
|---|
| 67 | if __name__ == '__main__': |
|---|
| 68 | unittest.main() |
|---|
| 69 | |
|---|
| 70 | |
|---|