This repository has been archived on 2023-10-01. You can view files and clone it, but cannot push or open issues or pull requests.
PyNyaaTa/tests/bridge/test_animeultime.py

175 lines
6.0 KiB
Python

from datetime import datetime, timedelta
from pynyaata2.bridge.animeultime import AnimeUltime
from pynyaata2.types import RemoteFile
from pytest import mark
import requests
from requests_mock import Mocker
def test_search_url():
previous_month = datetime.now() - timedelta(days=30)
assert (
AnimeUltime().search_url()
== f"http://www.anime-ultime.net/history-0-1/{datetime.now().strftime('%m%Y')}"
)
assert (
AnimeUltime().search_url("", 2)
== f"http://www.anime-ultime.net/history-0-1/{previous_month.strftime('%m%Y')}"
)
assert AnimeUltime().search_url("test") == "http://www.anime-ultime.net/search-0-1/"
assert (
AnimeUltime().search_url("test", 2) == "http://www.anime-ultime.net/search-0-1/"
)
@mark.asyncio
async def test_search():
assert await AnimeUltime().search("test") == [
RemoteFile(
bridge="AnimeUltime",
id=4631,
category="OAV",
name="Akuma no Riddle: Shousha wa Dare? Nukiuchi Test",
link="http://www.anime-ultime.net/file-0-1/4631-Akuma-no-Riddle-Shousha-wa-Dare-Nukiuchi-Test",
),
RemoteFile(
bridge="AnimeUltime",
id=4250,
category="OAV",
name="Baka to Test to shoukanjuu (spécial Noël)",
link="http://www.anime-ultime.net/file-0-1/4250-Baka-to-Test-to-shoukanjuu-special-Noel",
),
RemoteFile(
bridge="AnimeUltime",
id=3057,
category="OAV",
name="Baka to Test to shoukanjuu (spéciaux)",
link="http://www.anime-ultime.net/file-0-1/3057-Baka-to-Test-to-shoukanjuu-speciaux",
),
RemoteFile(
bridge="AnimeUltime",
id=5453,
category="OAV",
name="Baka to Test to Shoukanjuu Mini Anime",
link="http://www.anime-ultime.net/file-0-1/5453-Baka-to-Test-to-Shoukanjuu-Mini-Anime",
),
RemoteFile(
bridge="AnimeUltime",
id=2458,
category="Episode",
name="Baka to Test to shoukanjuu ni! [Saison 2]",
link="http://www.anime-ultime.net/file-0-1/2458-Baka-to-Test-to-shoukanjuu-ni-Saison-2",
),
RemoteFile(
bridge="AnimeUltime",
id=1887,
category="Episode",
name="Baka to Test to shoukanjuu [Saison 1]",
link="http://www.anime-ultime.net/file-0-1/1887-Baka-to-Test-to-shoukanjuu-Saison-1",
),
RemoteFile(
bridge="AnimeUltime",
id=2320,
category="OAV",
name="Baka to Test to Shoukanjuu: Matsuri",
link="http://www.anime-ultime.net/file-0-1/2320-Baka-to-Test-to-Shoukanjuu-Matsuri",
),
RemoteFile(
bridge="AnimeUltime",
id=4463,
category="OAV",
name="Baka to Test to Shoukanjuu: Spinout! Sore ga Bokura no Nichijou",
link="http://www.anime-ultime.net/file-0-1/4463-Baka-to-Test-to-Shoukanjuu-Spinout-Sore-ga-Bokura-no-Nichijou",
),
RemoteFile(
bridge="AnimeUltime",
id=5069,
category="OAV",
name="Shinmai Maou no Testament Burst OAV [Interdit -16 ans]",
link="http://www.anime-ultime.net/file-0-1/5069-Shinmai-Maou-no-Testament-Burst-OAV-Interdit--16-ans",
),
RemoteFile(
bridge="AnimeUltime",
id=5487,
category="OAV",
name="Shinmai Maou no Testament Departures [Interdit -16 ans]",
link="http://www.anime-ultime.net/file-0-1/5487-Shinmai-Maou-no-Testament-Departures-Interdit--16-ans",
),
RemoteFile(
bridge="AnimeUltime",
id=4830,
category="OAV",
name="Shinmai Maou no Testament OAD [Interdit -16 ans]",
link="http://www.anime-ultime.net/file-0-1/4830-Shinmai-Maou-no-Testament-OAD-Interdit--16-ans",
),
RemoteFile(
bridge="AnimeUltime",
id=3449,
category="Film",
name="Robot Contest [J-Film]",
link="http://www.anime-ultime.net/file-0-1/3449-Robot-Contest-J-Film",
),
RemoteFile(
bridge="AnimeUltime",
id=2879,
category="OST",
name="Baka to Test to shoukanjuu ni! [Saison 2]",
link="http://www.anime-ultime.net/file-0-1/2879-Baka-to-Test-to-shoukanjuu-ni-Saison-2",
),
RemoteFile(
bridge="AnimeUltime",
id=1926,
category="OST",
name="Baka to Test to shoukanjuu [Saison 1]",
link="http://www.anime-ultime.net/file-0-1/1926-Baka-to-Test-to-shoukanjuu-Saison-1",
),
]
@mark.asyncio
async def test_history(requests_mock: Mocker):
requests_mock.real_http = True
requests_mock.get(
AnimeUltime().search_url(),
text=requests.get("http://www.anime-ultime.net/history-0-1/042006").text,
)
assert await AnimeUltime().search() == [
RemoteFile(
bridge="AnimeUltime",
id=167,
category="Film",
name="Crayon Shin-chan - Arashi wo Yobu Appare! Sengoku Dai Kassen",
link="http://www.anime-ultime.net/file-0-1/167/Crayon-Shin-chan---Arashi-wo-Yobu-Appare-Sengoku-Dai-Kassen-vostfr",
date="2006-04-10 00:00:00",
),
]
@mark.asyncio
async def test_search_one(requests_mock: Mocker):
requests_mock.real_http = True
requests_mock.post(
AnimeUltime().search_url("akuma"),
text=requests.get(
"http://www.anime-ultime.net/file-0-1/4631/Akuma-no-Riddle-Shousha-wa-Dare-Nukiuchi-Test-vostfr"
).text,
)
assert await AnimeUltime().search("akuma") == [
RemoteFile(
bridge="AnimeUltime",
id=4631,
category="OAV",
name="Akuma no Riddle: Shousha wa Dare? Nukiuchi Test vostfr",
link="http://www.anime-ultime.net/file-0-1/4631",
date="2014-12-27 00:00:00",
),
]