Let's get started with pytest

This commit is contained in:
henryruhs 2023-08-21 16:19:01 +02:00
parent 871c3840e5
commit 8d1da5ad49
4 changed files with 34 additions and 13 deletions

View File

@ -14,8 +14,8 @@ jobs:
python-version: '3.10' python-version: '3.10'
- run: pip install flake8 - run: pip install flake8
- run: pip install mypy - run: pip install mypy
- run: flake8 run.py facefusion - run: flake8 run.py facefusion tests
- run: mypy run.py facefusion - run: mypy run.py facefusion tests
test: test:
strategy: strategy:
matrix: matrix:
@ -31,13 +31,4 @@ jobs:
with: with:
python-version: '3.10' python-version: '3.10'
- run: pip install -r requirements-ci.txt - run: pip install -r requirements-ci.txt
- run: curl --create-dirs --output .assets/examples/source.jpg https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg - run: pytest
- run: curl --create-dirs --output .assets/examples/target-240p.mp4 https://github.com/facefusion/facefusion-assets/releases/download/examples/target-240p.mp4
- run: python run.py --source .assets/examples/source.jpg --target .assets/examples/target-240p.mp4 --output .assets/examples --trim-frame-end 30
if: matrix.os != 'windows-latest'
- run: python run.py --source .assets\examples\source.jpg --target .assets\examples\target-240p.mp4 --output .assets\examples --trim-frame-end 30
if: matrix.os == 'windows-latest'
- run: ffprobe -show_format -show_streams .assets/examples/source-target-240p.mp4
if: matrix.os != 'windows-latest'
- run: ffprobe -show_format -show_streams .assets\examples\source-target-240p.mp4
if: matrix.os == 'windows-latest'

View File

@ -5,6 +5,7 @@ onnxruntime==1.15.1
opencv-python==4.8.0.74 opencv-python==4.8.0.74
opennsfw2==0.10.2 opennsfw2==0.10.2
protobuf==4.23.4 protobuf==4.23.4
pytest==7.4.0
psutil==5.9.5 psutil==5.9.5
tensorflow==2.13.0 tensorflow==2.13.0
tqdm==4.65.0 tqdm==4.65.0

0
tests/__init__.py Normal file
View File

29
tests/test_cli.py Normal file
View File

@ -0,0 +1,29 @@
import subprocess
import pytest
from facefusion import wording
from facefusion.utilities import conditional_download
@pytest.fixture(scope = 'module', autouse = True)
def setup() -> None:
conditional_download('.assets/examples',
[
'https://github.com/facefusion/facefusion-assets/releases/download/examples/source.jpg',
'https://github.com/facefusion/facefusion-assets/releases/download/examples/target-1080p.mp4'
])
subprocess.run([ 'ffmpeg', '-i', '.assets/examples/target-1080p.mp4', '-vframes', '1', '.assets/examples/target-1080p.jpg' ])
def test_image_to_image() -> None:
commands = [ 'python', 'run.py', '-s', '.assets/examples/source.jpg', '-t', '.assets/examples/target-1080p.jpg', '-o', '.assets/examples' ]
run = subprocess.run(commands, stdout = subprocess.PIPE)
assert run.returncode == 0
assert wording.get('processing_image_succeed') in run.stdout.decode()
def test_image_to_video() -> None:
commands = [ 'python', 'run.py', '-s', '.assets/examples/source.jpg', '-t', '.assets/examples/target-1080p.mp4', '-o', '.assets/examples', '--trim-frame-end', '10' ]
run = subprocess.run(commands, stdout = subprocess.PIPE)
assert run.returncode == 0
assert wording.get('processing_video_succeed') in run.stdout.decode()