summaryrefslogtreecommitdiff
path: root/astroid/tests/unittest_protocols.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/tests/unittest_protocols.py')
-rw-r--r--astroid/tests/unittest_protocols.py22
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()