def test_empty_field_values_match_if_the_field_is_present(self): # This test currently fails because the CarddavObject class has all # attributes set because they are properties. So the test in the query # class if an attribute is present never fails. uid = 'Some Test Uid' vcard1 = TestCarddavObject(uid=uid) vcard2 = TestCarddavObject() query = FieldQuery('uid', '') self.assertTrue(query.match(vcard1)) self.assertFalse(query.match(vcard2))
def test_and_queries_match_after_sorting(self): null = NullQuery() any = AnyQuery() term = TermQuery("foo") field = FieldQuery("x", "y") first = AndQuery(null, any, term, field) second = AndQuery(any, null, field, term) self.assertEqual(first, second)
def test_valuess_can_match_case_insensitive(self): uid = 'Some Test Uid' vcard = TestCarddavObject(uid=uid) query1 = FieldQuery('uid', uid.upper()) query2 = FieldQuery('uid', uid.lower()) self.assertTrue(query1.match(vcard)) self.assertTrue(query2.match(vcard))
def test_empty_field_values_fails_if_the_field_is_absent(self): vcard = TestCarddavObject() query = FieldQuery('emails', '') self.assertFalse(query.match(vcard))
def test_field_value_can_contain_colons(self): actual = parse("formatted_name:foo:bar") expected = FieldQuery("formatted_name", "foo:bar") self.assertEqual(actual, expected)
def test_field_value_can_be_empty(self): actual = parse("formatted_name:") expected = FieldQuery("formatted_name", "") self.assertEqual(actual, expected)
def test_parsing_simple_field_queries(self): actual = parse("formatted_name:foo bar") expected = FieldQuery("formatted_name", "foo bar") self.assertEqual(actual, expected)
def test_match_email_type(self): vcard = load_contact("contact1.vcf") query = FieldQuery('emails', 'home') self.assertTrue(query.match(vcard))
def test_fail_match_in_other_field(self): vcard = load_contact("contact1.vcf") query = FieldQuery('formatted_name', '*****@*****.**') self.assertFalse(query.match(vcard))
def test_match_birthday(self): vcard = load_contact("contact1.vcf") query = FieldQuery('birthday', '2018-01-20') self.assertTrue(query.match(vcard))
def test_match_email(self): vcard = load_contact("contact1.vcf") query = FieldQuery('emails', '*****@*****.**') self.assertTrue(query.match(vcard))
def test_match_formatted_name(self): vcard = TestCarddavObject(fn='foo bar') query = FieldQuery('formatted_name', 'foo') self.assertTrue(query.match(vcard))
def test_values_can_match_substrings(self): uid = 'Some Test Uid' vcard = TestCarddavObject(uid=uid) query = FieldQuery('uid', 'e Test U') self.assertTrue(query.match(vcard))