Files
Auto_Bangumi/test/test_raw_parser.py
EstrellaXD f31acc70ff 2.6.0
- refactor
- change config from config.ini to config.json
2023-03-04 20:33:57 +08:00

90 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import unittest
from random import randrange
from module.parser.analyser import RawParser
class TestRawParser(unittest.TestCase):
def test_raw_parser(self):
parser = RawParser()
content = "【幻樱字幕组】【4月新番】【古见同学有交流障碍症 第二季 Komi-san wa, Komyushou Desu. S02】【22】【GB_MP4】【1920X1080】"
info = parser.analyse(content)
self.assertEqual(info.title_en, "Komi-san wa, Komyushou Desu.")
self.assertEqual(info.resolution, "1920X1080")
self.assertEqual(info.episode, 22)
self.assertEqual(info.season, 2)
content = "[百冬练习组&LoliHouse] BanG Dream! 少女乐团派对☆PICO FEVER / Garupa Pico: Fever! - 26 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕][END] [101.69 MB]"
info = parser.analyse(content)
self.assertEqual(info.group, "百冬练习组&LoliHouse")
self.assertEqual(info.title_zh, "BanG Dream! 少女乐团派对☆PICO FEVER")
self.assertEqual(info.resolution, "1080p")
self.assertEqual(info.episode, 26)
self.assertEqual(info.season, 1)
content = "【喵萌奶茶屋】★04月新番★[夏日重现/Summer Time Rendering][11][1080p][繁日双语][招募翻译] [539.4 MB]"
info = parser.analyse(content)
self.assertEqual(info.group, "喵萌奶茶屋")
self.assertEqual(info.title_en, "Summer Time Rendering")
self.assertEqual(info.resolution, "1080p")
self.assertEqual(info.episode, 11)
self.assertEqual(info.season, 1)
content = "【喵萌奶茶屋】★04月新番★夏日重现/Summer Time Rendering[11][1080p][繁日双语][招募翻译] [539.4 MB]"
info = parser.analyse(content)
self.assertEqual(info.title_en, "Summer Time Rendering")
def test_pre_process(self):
content = "【幻樱字幕组】【4月新番】"
expected_content = "[幻樱字幕组][4月新番]"
self.assertEqual(RawParser.pre_process(content), expected_content)
def test_get_group(self):
content = "【幻樱字幕组】【4月新番】【古见同学有交流障碍症 第二季 Komi-san wa, Komyushou Desu. S02】【22】【GB_MP4】【1920X1080】"
content = RawParser.pre_process(content)
expected_content = "幻樱字幕组"
self.assertEqual(RawParser.get_group(content), expected_content)
def test_find_tags(self):
cases = [
("[GB_MP4] [1920X1080] [bilibili]", ["GB", "1920X1080", "bilibili"]),
("[GB_MP4] [1920X1080]", ["GB", "1920X1080", None]),
("[简_MP4] [Bilibili]", ["", None, "Bilibili"]),
("[简_MP4] [Bilibili] [Web]", ["", None, "Web"]),
("dfkajflkdaj dfkadjlkfa [Web]", [None, None, "Web"]),
("dfkajflkdaj dfkadjlkfa [Web] [Web]", [None, None, "Web"]),
]
for content, expected in cases:
ret = RawParser.find_tags(content)
self.assertEqual(len(ret), 3)
for i in range(3):
self.assertEqual(ret[i], expected[i])
def test_episode(self):
parser = RawParser()
for epi in range(1, 100000, 100):
content = f"【幻樱字幕组】【4月新番】【古见同学有交流障碍症 第一季 Komi-san wa, Komyushou Desu. S01】【{epi}】【GB_MP4】【4K】"
info = parser.analyse(content)
self.assertEqual(info.episode, epi)
for epi in range(1, 100000, 100):
content = f"[Nekomoe kissaten][Summer Time Rendering - {epi} [1080p][JPTC].mp4"
info = parser.analyse(content)
self.assertEqual(info.episode, epi)
def test_season(self):
chinese_number_arr = ["", "", "", "",
"", "", "", "", "", "", "十一", "十二"]
parser = RawParser()
for i in range(1, 13):
season = str(i).zfill(2)
content = f"【幻樱字幕组】【古见同学有交流障碍症 第{chinese_number_arr[i - 1]}季 Komi-san wa, Komyushou Desu. S{season}】[1]"
info = parser.analyse(content)
self.assertEqual(info.season, i)