mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-24 10:31:09 +08:00
33
.github/workflows/unittest.yml
vendored
Normal file
33
.github/workflows/unittest.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
||||
|
||||
name: unittest
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.10
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd auto_bangumi
|
||||
python -m unittest discover tests
|
||||
@@ -4,9 +4,9 @@ from parser.episode import Episode
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
EPISODE_RE = re.compile(r"\d{1,3}")
|
||||
EPISODE_RE = re.compile(r"\d+")
|
||||
TITLE_RE = re.compile(
|
||||
r"(.*|\[.*])( -? \d{1,3} |\[\d{1,3}]|\[\d{1,3}.?[vV]\d{1}]|[第]\d{1,3}[话話集]|\[\d{1,3}.?END])(.*)"
|
||||
r"(.*|\[.*])( -? \d+ |\[\d+]|\[\d+.?[vV]\d{1}]|[第]\d+[话話集]|\[\d+.?END])(.*)"
|
||||
)
|
||||
RESOLUTION_RE = re.compile(r"1080|720|2160|4K")
|
||||
SOURCE_RE = re.compile(r"B-Global|[Bb]aha|[Bb]ilibili|AT-X|Web")
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec python -m unittest discover tests
|
||||
@@ -1,4 +1,5 @@
|
||||
import unittest
|
||||
from random import randrange
|
||||
|
||||
from parser.analyser import RawParser
|
||||
|
||||
@@ -15,14 +16,27 @@ class TestRawParser(unittest.TestCase):
|
||||
self.assertEqual(info.ep_info.number, 22)
|
||||
self.assertEqual(info.season_info.number, 2)
|
||||
|
||||
content = "【幻樱字幕组】【4月新番】【古见同学有交流障碍症 第一季 Komi-san wa, Komyushou Desu. S01】【23】【GB_MP4】【4K】"
|
||||
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.title, "Komi-san wa, Komyushou Desu.")
|
||||
self.assertEqual(info.dpi, "4K")
|
||||
self.assertEqual(info.ep_info.number, 23)
|
||||
self.assertEqual(info.group, "百冬练习组&LoliHouse")
|
||||
self.assertEqual(info.title, "BanG Dream! 少女乐团派对!☆PICO FEVER!")
|
||||
self.assertEqual(info.dpi, "1080p")
|
||||
self.assertEqual(info.ep_info.number, 26)
|
||||
self.assertEqual(info.season_info.number, 1)
|
||||
|
||||
content = "【喵萌奶茶屋】★04月新番★[夏日重现/Summer Time Rendering][11][1080p][繁日双语][招募翻译] [539.4 MB]"
|
||||
info = parser.analyse(content)
|
||||
self.assertEqual(info.group, "喵萌奶茶屋")
|
||||
self.assertEqual(info.title, "Summer Time Rendering")
|
||||
self.assertEqual(info.dpi, "1080p")
|
||||
self.assertEqual(info.ep_info.number, 11)
|
||||
self.assertEqual(info.season_info.number, 1)
|
||||
|
||||
content = "【喵萌奶茶屋】★04月新番★夏日重现/Summer Time Rendering[11][1080p][繁日双语][招募翻译] [539.4 MB]"
|
||||
info = parser.analyse(content)
|
||||
self.assertEqual(info.title, "Summer Time Rendering")
|
||||
|
||||
def test_pre_process(self):
|
||||
content = "【幻樱字幕组】【4月新番】"
|
||||
expected_content = "[幻樱字幕组][4月新番]"
|
||||
@@ -51,3 +65,25 @@ class TestRawParser(unittest.TestCase):
|
||||
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.ep_info.number, 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.ep_info.number, 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_info.number, i)
|
||||
|
||||
@@ -1,11 +1,20 @@
|
||||
qbittorrent-api
|
||||
bs4
|
||||
requests==2.28.0
|
||||
pysocks
|
||||
lxml
|
||||
|
||||
setuptools~=62.1.0
|
||||
fastapi
|
||||
uvicorn~=0.17.6
|
||||
jinja2
|
||||
pydantic~=1.9.1
|
||||
anyio==3.6.1
|
||||
beautifulsoup4==4.11.1
|
||||
certifi==2022.6.15
|
||||
charset-normalizer==2.1.0
|
||||
click==8.1.3
|
||||
fastapi==0.78.0
|
||||
h11==0.13.0
|
||||
idna==3.3
|
||||
pydantic==1.9.1
|
||||
PySocks==1.7.1
|
||||
qbittorrent-api==2022.5.32
|
||||
requests==2.28.1
|
||||
six==1.16.0
|
||||
sniffio==1.2.0
|
||||
soupsieve==2.3.2.post1
|
||||
starlette==0.19.1
|
||||
thefuzz==0.19.0
|
||||
typing_extensions==4.3.0
|
||||
urllib3==1.26.9
|
||||
uvicorn==0.18.2
|
||||
|
||||
Reference in New Issue
Block a user