示例#1
0
    def test_get_logic_key_chunk(self):

        func = _has_any
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1,2,3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e{1,2,3}'
        )

        func = _not_any
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1,2,3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, '~e{1,2,3}'
        )

        func = _has_all
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1&2&3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e{1&2&3}'
        )

        func = _not_all
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1&2&3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, '~e{1&2&3}'
        )

        func = _has_count
        values = [1]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1}'
        )

        func = _has_count
        values = [1, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1-3}'
        )

        func = _has_count
        values = [1, 3, [5, 6, 7, 8, 9]]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(5,6,7,8,9){1-3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(5,6,7,8,9){1-3}'
        )

        func = _not_count
        values = [1]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1}'
        )

        func = _not_count
        values = [1, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1-3}'
        )

        func = _not_count
        values = [1, 3, [5, 6, 7, 8, 9]]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(5,6,7,8,9)~{1-3}'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(5,6,7,8,9)~{1-3}'
        )

        __op_symbol__ = {
            _is_lt: '<', _is_le: '<=',
            _is_eq: '', _is_ne: '!=',
            _is_ge: '>=', _is_gt: '>'
        }
        for op_func in [_is_lt, _is_le, _is_eq, _is_ne, _is_ge, _is_gt]:
            key_part = __op_symbol__[op_func]

            values = [(op_func, 3)]
            chunk = get_logic_key_chunk(_has_count, values)
            self.assertEqual(
                chunk, '{%s3}' % (key_part)
            )

            values = [(op_func, 3), [5, 6, 7, 8, 9]]
            chunk = get_logic_key_chunk(_has_count, values)
            self.assertEqual(
                chunk, '(5,6,7,8,9){%s3}' % (key_part)
            )
            chunk = get_logic_key_chunk(_has_count, values, True)
            self.assertEqual(
                chunk, 'e(5,6,7,8,9){%s3}' % (key_part)
            )

            chunk = get_logic_key_chunk(op_func, 5)
            self.assertEqual(
                chunk,
                '(%s5)' % (__op_symbol__[op_func])
            )
    def test_get_logic_key_chunk(self):

        func = _has_any
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(1,2,3)'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(1,2,3)'            
        )
        
        func = _not_any
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~(1,2,3)'
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, '~e(1,2,3)'            
        )
        
        func = _has_all
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(1&2&3)'            
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(1&2&3)'
        )
        
        func = _not_all
        values = [1, 2, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~(1&2&3)'            
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, '~e(1&2&3)'
        )
        
        func = _has_count
        values = [1]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1}'            
        )
        
        func = _has_count
        values = [1, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '{1-3}'            
        )
        
        func = _has_count
        values = [1, 3, [5, 6, 7, 8, 9]]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(5,6,7,8,9){1-3}'            
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(5,6,7,8,9){1-3}'            
        )
        
        func = _not_count
        values = [1]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1}'            
        )
        
        func = _not_count
        values = [1, 3]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '~{1-3}'            
        )
        
        func = _not_count
        values = [1, 3, [5, 6, 7, 8, 9]]
        chunk = get_logic_key_chunk(func, values)
        self.assertEqual(
            chunk, '(5,6,7,8,9)~{1-3}'            
        )
        chunk = get_logic_key_chunk(func, values, True)
        self.assertEqual(
            chunk, 'e(5,6,7,8,9)~{1-3}'            
        )
        
        __op_symbol__ = {
            _is_lt: '<', _is_le: '<=', 
            _is_eq: '', _is_ne: '!=', 
            _is_ge: '>=', _is_gt: '>'
        }
        for op_func in [_is_lt, _is_le, _is_eq, _is_ne, _is_ge, _is_gt]:
            key_part = __op_symbol__[op_func]
            
            values = [(op_func, 3)]
            chunk = get_logic_key_chunk(_has_count, values)
            self.assertEqual(
                chunk, '{%s3}' % (key_part)
            )
            
            values = [(op_func, 3), [5, 6, 7, 8, 9]]
            chunk = get_logic_key_chunk(_has_count, values)
            self.assertEqual(
                chunk, '(5,6,7,8,9){%s3}' % (key_part)
            )
            chunk = get_logic_key_chunk(_has_count, values, True)
            self.assertEqual(
                chunk, 'e(5,6,7,8,9){%s3}' % (key_part)
            )

            chunk = get_logic_key_chunk(op_func, 5)
            self.assertEqual(
                chunk, 
                '(%s5)' % (__op_symbol__[op_func])
            )