def test_resource_lazy_getattr(self):
fake_manager = mock.Mock()
return_resource = SampleResource(None, dict(uuid=mock.sentinel.fake_id,
foo='bar',
name='fake_name'))
fake_manager.get.return_value = return_resource
r = SampleResource(fake_manager,
dict(uuid=mock.sentinel.fake_id, foo='bar'))
self.assertTrue(hasattr(r, 'foo'))
self.assertEqual('bar', r.foo)
self.assertFalse(r.has_attached())
# Trigger load
self.assertEqual('fake_name', r.name)
fake_manager.get.assert_called_once_with(mock.sentinel.fake_id)
self.assertTrue(r.has_attached())
# Missing stuff still fails after a second get
self.assertRaises(AttributeError, getattr, r, 'abc')
评论列表
文章目录