def test_subrecord_filter_deep(self): data = [{'a': {'d':[{'b': 2}, {'b': 4}]}}, {'a': {'d':[{'b': 5}]}}, {'a': {'d':[{'b': 8}, {'b':2}, {'b':1}]}}] expected = [{'a': {'d':[{'b': 4}, {'b': 8}]}}, {'a': {'d':[{'b': 10}]}}, {'a': {'d':[{'b': 16}, {'b':4}, {'b':2}]}}] sf = SubrecordFilter('a.d', NonModifyingFieldDoubler('b')) result = sf.attach(data) self.assertEquals(list(result), expected)
def test_subrecord_filter_list_in_path(self): data = [ {'a': [{'b': {'c': 5}}, {'b': {'c': 6}}]}, {'a': [{'b': {'c': 1}}, {'b': {'c': 2}}, {'b': {'c': 3}}]}, {'a': [{'b': {'c': 2}} ]} ] expected = [ {'a': [{'b': {'c': 10}}, {'b': {'c': 12}}]}, {'a': [{'b': {'c': 2}}, {'b': {'c': 4}}, {'b': {'c': 6}}]}, {'a': [{'b': {'c': 4}} ]} ] sf = SubrecordFilter('a.b', NonModifyingFieldDoubler('c')) result = sf.attach(data) self.assertEquals(list(result), expected)
def test_subrecord_filter_nonlist(self): data = [ {'a':{'b':{'c':1}}}, {'a':{'b':{'c':2}}}, {'a':{'b':{'c':3}}}, ] expected = [ {'a':{'b':{'c':2}}}, {'a':{'b':{'c':4}}}, {'a':{'b':{'c':6}}}, ] sf = SubrecordFilter('a.b', NonModifyingFieldDoubler('c')) result = sf.attach(data) self.assertEqual(list(result), expected)