#!/usr/bin/env python
# -*- coding: utf-8 -*-
# pylint: disable=pointless-statement, missing-docstring, invalid-name
import json
import os
import sys
import pytest
from _pytest . capture import CaptureFixture
from . . __main__ import main
__location__ = os . path . realpath ( os . path . join ( os . getcwd ( ) , os . path . dirname ( __file__ ) ) )
# Prevent output from spamming the console
@pytest.fixture ( scope = " function " , autouse = True )
def no_stdout ( monkeypatch ) :
with open ( os . devnull , " w " ) as f : # pylint:disable=unspecified-encoding
monkeypatch . setattr ( sys , " stdout " , f )
yield
def test_main_no_args ( ) :
main ( [ ] )
def test_main ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' ] )
def test_main_unicode ( ) :
main ( [ ' [阿维达].Avida.2006.FRENCH.DVDRiP.XViD-PROD.avi ' ] )
def test_main_forced_unicode ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' ] )
def test_main_verbose ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' , ' --verbose ' ] )
def test_main_yaml ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' , ' --yaml ' ] )
def test_main_json ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' , ' --json ' ] )
def test_main_show_property ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' , ' -P ' , ' title ' ] )
def test_main_advanced ( ) :
main ( [ ' Fear.and.Loathing.in.Las.Vegas.FRENCH.ENGLISH.720p.HDDVD.DTS.x264-ESiR.mkv ' , ' -a ' ] )
def test_main_input ( ) :
main ( [ ' --input ' , os . path . join ( __location__ , ' test-input-file.txt ' ) ] )
def test_main_properties ( ) :
main ( [ ' -p ' ] )
main ( [ ' -p ' , ' --json ' ] )
main ( [ ' -p ' , ' --yaml ' ] )
def test_main_values ( ) :
main ( [ ' -V ' ] )
main ( [ ' -V ' , ' --json ' ] )
main ( [ ' -V ' , ' --yaml ' ] )
def test_main_help ( ) :
with pytest . raises ( SystemExit ) :
main ( [ ' --help ' ] )
def test_main_version ( ) :
main ( [ ' --version ' ] )
def test_json_output_input_string ( capsys : CaptureFixture ) :
main ( [ ' --json ' , ' --output-input-string ' , ' test.avi ' ] )
outerr = capsys . readouterr ( )
data = json . loads ( outerr . out )
assert ' input_string ' in data
assert data [ ' input_string ' ] == ' test.avi '
def test_json_no_output_input_string ( capsys : CaptureFixture ) :
main ( [ ' --json ' , ' test.avi ' ] )
outerr = capsys . readouterr ( )
data = json . loads ( outerr . out )
assert ' input_string ' not in data