Moves git-compatible content from Nextcloud (Botomir/Projekte/Angefangen/Kino-Projekt) into this repo per cleanup request, under nextcloud-import/ to avoid colliding with the actively maintained backend/frontend/worker layout: - status/planning docs (Botomir-Status.md, Plan-Botomir.md, Projektbeschreibung.md) - docs/ (deployment.md, provider-policy.md) - backend-nextcloud-variant/ (older app/ layout, kept for reference only) - plugin.video.xstream/, script.module.xstreamscraper/ (vendored Kodi addon source) A third-party Firefox extension folder was intentionally left in Nextcloud (unrelated vendor code, not project source).
26 lines
840 B
Python
26 lines
840 B
Python
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from app.providers.youtube import parse_yt_dlp_progress
|
|
from app.services.downloader import copy_tree_contents
|
|
|
|
|
|
def test_copy_tree_contents_copies_files(tmp_path: Path):
|
|
src = tmp_path / 'src'
|
|
src.mkdir()
|
|
(src / 'movie.mp4').write_bytes(b'data')
|
|
(src / 'meta.info.json').write_text('{}')
|
|
dest = tmp_path / 'dest'
|
|
|
|
copied = copy_tree_contents(src, dest)
|
|
|
|
assert sorted(p.name for p in copied) == ['meta.info.json', 'movie.mp4']
|
|
assert (dest / 'movie.mp4').read_bytes() == b'data'
|
|
|
|
|
|
def test_parse_yt_dlp_progress_lines():
|
|
assert parse_yt_dlp_progress('[download] 42.7% of 10.00MiB at 1.00MiB/s ETA 00:05') == pytest.approx(0.427)
|
|
assert parse_yt_dlp_progress('[download] 100% of 10.00MiB') == 1.0
|
|
assert parse_yt_dlp_progress('[info] unrelated') is None
|