예제 #1
0
 def test_smart_lookup_parent(self):
     """ ISmartLookupResource can find object on parent """
     parent = ISmartLookupResource()
     resource = ISmartLookupResource()
     resource.__parent__ = parent
     parent.foobar = 'baz'
     self.assertEqual(resource.foobar, 'baz')
예제 #2
0
 def test_smart_lookup_no_private(self):
     """ ISmartLookupResource doesn't look up private fields """
     parent = ISmartLookupResource()
     resource = ISmartLookupResource()
     resource.__parent__ = parent
     parent._foobar = 'baz'
     with self.assertRaises(AttributeError):
         resource._foobar
예제 #3
0
 def test_traverse_non_smart_parents(self):
     """ ISmartLookupResource can traverse non-smart parents """
     grandparent = Dummy()
     parent = Dummy()
     parent.__parent__ = grandparent
     resource = ISmartLookupResource()
     resource.__parent__ = parent
     grandparent.request = object()
     self.assertEqual(resource.request, grandparent.request)
예제 #4
0
 def test_smart_lookup_missing(self):
     """ ISmartLookupResource raises AttributeError if object missing """
     grandparent = ISmartLookupResource()
     parent = ISmartLookupResource()
     parent.__parent__ = grandparent
     resource = ISmartLookupResource()
     resource.__parent__ = parent
     with self.assertRaises(AttributeError):
         resource.foobar
예제 #5
0
 def test_smart_lookup_self(self):
     """ ISmartLookupResource can find object on self """
     resource = ISmartLookupResource()
     resource.foobar = 'baz'
     self.assertEqual(resource.foobar, 'baz')