-
Notifications
You must be signed in to change notification settings - Fork 144
Expand file tree
/
Copy pathtest_internal_utils.py
More file actions
78 lines (70 loc) · 2.66 KB
/
test_internal_utils.py
File metadata and controls
78 lines (70 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#
# Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved.
#
import pytest
from snowflake.connector.options import MissingPandas
from snowflake.snowpark._internal import utils
from snowflake.snowpark._internal.utils import _pandas_importer
@pytest.mark.parametrize(
"path, expected_dir, expected_file",
[
("stage/", "stage", ""),
("stage/file.txt", "stage", "file.txt"),
("dir/subdir/file.txt", "dir/subdir", "file.txt"),
("@stage/dir/subdir/file.txt", "@stage/dir/subdir", "file.txt"),
("'@stage/dir/subdir/file.txt'", "@stage/dir/subdir", "file.txt"),
(
"snow://domain/test_entity/versions/test_version/file.txt",
"snow://domain/test_entity/versions/test_version",
"file.txt",
),
(
"'snow://domain/test_entity/versions/test_version/file.txt'",
"snow://domain/test_entity/versions/test_version",
"file.txt",
),
],
)
def test_split_path(path: str, expected_dir: str, expected_file: str) -> None:
dir, file = utils.split_path(path)
assert expected_dir == dir
assert expected_file == file
@pytest.mark.parametrize(
"path, is_local, expected",
[
("dir/file.txt", True, "'file://dir/file.txt'"),
("dir/subdir/file.txt", True, "'file://dir/subdir/file.txt'"),
("'dir/subdir/file.txt'", True, "'dir/subdir/file.txt'"),
("file://dir/subdir/file.txt", True, "'file://dir/subdir/file.txt'"),
("stage/", False, "'@stage/'"),
("stage/file.txt", False, "'@stage/file.txt'"),
("'stage/file.txt'", False, "'stage/file.txt'"),
(
"stage/'embedded_quote'/file.txt",
False,
"'@stage/\\'embedded_quote\\'/file.txt'",
),
("@stage/dir/subdir/file.txt", False, "'@stage/dir/subdir/file.txt'"),
("'@stage/dir/subdir/file.txt'", False, "'@stage/dir/subdir/file.txt'"),
(
"snow://domain/test_entity/versions/test_version/file.txt",
False,
"'snow://domain/test_entity/versions/test_version/file.txt'",
),
(
"'snow://domain/test_entity/versions/test_version/file.txt'",
False,
"'snow://domain/test_entity/versions/test_version/file.txt'",
),
],
)
def test_normalize_path(path: str, is_local: bool, expected: str) -> None:
actual = utils.normalize_path(path, is_local)
assert expected == actual
def test__pandas_importer():
imported_pandas = _pandas_importer()
try:
import pandas
assert imported_pandas == pandas
except ImportError:
assert imported_pandas == MissingPandas