")
self.assertAccess("from sys import ")
self.assertAccess("from sys import |path")
self.assertAccess("from sys| import path")
self.assertAccess("from s|ys import path")
self.assertAccess("from |sys import path")
self.assertAccess("from xml.dom import ")
# because syntax error
self.assertAccess("from xml.dom import Node.as|d")
class TestCurrentImport(LineTestCase):
def setUp(self):
self.func = current_import
def test_simple(self):
self.assertAccess("import ")
self.assertAccess("import ")
self.assertAccess("import |path")
self.assertAccess("import path, ")
self.assertAccess("import path another|")
self.assertAccess("if True: import ")
self.assertAccess("if True: import ")
self.assertAccess("if True: import ")
self.assertAccess("if True: import as something")
class TestMethodDefinitionName(LineTestCase):
def setUp(self):
self.func = current_method_definition_name
def test_simple(self):
self.assertAccess("def ")
self.assertAccess(" def bar(x, y)|:")
self.assertAccess(" def (x, y)")
class TestSingleWord(LineTestCase):
def setUp(self):
self.func = current_single_word
def test_simple(self):
self.assertAccess("foo.bar|")
self.assertAccess(".foo|")
self.assertAccess(" ")
class TestCurrentExpressionAttribute(LineTestCase):
def setUp(self):
self.func = current_expression_attribute
def test_simple(self):
self.assertAccess("Object..")
self.assertAccess("Object.<|attr1>.")
self.assertAccess("Object.(|)")
self.assertAccess("Object.another.(|)")
self.assertAccess("asdf asdf asdf.(abc|)")
def test_without_dot(self):
self.assertAccess("Object|")
self.assertAccess("Object|.")
self.assertAccess("|Object.")
def test_with_whitespace(self):
self.assertAccess("Object. ")
self.assertAccess("Object .")
self.assertAccess("Object . ")
self.assertAccess("Object .asdf attr|")
self.assertAccess("Object . attr")
self.assertAccess("Object. asdf attr|")
self.assertAccess("Object. attr")
self.assertAccess("Object . asdf attr|")
self.assertAccess("Object . attr")
def test_indexing(self):
self.assertAccess("abc[def].")
self.assertAccess("abc[def].<|ghi>")
self.assertAccess("abc[def].")
self.assertAccess("abc[def].gh |i")
self.assertAccess("abc[def]|")
def test_strings(self):
self.assertAccess('"hey".')
self.assertAccess('"hey"|')
self.assertAccess('"hey"|.a')
self.assertAccess('"hey".')
self.assertAccess('"hey".asdf d|')
self.assertAccess('"hey".<|>')
class TestCurrentDottedAttribute(LineTestCase):
def setUp(self):
self.func = current_dotted_attribute
def test_simple(self):
self.assertAccess("|")
self.assertAccess("(|")
self.assertAccess("[|")
self.assertAccess("m.body[0].value|")
self.assertAccess("m.body[0].attr.value|")
if __name__ == "__main__":
unittest.main()