def test_get_item_from_dict(self):
     data = {'key1': 'a', 'key2': 'b', 'key3': 'c'}
     lm = EmbeddedManager(data)
     self.assertEqual('a', lm.get('key1'))
     self.assertEqual('b', lm.get('key2'))
     self.assertEqual('c', lm.get('key3'))
     with self.assertRaises(DoesNotExist):
         lm.get('key4')
 def test_get_item(self):
     data = ['a', 'b', 'c']
     lm = EmbeddedManager(data)
     self.assertEqual('a', lm.get('a'))
     self.assertEqual('b', lm.get('b'))
     self.assertEqual('c', lm.get('c'))
     with self.assertRaises(DoesNotExist):
         lm.get('z')
 def test_get_with_keys_from_dict(self):
     data = {
         'key1': Dummy(id=1, name='NAME_A'),
         'key2': Dummy(id=2, name='NAME_A'),
         'key3': Dummy(id=3, name='NAME_B'),
         'key4': Dummy(id=4, name='NAME_B')
     }
     lm = EmbeddedManager(data)
     self.assertTrue(isinstance(lm.get(id=1, name='NAME_A'), Dummy))
     self.assertEqual(1, lm.get(id=1, name='NAME_A').id)
     self.assertEqual('NAME_A', lm.get(id=1, name='NAME_A').name)
     with self.assertRaises(DoesNotExist):
         lm.get(id=3, name='NAME_A')
 def test_get_with_keys(self):
     data = [
         Dummy(id=1, name='NAME_A'),
         Dummy(id=2, name='NAME_A'),
         Dummy(id=3, name='NAME_B'),
         Dummy(id=4, name='NAME_B')
     ]
     lm = EmbeddedManager(data)
     self.assertTrue(isinstance(lm.get(id=1, name='NAME_A'), Dummy))
     self.assertEqual(1, lm.get(id=1, name='NAME_A').id)
     self.assertEqual('NAME_A', lm.get(id=1, name='NAME_A').name)
     with self.assertRaises(DoesNotExist):
         lm.get(id=3, name='NAME_A')
 def test_append(self):
     data = [
         Dummy(id=1, name='NAME_A'),
         Dummy(id=2, name='NAME_A'),
         Dummy(id=3, name='NAME_B'),
         Dummy(id=4, name='NAME_B')
     ]
     lm = EmbeddedManager(data)
     lm.append(Dummy(id=5, name='NAME_C'))
     self.assertEqual(5, len(lm))
     self.assertEqual(5, lm.get(id=5).id)
     self.assertEqual('NAME_C', lm.get(id=5).name)
     self.assertEqual(1, len(lm.filter(name='NAME_C')))
     self.assertEqual(5, lm.filter(name='NAME_C')[0].id)
     self.assertEqual('NAME_C', lm.filter(name='NAME_C')[0].name)
 def test_get_from_dict_with_field(self):
     data = {
         'key1': Dummy(id=1, name='NAME_A', check='NAME_X'),
         'key2': Dummy(id=2, name='NAME_A', check='NAME_A'),
         'key3': Dummy(id=3, name='NAME_B', check='NAME_X'),
         'key4': Dummy(id=4, name='NAME_B', check='NAME_X'),
         'key5': Dummy(id=5, name='NAME_B', check='NAME_B'),
         'key6': Dummy(id=6, name='NAME_B', check='NAME_B')
     }
     lm = EmbeddedManager(data, type=Dummy)
     self.assertEqual(2, lm.get(name=F('check')).id)
 def test_get_with_field(self):
     data = [
         Dummy(id=1, name='NAME_A', check='NAME_X'),
         Dummy(id=2, name='NAME_A', check='NAME_A'),
         Dummy(id=3, name='NAME_B', check='NAME_X'),
         Dummy(id=4, name='NAME_B', check='NAME_X'),
         Dummy(id=5, name='NAME_B', check='NAME_B'),
         Dummy(id=6, name='NAME_B', check='NAME_B')
     ]
     lm = EmbeddedManager(data, type=Dummy)
     self.assertEqual(2, lm.get(name=F('check')).id)
 def test_update(self):
     data = {
         'key1': Dummy(id=1, name='NAME_A'),
         'key2': Dummy(id=2, name='NAME_A'),
         'key3': Dummy(id=3, name='NAME_B'),
         'key4': Dummy(id=4, name='NAME_B')
     }
     lm = EmbeddedManager(data)
     lm.update({
         'key4': Dummy(id=5, name='NAME_C'),
         'key5': Dummy(id=6, name='NAME_C'),
     })
     self.assertEqual(5, len(lm))
     self.assertEqual(5, lm.get('key4').id)
     self.assertEqual('NAME_C', lm.get('key4').name)
     self.assertEqual(6, lm.get(id=6).id)
     self.assertEqual('NAME_C', lm.get('key5').name)
     self.assertEqual(2, len(lm.filter(name='NAME_C')))
     self.assertEqual(5, lm.filter(name='NAME_C')['key4'].id)
     self.assertEqual('NAME_C', lm.filter(name='NAME_C')['key4'].name)
     self.assertEqual(6, lm.filter(name='NAME_C')['key5'].id)
     self.assertEqual('NAME_C', lm.filter(name='NAME_C')['key5'].name)
 def test_create_with_key_in_dict_with_type(self):
     data = {
         'key1': Dummy(id=1, name='NAME_A'),
         'key2': Dummy(id=2, name='NAME_A'),
         'key3': Dummy(id=3, name='NAME_B'),
         'key4': Dummy(id=4, name='NAME_B')
     }
     lm = EmbeddedManager(data, type=Dummy)
     created = lm.create('key5', id=5, name='CREATED')
     self.assertIsNotNone(created)
     self.assertTrue(isinstance(created, Dummy))
     self.assertEqual(5, created.id)
     self.assertEqual('CREATED', created.name)
     self.assertEqual(5, len(lm))
     got = lm.get('key5')
     self.assertEqual(5, got.id)
     self.assertEqual('CREATED', got.name)
 def test_create_with_type(self):
     data = [
         Dummy(id=1, name='NAME_A'),
         Dummy(id=2, name='NAME_A'),
         Dummy(id=3, name='NAME_B'),
         Dummy(id=4, name='NAME_B')
     ]
     lm = EmbeddedManager(data, type=Dummy)
     created = lm.create(id=5, name='CREATED')
     self.assertIsNotNone(created)
     self.assertTrue(isinstance(created, Dummy))
     self.assertEqual(5, created.id)
     self.assertEqual('CREATED', created.name)
     self.assertEqual(5, len(lm))
     got = lm.get(id=5)
     self.assertEqual(5, got.id)
     self.assertEqual('CREATED', got.name)
 def test_get_with_key_from_dict(self):
     data = {
         'key1': Dummy(id=1, name='NAME_1'),
         'key2': Dummy(id=2, name='NAME_2'),
         'key3': Dummy(id=3, name='NAME_3')
     }
     lm = EmbeddedManager(data)
     self.assertTrue(isinstance(lm.get(id=1), Dummy))
     self.assertEqual(1, lm.get(id=1).id)
     self.assertEqual('NAME_1', lm.get(id=1).name)
     self.assertTrue(isinstance(lm.get(id=2), Dummy))
     self.assertEqual(2, lm.get(id=2).id)
     self.assertEqual('NAME_2', lm.get(id=2).name)
     self.assertTrue(isinstance(lm.get(id=3), Dummy))
     self.assertEqual(3, lm.get(id=3).id)
     self.assertEqual('NAME_3', lm.get(id=3).name)
     with self.assertRaises(DoesNotExist):
         lm.get(id=4)
     with self.assertRaises(DoesNotExist):
         lm.get(xxx=1)
     self.assertTrue(isinstance(lm.get(name='NAME_1'), Dummy))
     self.assertEqual(1, lm.get(name='NAME_1').id)
     self.assertEqual('NAME_1', lm.get(name='NAME_1').name)