Skip to content

Commit a6ad7bf

Browse files
committed
wip
1 parent f42f913 commit a6ad7bf

File tree

3 files changed

+184
-3
lines changed

3 files changed

+184
-3
lines changed

test/sql/auth.test

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# name: test/sql/httpserver.test
2+
# description: test httpserver extension
3+
# group: [httpserver]
4+
5+
################################################################
6+
# Setup
7+
################################################################
8+
9+
require httpserver
10+
11+
statement ok
12+
INSTALL http_client FROM community;
13+
14+
statement ok
15+
LOAD http_client;
16+
17+
statement ok
18+
INSTALL json;
19+
20+
statement ok
21+
LOAD json;
22+
23+
################################################################
24+
# No auth test
25+
################################################################
26+
27+
query I
28+
SELECT httpserve_start('127.0.0.1', 4000, '');
29+
----
30+
HTTP server started on 127.0.0.1:4000
31+
32+
query TTT
33+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT 123', MAP {}, MAP {}) response)
34+
SELECT
35+
response->>'status',
36+
response->>'reason',
37+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
38+
FROM response;
39+
----
40+
200 OK {"123":"123"}\n
41+
42+
query I
43+
SELECT httpserve_stop();
44+
----
45+
HTTP server stopped
46+
47+
################################################################
48+
# Basic auth test
49+
################################################################
50+
51+
query I
52+
SELECT httpserve_start('127.0.0.1', 4000, 'bob:pwd');
53+
----
54+
HTTP server started on 127.0.0.1:4000
55+
56+
query TTT
57+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT 123', MAP {}, MAP {}) response)
58+
SELECT
59+
response->>'status',
60+
response->>'reason',
61+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
62+
FROM response;
63+
----
64+
401 Unauthorized Unauthorized
65+
66+
query TTT
67+
WITH response AS (
68+
SELECT http_post(
69+
'http://127.0.0.1:4000/?q=SELECT 123',
70+
MAP {
71+
'Authorization': CONCAT('Basic ', TO_BASE64('bob:pwd'::BLOB)),
72+
},
73+
MAP {}
74+
) response
75+
)
76+
SELECT
77+
response->>'status',
78+
response->>'reason',
79+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
80+
FROM response;
81+
----
82+
200 OK {"123":"123"}\n
83+
84+
query I
85+
SELECT httpserve_stop();
86+
----
87+
HTTP server stopped
88+
89+
################################################################
90+
# Token test
91+
################################################################
92+
93+
query I
94+
SELECT httpserve_start('127.0.0.1', 4000, 'my-api-key');
95+
----
96+
HTTP server started on 127.0.0.1:4000
97+
98+
query TTT
99+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT 123', MAP {}, MAP {}) response)
100+
SELECT
101+
response->>'status',
102+
response->>'reason',
103+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
104+
FROM response;
105+
----
106+
401 Unauthorized Unauthorized
107+
108+
query TTT
109+
WITH response AS (
110+
SELECT http_post(
111+
'http://127.0.0.1:4000/?q=SELECT 123',
112+
MAP {
113+
'X-API-Key': 'my-api-key',
114+
},
115+
MAP {}
116+
) response
117+
)
118+
SELECT
119+
response->>'status',
120+
response->>'reason',
121+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
122+
FROM response;
123+
----
124+
200 OK {"123":"123"}\n
125+
126+
query I
127+
SELECT httpserve_stop();
128+
----
129+
HTTP server stopped

test/sql/basics.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ LOAD json;
2525

2626
# The HTTP server is not available yet
2727
query TTT
28-
WITH response AS (SELECT http_post('http://127.0.0.1:4000/abc', MAP{}, MAP{}) response)
28+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/abc', MAP {}, MAP {}) response)
2929
SELECT
3030
response->>'status',
3131
response->>'reason',
@@ -42,7 +42,7 @@ HTTP server started on 127.0.0.1:4000
4242

4343
# Simple request
4444
query TTT
45-
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT ''World'' AS Hello', MAP{}, MAP{}) response)
45+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT ''World'' AS Hello', MAP {}, MAP {}) response)
4646
SELECT
4747
response->>'status',
4848
response->>'reason',
@@ -59,7 +59,7 @@ HTTP server stopped
5959

6060
# The HTTP server is not available anymore
6161
query TTT
62-
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT ''World'' AS Hello', MAP{}, MAP{}) response)
62+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT ''World'' AS Hello', MAP {}, MAP {}) response)
6363
SELECT
6464
response->>'status',
6565
response->>'reason',

test/sql/simple-get.test

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# name: test/sql/httpserver.test
2+
# description: test httpserver extension
3+
# group: [httpserver]
4+
5+
################################################################
6+
# Setup
7+
################################################################
8+
9+
require httpserver
10+
11+
statement ok
12+
INSTALL http_client FROM community;
13+
14+
statement ok
15+
LOAD http_client;
16+
17+
statement ok
18+
INSTALL json;
19+
20+
statement ok
21+
LOAD json;
22+
23+
query I
24+
SELECT httpserve_start('127.0.0.1', 4000, '');
25+
----
26+
HTTP server started on 127.0.0.1:4000
27+
28+
################################################################
29+
# Tests
30+
################################################################
31+
32+
# SQL request in `q` parameter
33+
query TTT
34+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?q=SELECT 123', MAP {}, MAP {}) response)
35+
SELECT
36+
response->>'status',
37+
response->>'reason',
38+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
39+
FROM response;
40+
----
41+
200 OK {"123":"123"}\n
42+
43+
# SQL request in `query` parameter
44+
query TTT
45+
WITH response AS (SELECT http_post('http://127.0.0.1:4000/?query=SELECT 123', MAP {}, MAP {}) response)
46+
SELECT
47+
response->>'status',
48+
response->>'reason',
49+
regexp_replace(response->>'body', '[\r\n]+', '\\n')
50+
FROM response;
51+
----
52+
200 OK {"123":"123"}\n

0 commit comments

Comments
 (0)