def test_it_supports_postfix_style_AND_filter_by(self): sut = ObjectSelector(['field1', 'field2', '&'], self.fields) result = sut.get_by() self.assertQEqual(Q(field1='value1') & Q(field2='value2'), result)
def test_it_supports_postfix_style_NOT_filter_by(self): sut = ObjectSelector(['field1', '~'], self.fields) result = sut.get_by() self.assertQEqual(~Q(field1='value1'), result)
def test_get_by_returns_an_AND_filter_by_default(self): sut = ObjectSelector(['field1', 'field2'], self.fields) result = sut.get_by() self.assertQEqual(Q(field1='value1') & Q(field2='value2'), result)
def test_it_supports_a_single_get_by_field(self): sut = ObjectSelector(['field1'], self.fields) result = sut.get_by() self.assertQEqual(Q(field1='value1'), result)
def test_it_raises_an_error_if_insufficient_operators(self): with self.assertRaises(ValueError): sut = ObjectSelector(['field1', 'field2', 'field3', '&'], self.fields) result = sut.get_by()
def test_it_raises_an_error_if_insufficient_operands_for_NOT(self): with self.assertRaises(ValueError): sut = ObjectSelector(['~'], self.fields) result = sut.get_by()
def test_it_supports_postfix_style_filter_by_options_extended(self): sut = ObjectSelector(['field1', 'field2', '&', 'field3', '~', 'field4', '&', '|'], self.fields) result = sut.get_by() self.assertQEqual((Q(field1='value1') & Q(field2='value2')) | (~Q(field3='value3') & Q(field4='value4')), result)