示例#1
0
 def test_parse_list(self):
     ret, buf = SearchKey.parse(b'(4,5,6 NOT 1,2,3)', Params())
     self.assertEqual(b'KEYSET', ret.value)
     self.assertIsInstance(ret.filter, list)
     self.assertEqual(2, len(ret.filter))
     self.assertEqual(b'SEQSET', ret.filter[0].value)
     self.assertIsInstance(ret.filter[0].filter, SequenceSet)
     self.assertEqual([4, 5, 6], ret.filter[0].filter.value)
     self.assertFalse(ret.filter[0].inverse)
     self.assertEqual(b'SEQSET', ret.filter[1].value)
     self.assertIsInstance(ret.filter[1].filter, SequenceSet)
     self.assertEqual([1, 2, 3], ret.filter[1].filter.value)
     self.assertTrue(ret.filter[1].inverse)
示例#2
0
 def test_parse_list(self):
     ret, buf = SearchKey.parse(b'(4,5,6 NOT 1,2,3)', Params())
     self.assertEqual(b'KEYSET', ret.value)
     self.assertIsInstance(ret.filter, list)
     self.assertEqual(2, len(ret.filter))
     self.assertEqual(b'SEQSET', ret.filter[0].value)
     self.assertIsInstance(ret.filter[0].filter, SequenceSet)
     self.assertEqual([4, 5, 6],
                      ret.filter[0].filter.value)
     self.assertFalse(ret.filter[0].inverse)
     self.assertEqual(b'SEQSET', ret.filter[1].value)
     self.assertIsInstance(ret.filter[1].filter, SequenceSet)
     self.assertEqual([1, 2, 3],
                      ret.filter[1].filter.value)
     self.assertTrue(ret.filter[1].inverse)
示例#3
0
 def test_parse_list_error(self):
     with self.assertRaises(UnexpectedType):
         SearchKey.parse(b'(TEST)', Params())
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'(1,2,3', Params())
示例#4
0
 def test_parse_seqset(self):
     ret, buf = SearchKey.parse(b'NOT 1,2,3', Params())
     self.assertEqual(b'SEQSET', ret.value)
     self.assertIsInstance(ret.filter, SequenceSet)
     self.assertEqual([1, 2, 3], ret.filter.value)
     self.assertTrue(ret.inverse)
示例#5
0
 def test_parse_seqset(self):
     ret, buf = SearchKey.parse(b'NOT 1,2,3', Params())
     self.assertEqual(b'SEQSET', ret.value)
     self.assertIsInstance(ret.filter, SequenceSet)
     self.assertEqual([1, 2, 3], ret.filter.value)
     self.assertTrue(ret.inverse)
示例#6
0
 def test_parse_filter_or(self):
     ret, buf = SearchKey.parse(b'OR NEW OLD', Params())
     self.assertEqual(b'OR', ret.value)
     self.assertEqual(b'NEW', ret.filter[0].value)
     self.assertEqual(b'OLD', ret.filter[1].value)
     self.assertFalse(ret.inverse)
示例#7
0
 def test_parse_filter_uid(self):
     ret, buf = SearchKey.parse(b'UID 1,2,3', Params())
     self.assertEqual(b'SEQSET', ret.value)
     self.assertIsInstance(ret.filter, SequenceSet)
     self.assertEqual([1, 2, 3], ret.filter.value)
     self.assertFalse(ret.inverse)
示例#8
0
 def test_parse_filter_keyword(self):
     ret, buf = SearchKey.parse(b'keyword test', Params())
     self.assertEqual(b'KEYWORD', ret.value)
     self.assertEqual(b'test', ret.filter)
     self.assertFalse(ret.inverse)
示例#9
0
 def test_parse_filter_uid(self):
     ret, buf = SearchKey.parse(b'UID 1,2,3', Params())
     self.assertEqual(b'SEQSET', ret.value)
     self.assertIsInstance(ret.filter, SequenceSet)
     self.assertEqual([1, 2, 3], ret.filter.value)
     self.assertFalse(ret.inverse)
示例#10
0
 def test_parse_filter_number(self):
     ret, buf = SearchKey.parse(b'larger 1000', Params())
     self.assertEqual(b'LARGER', ret.value)
     self.assertEqual(1000, ret.filter)
     self.assertFalse(ret.inverse)
示例#11
0
 def test_parse_filter_keyword(self):
     ret, buf = SearchKey.parse(b'keyword test', Params())
     self.assertEqual(b'KEYWORD', ret.value)
     self.assertEqual(b'test', ret.filter)
     self.assertFalse(ret.inverse)
示例#12
0
 def test_parse_filter_date(self):
     ret, buf = SearchKey.parse(b'before 01-Jan-1970', Params())
     self.assertEqual(b'BEFORE', ret.value)
     self.assertEqual(datetime(1970, 1, 1), ret.filter)
     self.assertFalse(ret.inverse)
示例#13
0
 def test_parse_filter_astring(self):
     ret, buf = SearchKey.parse(b'subject "testing"', Params())
     self.assertEqual(b'SUBJECT', ret.value)
     self.assertEqual('testing', ret.filter)
     self.assertFalse(ret.inverse)
示例#14
0
 def test_parse_list_error(self):
     with self.assertRaises(UnexpectedType):
         SearchKey.parse(b'(TEST)', Params())
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'(1,2,3', Params())
示例#15
0
 def test_parse_filter_astring(self):
     ret, buf = SearchKey.parse(b'subject "testing"', Params())
     self.assertEqual(b'SUBJECT', ret.value)
     self.assertEqual('testing', ret.filter)
     self.assertFalse(ret.inverse)
示例#16
0
 def test_parse_filter_header(self):
     ret, buf = SearchKey.parse(b'HEADER "From" "*****@*****.**"',
                                Params())
     self.assertEqual(b'HEADER', ret.value)
     self.assertEqual(('From', '*****@*****.**'), ret.filter)
     self.assertFalse(ret.inverse)
示例#17
0
 def test_parse_filter_date(self):
     ret, buf = SearchKey.parse(b'before 01-Jan-1970', Params())
     self.assertEqual(b'BEFORE', ret.value)
     self.assertEqual(datetime(1970, 1, 1), ret.filter)
     self.assertFalse(ret.inverse)
示例#18
0
 def test_parse_filter_or(self):
     ret, buf = SearchKey.parse(b'OR NEW OLD', Params())
     self.assertEqual(b'OR', ret.value)
     self.assertEqual(b'NEW', ret.filter[0].value)
     self.assertEqual(b'OLD', ret.filter[1].value)
     self.assertFalse(ret.inverse)
示例#19
0
 def test_parse_filter_number(self):
     ret, buf = SearchKey.parse(b'larger 1000', Params())
     self.assertEqual(b'LARGER', ret.value)
     self.assertEqual(1000, ret.filter)
     self.assertFalse(ret.inverse)
示例#20
0
 def test_parse_error(self):
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'test', Params())
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'before stuff', Params())
示例#21
0
 def test_parse_filter_header(self):
     ret, buf = SearchKey.parse(
         b'HEADER "From" "*****@*****.**"', Params())
     self.assertEqual(b'HEADER', ret.value)
     self.assertEqual(('From', '*****@*****.**'), ret.filter)
     self.assertFalse(ret.inverse)
示例#22
0
 def test_parse(self):
     ret, buf = SearchKey.parse(b'ALL  ', Params())
     self.assertEqual(b'ALL', ret.value)
     self.assertIsNone(ret.filter)
     self.assertFalse(ret.inverse)
     self.assertEqual(b'  ', buf)
示例#23
0
 def test_parse_error(self):
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'test', Params())
     with self.assertRaises(NotParseable):
         SearchKey.parse(b'before stuff', Params())
示例#24
0
 def test_parse(self):
     ret, buf = SearchKey.parse(b'ALL  ', Params())
     self.assertEqual(b'ALL', ret.value)
     self.assertIsNone(ret.filter)
     self.assertFalse(ret.inverse)
     self.assertEqual(b'  ', buf)