|
3 | 3 |
|
4 | 4 | import shutil |
5 | 5 | import subprocess |
6 | | -import sys |
7 | 6 | import zipfile |
8 | 7 |
|
9 | 8 | import pytest |
10 | 9 |
|
11 | 10 | from zimscraperlib.download import save_large_file |
| 11 | +from zimscraperlib.fix_ogvjs_dist import run |
12 | 12 |
|
13 | 13 |
|
14 | 14 | def prepare_ogvjs_folder(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url): |
@@ -44,43 +44,49 @@ def prepare_ogvjs_folder(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url): |
44 | 44 | tmp_path.joinpath(member).rename(tmp_path.joinpath("videojs-ogvjs.js")) |
45 | 45 |
|
46 | 46 |
|
47 | | -def test_installed_script(): |
48 | | - kwargs = {"universal_newlines": True, "stdout": subprocess.PIPE} |
49 | | - script = subprocess.run(["/usr/bin/env", "fix_ogvjs_dist"], **kwargs, check=False) |
50 | | - assert script.returncode == 1 |
51 | | - assert script.stdout.strip().startswith("Usage: ") |
52 | | - |
53 | | - |
54 | | -def test_missing_param(): |
| 47 | +def test_ogvjs_installed_script_missing_param(): |
| 48 | + # run from installed script to check real conditions |
55 | 49 | script = subprocess.run( |
56 | | - [ |
57 | | - sys.executable, |
58 | | - "-m", |
59 | | - "zimscraperlib.fix_ogvjs_dist", |
60 | | - ], |
| 50 | + ["/usr/bin/env", "fix_ogvjs_dist"], |
| 51 | + text=True, |
| 52 | + capture_output=True, |
61 | 53 | check=False, |
62 | 54 | ) |
63 | 55 | assert script.returncode == 1 |
| 56 | + assert script.stdout.strip().startswith("Usage: ") |
| 57 | + |
| 58 | + |
| 59 | +def test_ogvjs_from_code_missing_params(): |
| 60 | + # run from code to mesure coverage easily |
| 61 | + |
| 62 | + assert run(["fix_ogvjs_dist"]) == 1 |
64 | 63 |
|
65 | 64 |
|
66 | 65 | @pytest.mark.slow |
67 | | -def test_fix_ogvjs_dist(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url): |
| 66 | +def test_ogvjs_installed_script_ok(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url): |
| 67 | + # run from installed script to check real conditions |
| 68 | + |
68 | 69 | prepare_ogvjs_folder(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url) |
69 | 70 |
|
70 | | - # run to fix it from source (using installed script name) |
71 | 71 | script = subprocess.run( |
72 | | - [ |
73 | | - sys.executable, |
74 | | - "-m", |
75 | | - "zimscraperlib.fix_ogvjs_dist", |
76 | | - str(tmp_path), |
77 | | - ], |
| 72 | + ["/usr/bin/env", "fix_ogvjs_dist", str(tmp_path)], |
78 | 73 | text=True, |
79 | | - stdout=subprocess.PIPE, |
80 | | - stderr=subprocess.STDOUT, |
| 74 | + capture_output=True, |
81 | 75 | check=False, |
82 | 76 | ) |
83 | 77 | assert script.returncode == 0 |
84 | 78 |
|
85 | 79 | with open(tmp_path / "videojs-ogvjs.js") as fh: |
86 | 80 | assert "webm" in fh.read() |
| 81 | + |
| 82 | + |
| 83 | +@pytest.mark.slow |
| 84 | +def test_ogvjs_from_code_ok(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url): |
| 85 | + # run from code to mesure coverage easily |
| 86 | + |
| 87 | + prepare_ogvjs_folder(tmp_path, videojs_url, ogvjs_url, videojs_ogvjs_url) |
| 88 | + |
| 89 | + assert run(["fix_ogvjs_dist", str(tmp_path)]) == 0 |
| 90 | + |
| 91 | + with open(tmp_path / "videojs-ogvjs.js") as fh: |
| 92 | + assert "webm" in fh.read() |
0 commit comments