def test_q_attribute_selection(self): # Combinations of attribute lookups, __getitem__ and calling. q = Q.value self.assertEqual(get_query_result(q, self.obj), 'value') q = Q['attr'] self.assertEqual(get_query_result(q, self.obj), 'item attr') q = Q.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.nested_obj['attr'] self.assertEqual(get_query_result(q, self.obj), 'item attr') # Add some operators q = Q.nested_obj.nested_obj.value + '-' + Q.value self.assertEqual(get_query_result(q, self.obj), 'value-value') q = ~ Q.true() self.assertEqual(get_query_result(q, self.obj), False) q = Q.true() & Q.nested_obj.true() self.assertEqual(get_query_result(q, self.obj), True) q = Q.true() | Q.nested_obj.false() self.assertEqual(get_query_result(q, self.obj), True)
def test_q_attribute_selection(self): # Combinations of attribute lookups, __getitem__ and calling. q = Q.value self.assertEqual(get_query_result(q, self.obj), 'value') q = Q['attr'] self.assertEqual(get_query_result(q, self.obj), 'item attr') q = Q.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.action() self.assertEqual(get_query_result(q, self.obj), 'action-result') q = Q.nested_obj.nested_obj['attr'] self.assertEqual(get_query_result(q, self.obj), 'item attr') # Add some operators q = Q.nested_obj.nested_obj.value + '-' + Q.value self.assertEqual(get_query_result(q, self.obj), 'value-value') q = ~Q.true() self.assertEqual(get_query_result(q, self.obj), False) q = Q.true() & Q.nested_obj.true() self.assertEqual(get_query_result(q, self.obj), True) q = Q.true() | Q.nested_obj.false() self.assertEqual(get_query_result(q, self.obj), True)