__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)