def test_empty(self): data = { 'integer': 42, 'string': 'a string', 'boolean': True, } result = mask.apply(data, '{}') self.assertEqual(result, {})
def test_star_only(self): data = { 'integer': 42, 'string': 'a string', 'boolean': True, } result = mask.apply(data, '*') self.assertEqual(result, data)
def test_with_ordered_dict(self): data = OrderedDict({ 'integer': 42, 'string': 'a string', 'boolean': True, }) result = mask.apply(data, '{integer, string}') self.assertEqual(result, {'integer': 42, 'string': 'a string'})
def test_multiple_fields(self): data = { 'integer': 42, 'string': 'a string', 'boolean': True, } result = mask.apply(data, '{integer, string}') self.assertEqual(result, {'integer': 42, 'string': 'a string'})
def test_nested_api_fields(self): result = mask.apply(family_fields, 'father{name},children{age}') self.assertEqual(set(result.keys()), set(['father', 'children'])) self.assertIsInstance(result['father'], fields.Nested) self.assertEqual(set(result['father'].nested.keys()), set(['name'])) self.assertIsInstance(result['children'], fields.List) self.assertIsInstance(result['children'].container, fields.Nested) self.assertEqual(set(result['children'].container.nested.keys()), set(['age']))
def test_nested_fields(self): data = { 'nested': { 'integer': 42, 'string': 'a string', 'boolean': True, } } result = mask.apply(data, '{nested{integer}}') self.assertEqual(result, {'nested': {'integer': 42}})
def test_nested_with_start(self): data = { 'nested': { 'integer': 42, 'string': 'a string', 'boolean': True, }, 'other': 'value', } result = mask.apply(data, '{nested{integer},*}') self.assertEqual(result, {'nested': {'integer': 42}, 'other': 'value'})
def test_nested_list_fields(self): data = { 'list': [{ 'integer': 42, 'string': 'a string', }, { 'integer': 404, 'string': 'another string', }] } result = mask.apply(data, '{list{integer}}') self.assertEqual(result, {'list': [{'integer': 42}, {'integer': 404}]})
def test_list(self): data = [{ 'integer': 42, 'string': 'a string', 'boolean': True, }, { 'integer': 404, 'string': 'another string', 'boolean': False, }] result = mask.apply(data, '{integer, string}') self.assertEqual(result, [ {'integer': 42, 'string': 'a string'}, {'integer': 404, 'string': 'another string'} ])
def test_list(self): data = [{ 'integer': 42, 'string': 'a string', 'boolean': True, }, { 'integer': 404, 'string': 'another string', 'boolean': False, }] result = mask.apply(data, '{integer, string}') self.assertEqual(result, [{ 'integer': 42, 'string': 'a string' }, { 'integer': 404, 'string': 'another string' }])
def test_nested_fields_when_none(self): data = {'nested': None} result = mask.apply(data, '{nested{integer}}') self.assertEqual(result, {'nested': None})
def test_missing_nested_field_skipped(self): result = mask.apply({}, 'nested{integer}', skip=True) self.assertEqual(result, {})
def test_missing_field_none_by_default(self): result = mask.apply({}, '{integer}') self.assertEqual(result, {'integer': None})