|
5 | 5 | current_string, current_object, current_object_attribute, \ |
6 | 6 | current_from_import_from, current_from_import_import, current_import, \ |
7 | 7 | current_method_definition_name, current_single_word, \ |
8 | | - current_expression_attribute |
| 8 | + current_expression_attribute, current_dotted_attribute |
9 | 9 |
|
10 | 10 |
|
11 | 11 | def cursor(s): |
@@ -129,6 +129,15 @@ def test_dots(self): |
129 | 129 | self.assertAccess('stuff[<asd|fg>]') |
130 | 130 | self.assertAccess('stuff[asdf[<asd|fg>]') |
131 | 131 |
|
| 132 | + def test_non_dots(self): |
| 133 | + self.assertAccess('].asdf|') |
| 134 | + self.assertAccess(').asdf|') |
| 135 | + self.assertAccess('foo[0].asdf|') |
| 136 | + self.assertAccess('foo().asdf|') |
| 137 | + self.assertAccess('foo().|') |
| 138 | + self.assertAccess('foo().asdf.|') |
| 139 | + self.assertAccess('foo[0].asdf.|') |
| 140 | + |
132 | 141 | def test_open_paren(self): |
133 | 142 | self.assertAccess('<foo(|>') |
134 | 143 | # documenting current behavior - TODO is this intended? |
@@ -336,5 +345,16 @@ def test_strings(self): |
336 | 345 | self.assertAccess('"hey".<|>') |
337 | 346 |
|
338 | 347 |
|
| 348 | +class TestCurrentDottedAttribute(LineTestCase): |
| 349 | + def setUp(self): |
| 350 | + self.func = current_dotted_attribute |
| 351 | + |
| 352 | + def test_simple(self): |
| 353 | + self.assertAccess('<obj.attr>|') |
| 354 | + self.assertAccess('(<obj.attr>|') |
| 355 | + self.assertAccess('[<obj.attr>|') |
| 356 | + self.assertAccess('m.body[0].value|') |
| 357 | + self.assertAccess('m.body[0].attr.value|') |
| 358 | + |
339 | 359 | if __name__ == '__main__': |
340 | 360 | unittest.main() |
0 commit comments