forked from overcoil/fork-databricks-sql-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
154 lines (106 loc) · 6.11 KB
/
Makefile
File metadata and controls
154 lines (106 loc) · 6.11 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#
# Clearinghouse for initiating adhoc PyTest runs to test the Databricks SQLAlchemy dialect
#
# NB: At present, the database fixtures aren't being cleaned up after each run.
# Use the clean pseudo-targets to remove these after your run.
#
# NB2: the target system (the parameter to --dburi) is specified via environment variables.
# See env.template.
DBSCLI=dbsqlcli
PYTEST=poetry run python3 -m pytest
SUITE_PATH=tests/sqlalchemy
SUITE=test_suite.py
.PHONY=all clean showtables full reflection simple str num drop_simpletest drop_reflectiontest
all: full
clean: drop_simpletest drop_reflectiontest \
drop_booleantest drop_datetest drop_datetimetest drop_integertest drop_numerictest drop_stringtest drop_tableddl
showtables:
$(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); show tables;"
$(DBSCLI) -e "USE test_schema; show tables;"
$(DBSCLI) -e "USE test_schema_2; show tables;"
full:
$(PYTEST) $(SUITE_PATH) \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)" \
--log-file=~/.pytestlogs/full.log
sa-bool: drop_booleantest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::BooleanTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-date: drop_datetest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::DateTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-dt: drop_datetimetest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::DateTimeTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-int: drop_integertest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::IntegerTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-num: drop_numerictest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::NumericTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-str: drop_stringtest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::StringTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-ddl: drop_tableddl
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::TableDDLTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-ddl1: drop_tableddl
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::TableDDLTest:test_create_table \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-ddl2: drop_tableddl
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::TableDDLTest:test_create_table_schema \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-ddl3: drop_tableddl
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::TableDDLTest:test_drop_table \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
sa-join: drop_jointest
$(PYTEST) $(SUITE_PATH)/test_full_sa.py::JoinTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
reflection:
$(PYTEST) $(SUITE_PATH)/$(SUITE)::ReflectionTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
num:
$(PYTEST) $(SUITE_PATH)/$(SUITE)::ReflectionTest::test_numtypes \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
str:
$(PYTEST) $(SUITE_PATH)/$(SUITE)::ReflectionTest::test_strtypes \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
simple:
$(PYTEST) $(SUITE_PATH)/$(SUITE)::SimpleTest \
--dburi "databricks+thrift://token:$(DATABRICKS_TOKEN)@$(DATABRICKS_SERVER_HOSTNAME)/$(DATABRICKS_SCHEMA)?http_path=$(DATABRICKS_HTTP_PATH)"
# clean up after SimpleTest run
drop_simpletest:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS simpletest_num;"
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS simpletest_str;"
# clean up after ReflectionTest run
drop_reflectiontest:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS reflectiontest_all_num_types;"
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS reflectiontest_all_str_types;"
# clean up after SQLAlchemy test suite
drop_booleantest: drop_boolean_table
drop_datetest: drop_date_table
drop_datetimetest: drop_date_table
drop_integertest: drop_t drop_tabletest
drop_numerictest: drop_t drop_tabletest
drop_stringtest: drop_t drop_boolean_table
drop_tableddl: drop__test_table drop_test_table
drop_jointest: drop_a drop_b
drop_t:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS t;"
drop_tabletest:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS tabletest;"
drop_boolean_table:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS boolean_table;"
drop__test_table:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS _test_table;"
drop_test_table:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS test_table;"
drop_a:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS a;"
drop_b:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS b;"
drop_date_table:
echo y | $(DBSCLI) -e "USE $(DATABRICKS_SCHEMA); DROP TABLE IF EXISTS date_table;"
# these two schemas are baked into SQLAlchemy's test suite
satestdb:
$(DBSCLI) -e "CREATE DATABASE test_schema;"
$(DBSCLI) -e "CREATE DATABASE test_schema_2;"