31 lines
1.6 KiB
Python
31 lines
1.6 KiB
Python
__author__ = 'RemiZOffAlex'
|
|
__email__ = 'remizoffalex@mail.ru'
|
|
|
|
import unittest
|
|
|
|
from nucleus.domains.http.parsers.request import parse
|
|
|
|
|
|
raw = b'GET /page?id=1 HTTP/1.1\r\nHost: 10.2.0.1:5000\r\nConnection: keep-alive\r\nDNT: 1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8\r\n\r\n'
|
|
|
|
|
|
class TestRequestParse(unittest.TestCase):
|
|
def test_parse_1(self):
|
|
request = parse(raw)
|
|
print('')
|
|
for key in request.__dict__:
|
|
print(key, getattr(request, key))
|
|
|
|
self.assertTrue(request.method=='GET')
|
|
self.assertTrue(request.url=='/page?id=1')
|
|
self.assertTrue(request.path=='/page')
|
|
self.assertTrue(request.protocol=='HTTP/1.1')
|
|
|
|
headers = request.headers
|
|
self.assertTrue(headers['Host']=='10.2.0.1:5000')
|
|
self.assertTrue(headers['Connection']=='keep-alive')
|
|
self.assertTrue(headers['User-Agent']=='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36')
|
|
self.assertTrue(headers['Accept']=='text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7')
|
|
self.assertTrue(headers['Accept-Encoding']=='gzip, deflate')
|
|
self.assertTrue(headers['Accept-Language']=='ru,en-US;q=0.9,en;q=0.8')
|