2024-09-13 18:28:36 +00:00
|
|
|
from http import HTTPStatus
|
2024-10-18 16:33:27 +00:00
|
|
|
from time import sleep
|
2024-09-13 18:28:36 +00:00
|
|
|
|
2024-09-13 18:04:37 +00:00
|
|
|
import pytest
|
2024-09-13 18:28:36 +00:00
|
|
|
from starlette.testclient import TestClient
|
2024-09-13 18:04:37 +00:00
|
|
|
|
2024-09-13 18:28:36 +00:00
|
|
|
from main import app
|
2024-09-13 18:04:37 +00:00
|
|
|
from src.models.requests import LinkRequest
|
|
|
|
|
2024-09-13 18:28:36 +00:00
|
|
|
client = TestClient(app)
|
|
|
|
|
2024-09-13 18:04:37 +00:00
|
|
|
test_websites = [
|
2024-09-13 19:22:37 +00:00
|
|
|
"https://ext.to/",
|
|
|
|
"https://btmet.com/",
|
2024-10-18 14:27:43 +00:00
|
|
|
"https://extratorrent.st/", # github is blocking these
|
|
|
|
"https://idope.se/", # github is blocking these
|
2024-10-18 16:03:17 +00:00
|
|
|
"https://www.ygg.re/",
|
2024-10-19 20:35:11 +00:00
|
|
|
"https://speed.cd/browse/freeleech",
|
2024-09-13 18:04:37 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("website", test_websites)
|
2024-09-13 18:28:36 +00:00
|
|
|
def test_bypass(website: str):
|
2024-10-18 16:33:27 +00:00
|
|
|
sleep(3)
|
2024-09-13 18:28:36 +00:00
|
|
|
response = client.post(
|
|
|
|
"/v1",
|
2024-10-18 16:03:17 +00:00
|
|
|
json=LinkRequest(url=website, maxTimeout=30, cmd="request.get").model_dump(),
|
2024-09-13 18:28:36 +00:00
|
|
|
)
|
2024-10-18 13:55:56 +00:00
|
|
|
if response.status_code == HTTPStatus.TOO_MANY_REQUESTS:
|
|
|
|
# if rate limited
|
|
|
|
assert True
|
2024-09-13 18:28:36 +00:00
|
|
|
assert response.status_code == HTTPStatus.OK
|