def test_getitem_executes_factory_if_exists(self): c = MedleyContainer() c._keys = Mock(__contains__=Mock(return_value=True)) c._protected = Mock(__contains__=Mock(return_value=False)) c._factories = Mock(__contains__=Mock(return_value=True)) c._values = {'foo': self.foo} self.assertEqual(c.__getitem__('foo'), 'foo') self.foo.assert_called_once_with(c)
def test_getitem_stores_raw_function_and_freezes(self): c = MedleyContainer() c._keys = Mock(__contains__=Mock(return_value=True)) c._protected = Mock(__contains__=Mock(return_value=False)) c._factories = Mock(__contains__=Mock(return_value=False)) c._frozen = Mock(add=Mock()) c._values = {'foo': self.foo} self.assertEqual(c.__getitem__('foo'), 'foo') self.assertEqual(c._values, {'foo': 'foo'}) self.assertEqual(c._raw, {'foo': self.foo}) c._frozen.add.assert_called_with('foo')
def test_delitem_does_not_delete_from_factories_or_protected_when_id_is_str( self): c = MedleyContainer() c._keys = Mock(__contains__=Mock(return_value=True), discard=Mock()) c._protected = Mock(discard=Mock()) c._factories = Mock(discard=Mock()) c._frozen = Mock(discard=Mock()) c._values = {'foo': 'foo'} c.__delitem__('foo') c._factories.discard.assert_not_called() c._protected.discard.assert_not_called() self.assertEqual(c._values, {}) self.assertEqual(c._raw, {}) c._frozen.discard.assert_called_with('foo') c._keys.discard.assert_called_with('foo')
def test_delitem_deletes_from_everywhere_wwhen_id_is_function(self): c = MedleyContainer() c._keys = Mock(__contains__=Mock(return_value=True), discard=Mock()) c._protected = Mock(discard=Mock()) c._factories = Mock(discard=Mock()) c._frozen = Mock(discard=Mock()) c._values = {'foo': self.foo} c._raw = {'foo': self.foo} self.assertFalse(c.__delitem__('foo')) c._factories.discard.assert_called_with(self.foo) c._protected.discard.assert_called_with(self.foo) self.assertEqual(c._values, {}) self.assertEqual(c._raw, {}) c._frozen.discard.assert_called_with('foo') c._keys.discard.assert_called_with('foo')