summaryrefslogtreecommitdiff
path: root/astroid/tree/scoped_nodes.py
diff options
context:
space:
mode:
authorClaudiu Popa <pcmanticore@gmail.com>2015-12-06 18:00:01 +0200
committerClaudiu Popa <pcmanticore@gmail.com>2015-12-06 18:00:01 +0200
commitf77f5e36632bf6ea76d044bf14a132ff6e22dbfb (patch)
treef6a34d4946bb7c8f6052b9071dc9ba9930aecd79 /astroid/tree/scoped_nodes.py
parent853726a295a8b4000bbb7ff9032cd1573e5ddf6c (diff)
downloadastroid-git-f77f5e36632bf6ea76d044bf14a132ff6e22dbfb.tar.gz
relative_to_absolute_name will now raise TooManyLevelsError when a relative import is trying to access something beyond the top-level package.
Diffstat (limited to 'astroid/tree/scoped_nodes.py')
-rw-r--r--astroid/tree/scoped_nodes.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/astroid/tree/scoped_nodes.py b/astroid/tree/scoped_nodes.py
index 6aa5948c..ae8da65f 100644
--- a/astroid/tree/scoped_nodes.py
+++ b/astroid/tree/scoped_nodes.py
@@ -541,6 +541,10 @@ class Module(LocalsDictNodeNG):
if level:
if self.package:
level = level - 1
+ if level and self.name.count('.') < level:
+ raise exceptions.TooManyLevelsError(
+ level=level, name=self.name)
+
package_name = self.name.rsplit('.', level)[0]
elif self.package:
package_name = self.name