]>
Commit | Line | Data |
---|---|---|
1a152698 | 1 | import requests |
825fa717 | 2 | import socket |
825fa717 | 3 | import time |
1a152698 CH |
4 | from test_helper import ApiTestCase |
5 | ||
6 | ||
7 | class TestBasics(ApiTestCase): | |
8 | ||
c1374bdb | 9 | def test_unauth(self): |
46d06a12 | 10 | r = requests.get(self.url("/api/v1/servers/localhost")) |
53255086 | 11 | self.assertEquals(r.status_code, requests.codes.unauthorized) |
825fa717 | 12 | |
c1374bdb | 13 | def test_split_request(self): |
825fa717 CH |
14 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
15 | s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) | |
16 | s.connect((self.server_address, self.server_port)) | |
17 | ||
18 | parts = ("GET / HTTP/1.0\r\n", "Content-Type: text/plain\r\n\r\n") | |
19 | ||
20 | print("Sending request") | |
21 | for part in parts: | |
22 | print("Sending %s" % part) | |
541bb91b | 23 | s.sendall(part.encode('ascii')) |
825fa717 CH |
24 | time.sleep(0.5) |
25 | ||
26 | resp = s.recv(4096, socket.MSG_WAITALL) | |
27 | s.close() | |
28 | ||
541bb91b | 29 | print("response", repr(resp)) |
825fa717 CH |
30 | |
31 | status = resp.splitlines(0)[0] | |
541bb91b | 32 | if b'400' in status: |
825fa717 | 33 | raise Exception('Got unwanted response: %s' % status) |
7f7481be AT |
34 | |
35 | def test_cors(self): | |
46d06a12 | 36 | r = self.session.options(self.url("/api/v1/servers/localhost")) |
7f7481be AT |
37 | # look for CORS headers |
38 | ||
39 | self.assertEquals(r.status_code, requests.codes.ok) | |
40 | self.assertEquals(r.headers['access-control-allow-origin'], "*") | |
41 | self.assertEquals(r.headers['access-control-allow-headers'], 'Content-Type, X-API-Key') | |
42 | self.assertEquals(r.headers['access-control-allow-methods'], 'GET, POST, PUT, PATCH, DELETE, OPTIONS') | |
43 | ||
541bb91b | 44 | print("response", repr(r.headers)) |