| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import pytest
- from myanimebot.myanimelist import break_rss_description_string, get_thumbnail
- from myanimebot.utils import MediaStatus
- def test_get_thumbnail():
- # Test manga
- try:
- link = "https://myanimelist.net/manga/103890/Bokutachi_wa_Benkyou_ga_Dekinai"
- expected_thumbnail = "https://cdn.myanimelist.net/images/manga/3/197080.jpg"
- assert get_thumbnail(link) == expected_thumbnail
- except Exception:
- pytest.fail("Should not raise Exception")
- # Test anime
- try:
- link = "https://myanimelist.net/anime/40028/Shingeki_no_Kyojin__The_Final_Season"
- expected_thumbnail = "https://cdn.myanimelist.net/images/anime/1000/110531.jpg"
- assert get_thumbnail(link) == expected_thumbnail
- except Exception:
- pytest.fail("Should not raise Exception")
- # Test anime 2
- try:
- link = "https://myanimelist.net/anime/40028"
- expected_thumbnail = "https://cdn.myanimelist.net/images/anime/1000/110531.jpg"
- assert get_thumbnail(link) == expected_thumbnail
- except Exception:
- pytest.fail("Should not raise Exception")
- # Test fail
- with pytest.raises(Exception):
- get_thumbnail('')
- with pytest.raises(Exception):
- get_thumbnail('https://myanimelist.net/anime/test/')
-
- with pytest.raises(Exception):
- get_thumbnail('https://anilist.co/anime/110277/Attack-on-Titan-Final-Season/')
- def test_break_rss_description_string():
- status, progress, episodes = break_rss_description_string('Completed - 12 of 12 episodes')
- assert status == MediaStatus.COMPLETED
- assert progress == '12'
- assert episodes == '12'
- status, progress, episodes = break_rss_description_string('Completed - 192 of 192 chapters')
- assert status == MediaStatus.COMPLETED
- assert progress == '192'
- assert episodes == '192'
- status, progress, episodes = break_rss_description_string('Paused - 24 of 192 chapters')
- assert status == MediaStatus.PAUSED
- assert progress == '24'
- assert episodes == '192'
- status, progress, episodes = break_rss_description_string('On-hold - 23 of 27 episodes')
- assert status == MediaStatus.PAUSED
- assert progress == '23'
- assert episodes == '27'
- status, progress, episodes = break_rss_description_string('Dropped - 17 of 11 episodes')
- assert status == MediaStatus.DROPPED
- assert progress == '17'
- assert episodes == '11'
- status, progress, episodes = break_rss_description_string('Watching - 1 of 2 episodes')
- assert status == MediaStatus.CURRENT
- assert progress == '1'
- assert episodes == '2'
- status, progress, episodes = break_rss_description_string('Reading - 192 of ? chapters')
- assert status == MediaStatus.CURRENT
- assert progress == '192'
- assert episodes == '?'
- status, progress, episodes = break_rss_description_string('Rewatching - 0 of 1 episodes')
- assert status == MediaStatus.REPEATING
- assert progress == '0'
- assert episodes == '1'
- # Incorrect cases
- status, progress, episodes = break_rss_description_string('Toto')
- assert status == None and progress == None and episodes == None
- status, progress, episodes = break_rss_description_string('Completed - blabla')
- assert status == None and progress == None and episodes == None
- status, progress, episodes = break_rss_description_string('Completed - 24 of 32')
- assert status == None and progress == None and episodes == None
- with pytest.raises(NotImplementedError):
- break_rss_description_string('Toto - 24 of 32 episodes')
|