mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-13 18:11:03 +08:00
79 lines
2.0 KiB
Python
79 lines
2.0 KiB
Python
from sqlmodel import create_engine, SQLModel
|
|
from sqlmodel.pool import StaticPool
|
|
|
|
from module.database.combine import Database
|
|
from module.models import Bangumi, Torrent, RSSItem
|
|
|
|
|
|
# sqlite mock engine
|
|
engine = create_engine(
|
|
"sqlite://", connect_args={"check_same_thread": False}, poolclass=StaticPool
|
|
)
|
|
|
|
|
|
def test_bangumi_database():
|
|
test_data = Bangumi(
|
|
official_title="test",
|
|
year="2021",
|
|
title_raw="test",
|
|
season=1,
|
|
season_raw="第一季",
|
|
group_name="test",
|
|
dpi="720p",
|
|
source="test",
|
|
subtitle="test",
|
|
eps_collect=False,
|
|
offset=0,
|
|
filter="720p,\\d+-\\d+",
|
|
rss_link="test",
|
|
poster_link="/test/test.jpg",
|
|
added=False,
|
|
rule_name=None,
|
|
save_path=None,
|
|
deleted=False,
|
|
)
|
|
with Database(engine) as db:
|
|
db.create_table()
|
|
# insert
|
|
db.bangumi.add(test_data)
|
|
assert db.bangumi.search_id(1) == test_data
|
|
|
|
# update
|
|
test_data.official_title = "test2"
|
|
db.bangumi.update(test_data)
|
|
assert db.bangumi.search_id(1) == test_data
|
|
|
|
# search poster
|
|
assert db.bangumi.match_poster("test2 (2021)") == "/test/test.jpg"
|
|
|
|
# match torrent
|
|
result = db.bangumi.match_torrent("[Sub Group]test S02 01 [720p].mkv")
|
|
assert result.official_title == "test2"
|
|
|
|
# delete
|
|
db.bangumi.delete_one(1)
|
|
assert db.bangumi.search_id(1) is None
|
|
|
|
|
|
def test_torrent_database():
|
|
test_data = Torrent(
|
|
name="[Sub Group]test S02 01 [720p].mkv",
|
|
url="https://test.com/test.mkv",
|
|
)
|
|
with Database(engine) as db:
|
|
# insert
|
|
db.torrent.add(test_data)
|
|
assert db.torrent.search(1) == test_data
|
|
|
|
# update
|
|
test_data.downloaded = True
|
|
db.torrent.update(test_data)
|
|
assert db.torrent.search(1) == test_data
|
|
|
|
|
|
def test_rss_database():
|
|
rss_url = "https://test.com/test.xml"
|
|
|
|
with Database(engine) as db:
|
|
db.rss.add(RSSItem(url=rss_url))
|