AI-RVC / tests /test_colab_notebook.py
mason369's picture
Release v1.2.1
a9536c4 verified
import json
import unittest
from pathlib import Path
class ColabNotebookTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.path = Path("AI_RVC_Colab.ipynb")
cls.notebook = json.loads(cls.path.read_text(encoding="utf-8"))
cls.source = "\n".join(
"".join(cell.get("source", []))
for cell in cls.notebook.get("cells", [])
)
def test_notebook_json_is_valid_and_has_gpu_metadata(self):
self.assertEqual(self.notebook["nbformat"], 4)
self.assertEqual(self.notebook["metadata"].get("accelerator"), "GPU")
self.assertEqual(self.notebook["metadata"].get("colab", {}).get("gpuType"), "T4")
def test_colab_uses_python_310_environment_for_fairseq(self):
self.assertIn("uv python install 3.10", self.source)
self.assertIn("uv venv --seed --python 3.10 venv310", self.source)
self.assertIn("$PY -m pip --version", self.source)
self.assertIn("uv run --python 3.10 python install.py --no-run", self.source)
self.assertIn("assert sys.version_info[:2] == (3, 10)", self.source)
def test_colab_preinstalls_gpu_torch_before_project_dependencies(self):
self.assertIn("--index-url https://download.pytorch.org/whl/cu126", self.source)
self.assertIn("pip install torch torchaudio", self.source)
self.assertIn("raise RuntimeError('GPU PyTorch install completed but CUDA is not available.')", self.source)
self.assertNotIn("https://download.pytorch.org/whl/cpu", self.source)
def test_colab_checks_current_processing_model_defaults(self):
self.assertIn("ROFORMER_DEFAULT_MODEL == 'ensemble:vocal_rvc'", self.source)
self.assertIn("KARAOKE_DEFAULT_MODEL == 'ensemble:karaoke'", self.source)
self.assertIn(
"ROFORMER_DEREVERB_DEFAULT_MODEL == 'dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt'",
self.source,
)
def test_colab_no_longer_documents_legacy_single_roformer_as_default(self):
self.assertNotIn("MVSEP Vocals SDR 11.01", self.source)
self.assertNotIn("vocals_mel_band_roformer", self.source)
def test_colab_launch_does_not_skip_checks(self):
self.assertIn("$PY run.py --host 0.0.0.0 --port 7860 --share", self.source)
self.assertNotIn("--skip-check", self.source)
def test_colab_includes_full_processing_mode_matrix(self):
self.assertIn("$PY tools/run_mode_matrix.py", self.source)
self.assertIn("--output-dir /content/AI-RVC/outputs/mode_matrix_colab", self.source)
self.assertIn("--require-cuda", self.source)
self.assertIn("download_character_model('rin')", self.source)
self.assertIn("Missing test audio", self.source)
if __name__ == "__main__":
unittest.main()