| 179 | |
| 180 | |
| 181 | class SymtableTest(unittest.TestCase): |
| 182 | |
| 183 | top = symtable.symtable(TEST_CODE, "?", "exec") |
| 184 | # These correspond to scopes in TEST_CODE |
| 185 | Mine = find_block(top, "Mine") |
| 186 | |
| 187 | a_method = find_block(Mine, "a_method") |
| 188 | spam = find_block(top, "spam") |
| 189 | internal = find_block(spam, "internal") |
| 190 | other_internal = find_block(spam, "other_internal") |
| 191 | foo = find_block(top, "foo") |
| 192 | Alias = find_block(top, "Alias") |
| 193 | GenericAlias = find_block(top, "GenericAlias") |
| 194 | GenericAlias_inner = find_block(GenericAlias, "GenericAlias") |
| 195 | generic_spam = find_block(top, "generic_spam") |
| 196 | generic_spam_inner = find_block(generic_spam, "generic_spam") |
| 197 | GenericMine = find_block(top, "GenericMine") |
| 198 | GenericMine_inner = find_block(GenericMine, "GenericMine") |
| 199 | T = find_block(GenericMine, "T") |
| 200 | U = find_block(GenericMine, "U") |
| 201 | |
| 202 | def test_type(self): |
| 203 | self.assertEqual(self.top.get_type(), "module") |
| 204 | self.assertEqual(self.Mine.get_type(), "class") |
| 205 | self.assertEqual(self.a_method.get_type(), "function") |
| 206 | self.assertEqual(self.spam.get_type(), "function") |
| 207 | self.assertEqual(self.internal.get_type(), "function") |
| 208 | self.assertEqual(self.foo.get_type(), "function") |
| 209 | self.assertEqual(self.Alias.get_type(), "type alias") |
| 210 | self.assertEqual(self.GenericAlias.get_type(), "type parameters") |
| 211 | self.assertEqual(self.GenericAlias_inner.get_type(), "type alias") |
| 212 | self.assertEqual(self.generic_spam.get_type(), "type parameters") |
| 213 | self.assertEqual(self.generic_spam_inner.get_type(), "function") |
| 214 | self.assertEqual(self.GenericMine.get_type(), "type parameters") |
| 215 | self.assertEqual(self.GenericMine_inner.get_type(), "class") |
| 216 | self.assertEqual(self.T.get_type(), "type variable") |
| 217 | self.assertEqual(self.U.get_type(), "type variable") |
| 218 | |
| 219 | def test_id(self): |
| 220 | self.assertGreater(self.top.get_id(), 0) |
| 221 | self.assertGreater(self.Mine.get_id(), 0) |
| 222 | self.assertGreater(self.a_method.get_id(), 0) |
| 223 | self.assertGreater(self.spam.get_id(), 0) |
| 224 | self.assertGreater(self.internal.get_id(), 0) |
| 225 | self.assertGreater(self.foo.get_id(), 0) |
| 226 | self.assertGreater(self.Alias.get_id(), 0) |
| 227 | self.assertGreater(self.GenericAlias.get_id(), 0) |
| 228 | self.assertGreater(self.generic_spam.get_id(), 0) |
| 229 | self.assertGreater(self.GenericMine.get_id(), 0) |
| 230 | |
| 231 | def test_optimized(self): |
| 232 | self.assertFalse(self.top.is_optimized()) |
| 233 | |
| 234 | self.assertTrue(self.spam.is_optimized()) |
| 235 | |
| 236 | def test_nested(self): |
| 237 | self.assertFalse(self.top.is_nested()) |
| 238 | self.assertFalse(self.Mine.is_nested()) |
nothing calls this directly
no test coverage detected
searching dependent graphs…