33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
__author__ = 'RemiZOffAlex'
|
|
__email__ = 'remizoffalex@mail.ru'
|
|
|
|
import unittest
|
|
|
|
from nucleus.domains.http.models.request import Request
|
|
|
|
|
|
raw = b'GET /favicon.ico HTTP/1.1\r\nHost: 10.2.0.1:5000\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 OPR/123.0.0.0\r\nAccept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8\r\nReferer: http://10.2.0.1:5000/\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en;q=0.9\r\n\r\n'
|
|
|
|
|
|
class TestRequest(unittest.TestCase):
|
|
def test_request(self):
|
|
request = Request
|
|
parts = raw.split(b'\r\n', 1)
|
|
request_line = parts[0].decode().split(' ')
|
|
request.method = request_line[0]
|
|
request.url = request_line[1]
|
|
request.protocol = request_line[2]
|
|
parts_two = parts[1].split(b'\r\n'*2)
|
|
request.headers = {}
|
|
for item in parts_two[0].decode().split('\r\n'):
|
|
key, value = item.split(': ')
|
|
request.headers[key] = value
|
|
|
|
self.assertTrue(request.method=='GET')
|
|
self.assertTrue(request.url=='/favicon.ico')
|
|
self.assertTrue(request.protocol=='HTTP/1.1')
|
|
|
|
for key in request.headers:
|
|
value = request.headers[key]
|
|
print(key, ':', value)
|