def test_DataListOfListWithFieldsArrayQuery_RaiseException(self): # Arrange data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] fields = '[].address' # Act & Assert with pytest.raises(AssertionError): result = collection_filter(data, fields)
def test_DataPrimitiveTypeWithFieldsDontCare_RaiseException(self): # Arrange data = 1 fields = 'foo' # Act & Assert with pytest.raises(AssertionError): result = collection_filter(data, fields)
def test_DataListOfPrimitiveTypeWithFieldsArrayQuery_RaiseException(self): # Arrange data = [1, 2, 3] fields = '[].address' # Act & Assert with pytest.raises(AssertionError): result = collection_filter(data, fields)
def test_DataListWithFieldOneKey_RaiseException(self): # Arrange data = [{'foo': 1}, {'bar': 2}] fields = 'foo' # Act & Assert with pytest.raises(AssertionError): result = collection_filter(data, fields)
def test_DataDictWithFieldsArrayQuery_RaiseException(self): # Arrange data = {'foo': 1, 'bar': 2} fields = '[].foo' # Act & Assert with pytest.raises(AssertionError): result = collection_filter(data, fields)
def test_DataDictTwoLevelWithFieldsTwoElement_ReturnSubsetData(self): # Arrange data = {'foo': {'Alice': 'someone', 'Bob': 'Say Hi!', 'orange': 'banana'}} fields = 'foo.Alice,foo.orange' # Act result = collection_filter(data, fields) # Assert assert result == {'foo': {'Alice': 'someone', 'orange': 'banana'}}
def test_DataDictWithFieldsTwoElement_ReturnSubsetData(self): # Arrange data = {'foo': 1, 'bar': 2, 'Alice': 'someone', 'Bob': 'Say Hi!'} fields = 'foo,Alice' # Act result = collection_filter(data, fields) # Assert assert result == {'foo': 1, 'Alice': 'someone'}
def test_DataDictWithFieldsOneElement_ReturnSubsetData(self): # Arrange data = {'foo': 1, 'bar': 2} fields = 'foo' # Act result = collection_filter(data, fields) # Assert assert result == {'foo': 1}
def test_DataListWithFieldsTwoArrayQuery_ReturnSubsetOfListData(self): # Arrange data = [{'foo': {'apple': 1, 'orange': 2}}, {'foo': {'apple': 3, 'orange': 4, 'banana': 5}}] fields = '[].foo.apple,[].foo.orange' # Act result = collection_filter(data, fields) # Assert assert result == [{'foo': {'apple': 1, 'orange': 2}}, {'foo': {'apple': 3, 'orange': 4}}]
def test_DataListWithFieldsNonexistingArrayQuery_ReturnEmptyListData(self): # Arrange data = [{'foo': 1, 'bar': 2}, {'foo': 3, 'bar': 4, 'orange': 'banana'}] fields = '[].nonexisted' # Act result = collection_filter(data, fields) # Assert assert result == [{}, {}]
def test_DataListWithFieldsArrayQuery_ReturnSubsetOfListData(self): # Arrange data = [{'foo': 1, 'bar': 2}, {'foo': 3, 'bar': 4, 'orange': 'banana'}] fields = '[].foo' # Act result = collection_filter(data, fields) # Assert assert result == [{'foo': 1}, {'foo': 3}]
def test_DataListOfObjectWithFieldsEmptyString_ReturnOriginalData(self): # Arrange data = [{'foo': 1}, {'bar': 2}] fields = '' # Act result = collection_filter(data, fields) # Assert assert data == result
def test_DataListWithFieldsArrayQuery_ReturnOriginalList(self): # Arrange data = [{'foo': 1}, {'bar': 2}] fields = '[]' # Act result = collection_filter(data, fields) # Assert assert result == data
def test_DataDictIncludeListWithFieldsDeepKeyQuery_ReturnSubsetData(self): # Arrange data = {'foo': 1, 'aList': [{'elem1': 1}, {'elem2': 2}, {'elem3': 3}]} fields = 'aList[].elem1' # Act result = collection_filter(data, fields) # Assert assert result == {'aList': [{'elem1': 1}, {}, {}]}
def test_DataDictWithFieldsEmptyString_ReturnOriginalData(self): # Arrange data = {'foo': 'bar'} fields = '' # Act result = collection_filter(data, fields) # Assert assert data == result
def test_DataDictIncludeListWithTwoFieldsDeepKeyQuery_ReturnUnionSubsetData(self): # Arrange data = {'foo': 1, 'aList': [{'foo': 1, 'bar': 2, 'dontcare': 99}, {'foo': 3, 'bar': 4, 'dontcare': 100}]} fields = 'aList[].foo,aList[].bar' # Act result = collection_filter(data, fields) # Assert assert result == {'aList': [{'foo': 1, 'bar': 2}, {'foo': 3, 'bar': 4}]}
def test_DataDictWithFieldsTwoLevelQuery_ReturnDeepData(self): # Arrange data = {'aDict': {'bar': 2, 'Alice': 'someone', 'Bob': 'Say Hi!'}} fields = 'aDict.Alice' # Act result = collection_filter(data, fields) # Assert assert result == {'aDict': {'Alice': 'someone'}}