]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.api/test_Basics.py
Merge pull request #6324 from pieterlexis/waitForMultiData-unused-var-fix
[thirdparty/pdns.git] / regression-tests.api / test_Basics.py
1 import requests
2 import socket
3 import time
4 from test_helper import ApiTestCase
5
6
7 class TestBasics(ApiTestCase):
8
9 def test_unauth(self):
10 r = requests.get(self.url("/api/v1/servers/localhost"))
11 self.assertEquals(r.status_code, requests.codes.unauthorized)
12
13 def test_split_request(self):
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)
23 s.sendall(part.encode('ascii'))
24 time.sleep(0.5)
25
26 resp = s.recv(4096, socket.MSG_WAITALL)
27 s.close()
28
29 print("response", repr(resp))
30
31 status = resp.splitlines(0)[0]
32 if b'400' in status:
33 raise Exception('Got unwanted response: %s' % status)
34
35 def test_cors(self):
36 r = self.session.options(self.url("/api/v1/servers/localhost"))
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
44 print("response", repr(r.headers))