2022-01-21 21:44:12 +08:00
import os
2021-05-21 03:16:16 +08:00
import unittest
2022-01-21 21:44:12 +08:00
2021-05-21 03:16:16 +08:00
import gradio as gr
from gradio import mix
2021-11-09 22:48:55 +08:00
2021-11-15 22:39:06 +08:00
"""
WARNING : Some of these tests have an external dependency : namely that Hugging Face ' s Hub and Space APIs do not change, and they keep their most famous models up. So if, e.g. Spaces is down, then these test will not pass.
"""
2021-11-10 02:30:59 +08:00
os . environ [ " GRADIO_ANALYTICS_ENABLED " ] = " False "
2021-11-09 22:48:55 +08:00
2021-05-21 03:16:16 +08:00
class TestSeries ( unittest . TestCase ) :
def test_in_interface ( self ) :
2022-01-21 21:44:12 +08:00
io1 = gr . Interface ( lambda x : x + " World " , " textbox " , gr . outputs . Textbox ( ) )
2021-05-21 03:16:16 +08:00
io2 = gr . Interface ( lambda x : x + " ! " , " textbox " , gr . outputs . Textbox ( ) )
series = mix . Series ( io1 , io2 )
self . assertEqual ( series . process ( [ " Hello " ] ) [ 0 ] , [ " Hello World! " ] )
2021-11-15 22:39:06 +08:00
def test_with_external ( self ) :
io1 = gr . Interface . load ( " spaces/abidlabs/image-identity " )
io2 = gr . Interface . load ( " spaces/abidlabs/image-classifier " )
series = mix . Series ( io1 , io2 )
output = series ( " test/test_data/lion.jpg " )
2022-01-21 21:44:12 +08:00
self . assertGreater ( output [ " lion " ] , 0.5 )
2021-11-15 22:39:06 +08:00
2021-05-21 03:16:16 +08:00
class TestParallel ( unittest . TestCase ) :
def test_in_interface ( self ) :
2022-01-21 21:44:12 +08:00
io1 = gr . Interface ( lambda x : x + " World 1! " , " textbox " , gr . outputs . Textbox ( ) )
io2 = gr . Interface ( lambda x : x + " World 2! " , " textbox " , gr . outputs . Textbox ( ) )
2021-05-21 03:16:16 +08:00
parallel = mix . Parallel ( io1 , io2 )
2022-01-21 21:44:12 +08:00
self . assertEqual (
parallel . process ( [ " Hello " ] ) [ 0 ] , [ " Hello World 1! " , " Hello World 2! " ]
)
2021-11-15 22:39:06 +08:00
def test_with_external ( self ) :
io1 = gr . Interface . load ( " spaces/abidlabs/english_to_spanish " )
io2 = gr . Interface . load ( " spaces/abidlabs/english2german " )
parallel = mix . Parallel ( io1 , io2 )
hello_es , hello_de = parallel ( " Hello " )
self . assertIn ( " hola " , hello_es . lower ( ) )
self . assertIn ( " hallo " , hello_de . lower ( ) )
2021-05-21 03:16:16 +08:00
2022-01-21 21:44:12 +08:00
if __name__ == " __main__ " :
2021-05-21 03:16:16 +08:00
unittest . main ( )