def test_all_is_indexable(self): data = ['a', 'b', 'c'] lm = EmbeddedManager(data) i = 0 self.assertEqual('a', lm.all()[0]) self.assertEqual('b', lm.all()[1]) self.assertEqual('c', lm.all()[2])
def test_all_is_an_iterator(self): data = ['a', 'b', 'c'] lm = EmbeddedManager(data) i = 0 for item in lm.all(): self.assertEqual(data[i], item) i = i + 1
def test_evaluate(self): obj = Dummy(id=1, name='NAME_1', flag=True, link=Dummy(id=2, name='NAME_2'), objects=EmbeddedManager([ Dummy(id=3, name='NAME_3'), Dummy(id=4, name='NAME_4'), Dummy(id=5, name='NAME_5'), ])) e_id = Expression('id') e_name = Expression('name') e_flag = Expression('flag') e_link = Expression('link') e_link_id = Expression('link.id') e_link_name = Expression('link.name') e_objects = Expression('objects') self.assertEqual(1, e_id.evaluate(obj)) self.assertEqual('NAME_1', e_name.evaluate(obj)) self.assertEqual(True, e_flag.evaluate(obj)) self.assertEqual(2, e_link.evaluate(obj).id) self.assertEqual('NAME_2', e_link.evaluate(obj).name) self.assertEqual(2, e_link_id.evaluate(obj)) self.assertEqual('NAME_2', e_link_name.evaluate(obj)) self.assertEqual(3, e_objects.evaluate(obj).all()[0].id) self.assertEqual('NAME_3', e_objects.evaluate(obj).all()[0].name) self.assertEqual(4, e_objects.evaluate(obj).all()[1].id) self.assertEqual('NAME_4', e_objects.evaluate(obj).all()[1].name) self.assertEqual(5, e_objects.evaluate(obj).all()[2].id) self.assertEqual('NAME_5', e_objects.evaluate(obj).all()[2].name)
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_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_copy_with_list(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.assertEqual(data, lm.copy())
def test_length_of_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.assertEqual(4, len(lm))
def test_copy_with_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.assertEqual(data, lm.copy())
def test_length(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.assertEqual(4, len(lm))
def test_in_filtered_list(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(Dummy(id=3, name='NAME_B') in lm.filter(name='NAME_B')) self.assertTrue(Dummy(id=4, name='NAME_B') in lm.filter(name='NAME_B'))
def test_items(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) for key, value in lm.items(): self.assertEqual(data[key], value)
def test_create_with_no_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) with self.assertRaises(ValueError): created = lm.create(id=5, name='CREATED')
def test_create_with_no_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) with self.assertRaisesRegex(TypeError, 'No type defined for EmbeddedManager'): lm.create(id=5, name='CREATED')
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_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_keys_in_filtered_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.assertEqual(2, len(lm.filter(name='NAME_B').keys())) self.assertTrue('key3' in lm.filter(name='NAME_B').keys()) self.assertTrue('key4' in lm.filter(name='NAME_B').keys())
def test_copy_with_filtered_list(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) self.assertEqual( [Dummy(id=3, name='NAME_B'), Dummy(id=4, name='NAME_B')], lm.filter(name='NAME_B').copy())
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_values(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(data['key1'] in lm.values()) self.assertTrue(data['key2'] in lm.values()) self.assertTrue(Dummy(id=3, name='NAME_B') in lm.values()) self.assertTrue(Dummy(id=4, name='NAME_B') in lm.values()) self.assertEqual(4, len(lm.values()))
def test_keys(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('key1' in lm.keys()) self.assertTrue('key2' in lm.keys()) self.assertTrue('key3' in lm.keys()) self.assertTrue('key4' in lm.keys()) self.assertEqual(4, len(lm.keys()))
def test_find_embedded_list_names(self): test = FDummy(id=1, name='NAME_1', embedded=EmbeddedManager([ FDummy(id=2, name='NAME_2'), FDummy(id=3, name='NAME_3'), FDummy(id=4, name='NAME_4'), ])) result = test.__find__('embedded.name') self.assertEqual(3, len(result)) self.assertTrue('NAME_2' in result) self.assertTrue('NAME_3' in result) self.assertTrue('NAME_4' in result)
def test_clear(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(6, len(lm)) lm.clear() self.assertEqual(0, len(lm))
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_filter_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(3, len(lm.filter(name=F('check')))) self.assertEqual(2, lm.filter(name=F('check'))[0].id) self.assertEqual(5, lm.filter(name=F('check'))[1].id) self.assertEqual(6, lm.filter(name=F('check'))[2].id)
def test_filter_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(3, len(lm.filter(name=F('check')))) self.assertEqual(2, lm.filter(name=F('check'))['key2'].id) self.assertEqual(5, lm.filter(name=F('check'))['key5'].id) self.assertEqual(6, lm.filter(name=F('check'))['key6'].id)
def test_copy_with_filtered_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, type=Dummy) self.assertEqual( { 'key3': Dummy(id=3, name='NAME_B'), 'key4': Dummy(id=4, name='NAME_B') }, lm.filter(name='NAME_B').copy())
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_evaluate_with_criteria_1(self): obj = Dummy(id=1, name='NAME_1', flag=True, link=Dummy(id=2, name='NAME_2'), objects=EmbeddedManager([ Dummy(id=3, name='NAME_3'), Dummy(id=4, name='NAME_4'), Dummy(id=5, name='NAME_5'), ])) e_objects_idx_0 = Expression('objects[0]') self.assertEqual('objects', e_objects_idx_0.name) self.assertEqual(0, e_objects_idx_0.index) self.assertIsNone(e_objects_idx_0.criteria) self.assertEqual(3, e_objects_idx_0.evaluate(obj).id)
def test_filter_get_with_dict(self): data = { 'key1': Dummy(id=1, name='NAME_A', flag='A'), 'key2': Dummy(id=2, name='NAME_A', flag='B'), 'key3': Dummy(id=3, name='NAME_B', flag='C'), 'key4': Dummy(id=4, name='NAME_B', flag='A'), 'key5': Dummy(id=5, name='NAME_B', flag='B'), 'key6': Dummy(id=6, name='NAME_B', flag='C') } lm = EmbeddedManager(data, type=Dummy) self.assertEqual(5, lm.filter(name='NAME_B').get(flag='B').id) self.assertEqual('NAME_B', lm.filter(name='NAME_B').get(flag='B').name) self.assertEqual('B', lm.filter(name='NAME_B').get(flag='B').flag) with self.assertRaises(DoesNotExist): lm.filter(name='NAME_A').get(flag='C')
def test_filter_get(self): data = [ Dummy(id=1, name='NAME_A', flag='A'), Dummy(id=2, name='NAME_A', flag='B'), Dummy(id=3, name='NAME_B', flag='C'), Dummy(id=4, name='NAME_B', flag='A'), Dummy(id=5, name='NAME_B', flag='B'), Dummy(id=6, name='NAME_B', flag='C') ] lm = EmbeddedManager(data, type=Dummy) self.assertEqual(5, lm.filter(name='NAME_B').get(flag='B').id) self.assertEqual('NAME_B', lm.filter(name='NAME_B').get(flag='B').name) self.assertEqual('B', lm.filter(name='NAME_B').get(flag='B').flag) with self.assertRaises(DoesNotExist): lm.filter(name='NAME_A').get(flag='C')