diff options
Diffstat (limited to 'astroid/tests/unittest_protocols.py')
-rw-r--r-- | astroid/tests/unittest_protocols.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/astroid/tests/unittest_protocols.py b/astroid/tests/unittest_protocols.py index 6d6bce6..3b7b4fd 100644 --- a/astroid/tests/unittest_protocols.py +++ b/astroid/tests/unittest_protocols.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License along # with astroid. If not, see <http://www.gnu.org/licenses/>. +import contextlib import unittest +import astroid from astroid.test_utils import extract_node, require_version from astroid import InferenceError from astroid import nodes @@ -25,6 +27,15 @@ from astroid import util from astroid.node_classes import AssignName, Const, Name, Starred +@contextlib.contextmanager +def _add_transform(manager, node, transform, predicate=None): + manager.register_transform(node, transform, predicate) + try: + yield + finally: + manager.unregister_transform(node, transform, predicate) + + class ProtocolTests(unittest.TestCase): def assertConstNodesEqual(self, nodes_list_expected, nodes_list_got): @@ -149,6 +160,17 @@ class ProtocolTests(unittest.TestCase): assigned = list(simple_mul_assnode_2.assigned_stmts()) self.assertNameNodesEqual(['c'], assigned) + def test_sequence_assigned_stmts_not_accepting_empty_node(self): + def transform(node): + node.root().locals['__all__'] = [node.value] + + manager = astroid.MANAGER + with _add_transform(manager, astroid.Assign, transform): + module = astroid.parse(''' + __all__ = ['a'] + ''') + module.wildcard_import_names() + if __name__ == '__main__': unittest.main() |