.. method:: get_namespace()
- Return the namespace bound to this name. If more than one namespace is
- bound, :exc:`ValueError` is raised.
+ Return the namespace bound to this name. If more than one or no namespace
+ is bound to this name, a :exc:`ValueError` is raised.
def get_namespace(self):
"""Return the single namespace bound to this name.
- Raises ValueError if the name is bound to multiple namespaces.
+ Raises ValueError if the name is bound to multiple namespaces
+ or no namespace.
"""
- if len(self.__namespaces) != 1:
+ if len(self.__namespaces) == 0:
+ raise ValueError("name is not bound to any namespaces")
+ elif len(self.__namespaces) > 1:
raise ValueError("name is bound to multiple namespaces")
- return self.__namespaces[0]
+ else:
+ return self.__namespaces[0]
if __name__ == "__main__":
import os, sys
self.assertEqual(len(ns_test.get_namespaces()), 2)
self.assertRaises(ValueError, ns_test.get_namespace)
+ ns_test_2 = self.top.lookup("glob")
+ self.assertEqual(len(ns_test_2.get_namespaces()), 0)
+ self.assertRaises(ValueError, ns_test_2.get_namespace)
+
def test_assigned(self):
self.assertTrue(self.spam.lookup("x").is_assigned())
self.assertTrue(self.spam.lookup("bar").is_assigned())