Skip to content
This repository was archived by the owner on May 5, 2022. It is now read-only.

Commit b8e0dcd

Browse files
committed
test: add datatype.split testcases
1 parent 8e7f8a6 commit b8e0dcd

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

tests/__init__.py

Whitespace-only changes.

tests/test_datatype_split.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from typing import *
2+
3+
import pytest
4+
from assertpy import assert_that
5+
6+
from sqlalchemy_trino import datatype
7+
8+
split_string_testcases = {
9+
'10': ['10'],
10+
'10,3': ['10', '3'],
11+
'varchar': ['varchar'],
12+
'varchar,int': ['varchar', 'int'],
13+
'varchar,int,float': ['varchar', 'int', 'float'],
14+
'array(varchar)': ['array(varchar)'],
15+
'array(varchar),int': ['array(varchar)', 'int'],
16+
'array(varchar(20))': ['array(varchar(20))'],
17+
'array(varchar(20)),int': ['array(varchar(20))', 'int'],
18+
'array(varchar(20)),array(varchar(20))': ['array(varchar(20))', 'array(varchar(20))'],
19+
'map(varchar, integer),int': ['map(varchar, integer)', 'int'],
20+
'map(varchar(20), integer),int': ['map(varchar(20), integer)', 'int'],
21+
'map(varchar(20), varchar(20)),int': ['map(varchar(20), varchar(20))', 'int'],
22+
'map(varchar(20), varchar(20)),array(varchar)': ['map(varchar(20), varchar(20))', 'array(varchar)'],
23+
'row(first_name varchar(20), last_name varchar(20)),int':
24+
['row(first_name varchar(20), last_name varchar(20))', 'int'],
25+
}
26+
27+
28+
@pytest.mark.parametrize(
29+
'input_string, output_strings',
30+
split_string_testcases.items(),
31+
ids=split_string_testcases.keys()
32+
)
33+
def test_split_string(input_string: str, output_strings: List[str]):
34+
actual = list(datatype.split(input_string))
35+
assert_that(actual).is_equal_to(output_strings)
36+
37+
38+
split_delimiter_testcases = [
39+
('first,second', ',', ['first', 'second']),
40+
('first second', ' ', ['first', 'second']),
41+
('first|second', '|', ['first', 'second']),
42+
('first,second third', ',', ['first', 'second third']),
43+
('first,second third', ' ', ['first,second', 'third']),
44+
]
45+
46+
47+
@pytest.mark.parametrize(
48+
'input_string, delimiter, output_strings',
49+
split_delimiter_testcases,
50+
)
51+
def test_split_delimiter(input_string: str, delimiter: str, output_strings: List[str]):
52+
actual = list(datatype.split(input_string, delimiter=delimiter))
53+
assert_that(actual).is_equal_to(output_strings)

0 commit comments

Comments
 (0)