1# Copyright 2023 Google LLC 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15from bumble import at 16 17 18def test_tokenize_parameters(): 19 assert at.tokenize_parameters(b'1, 2, 3') == [b'1', b',', b'2', b',', b'3'] 20 assert at.tokenize_parameters(b'"1, 2, 3"') == [b'1, 2, 3'] 21 assert at.tokenize_parameters(b'(1, "2, 3")') == [b'(', b'1', b',', b'2, 3', b')'] 22 23 24def test_parse_parameters(): 25 assert at.parse_parameters(b'1, 2, 3') == [b'1', b'2', b'3'] 26 assert at.parse_parameters(b'1,, 3') == [b'1', b'', b'3'] 27 assert at.parse_parameters(b'"1, 2, 3"') == [b'1, 2, 3'] 28 assert at.parse_parameters(b'1, (2, (3))') == [b'1', [b'2', [b'3']]] 29 assert at.parse_parameters(b'1, (2, "3, 4"), 5') == [b'1', [b'2', b'3, 4'], b'5'] 30 31 32# ----------------------------------------------------------------------------- 33if __name__ == '__main__': 34 test_tokenize_parameters() 35 test_parse_parameters() 36