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! " ] )
2022-03-25 04:39:39 +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")
# 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! " ]
)
2022-03-25 04:39:39 +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 ( )