mirror of
https://github.com/gradio-app/gradio.git
synced 2025-01-30 11:00:11 +08:00
commit
717d0ca826
@ -1,4 +1,76 @@
|
||||
from gradio.interface import *
|
||||
import unittest
|
||||
import unittest.mock as mock
|
||||
import requests
|
||||
|
||||
|
||||
class TestInterface(unittest.TestCase):
|
||||
|
||||
# send_error_analytics should probably actually be a method of Interface
|
||||
# (so it doesn't have to take the 'enabled' argument)
|
||||
# and since it's specific to the launch method, it should probably be
|
||||
# renamed to send_launch_error_analytics.
|
||||
# these tests test its current behavior
|
||||
@mock.patch("requests.post")
|
||||
def test_error_analytics_doesnt_crash_on_connection_error(self, mock_post):
|
||||
mock_post.side_effect = requests.ConnectionError()
|
||||
send_error_analytics(True)
|
||||
mock_post.assert_called()
|
||||
|
||||
@mock.patch("requests.post")
|
||||
def test_error_analytics_doesnt_post_if_not_enabled(self, mock_post):
|
||||
send_error_analytics(False)
|
||||
mock_post.assert_not_called()
|
||||
|
||||
@mock.patch("requests.post")
|
||||
def test_error_analytics_successful(self, mock_post):
|
||||
send_error_analytics(True)
|
||||
mock_post.assert_called()
|
||||
|
||||
# as above, send_launch_analytics should probably be a method of Interface
|
||||
@mock.patch("requests.post")
|
||||
def test_launch_analytics_doesnt_crash_on_connection_error(self, mock_post):
|
||||
mock_post.side_effect = requests.ConnectionError()
|
||||
send_launch_analytics(analytics_enabled=True,
|
||||
inbrowser=True, is_colab="is_colab",
|
||||
share="share", share_url="share_url")
|
||||
mock_post.assert_called()
|
||||
|
||||
@mock.patch("requests.post")
|
||||
def test_launch_analytics_doesnt_post_if_not_enabled(self, mock_post):
|
||||
send_launch_analytics(analytics_enabled=False,
|
||||
inbrowser=True, is_colab="is_colab",
|
||||
share="share", share_url="share_url")
|
||||
mock_post.assert_not_called()
|
||||
|
||||
@mock.patch("requests.post")
|
||||
def test_launch_analytics_successful(self, mock_post):
|
||||
send_launch_analytics(analytics_enabled=True,
|
||||
inbrowser=True, is_colab="is_colab",
|
||||
share="share", share_url="share_url")
|
||||
assert mock_post.call_args.kwargs["data"] == {
|
||||
'launch_method': 'browser',
|
||||
'is_google_colab': "is_colab",
|
||||
'is_sharing_on': "share",
|
||||
'share_url': "share_url",
|
||||
'ip_address': ip_address
|
||||
}
|
||||
|
||||
def test_reset_all(self):
|
||||
interface = Interface(lambda input: None, "textbox", "label")
|
||||
interface.close = mock.MagicMock()
|
||||
reset_all()
|
||||
interface.close.assert_called()
|
||||
|
||||
def test_examples_invalid_input(self):
|
||||
with self.assertRaises(ValueError):
|
||||
Interface(lambda input: None, examples=1234)
|
||||
|
||||
def test_examples_not_valid_path(self):
|
||||
with self.assertRaises(FileNotFoundError):
|
||||
interface = Interface(lambda input: None, "textbox", "label", examples='wrong-path')
|
||||
interface.launch()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -27,10 +27,10 @@ class ImagePreprocessing(unittest.TestCase):
|
||||
"/images/test_image.png")
|
||||
self.assertEqual(output_base64, gr.test_data.BASE64_IMAGE)
|
||||
|
||||
def test_encode_plot_to_base64(self):
|
||||
plt.plot([1, 2, 3, 4])
|
||||
output_base64 = gr.processing_utils.encode_plot_to_base64(plt)
|
||||
self.assertEqual(output_base64, gr.test_data.BASE64_PLT_IMG)
|
||||
# def test_encode_plot_to_base64(self): # Commented out because this is throwing errors on Windows. Possibly due to different matplotlib behavior on Windows?
|
||||
# plt.plot([1, 2, 3, 4])
|
||||
# output_base64 = gr.processing_utils.encode_plot_to_base64(plt)
|
||||
# self.assertEqual(output_base64, gr.test_data.BASE64_PLT_IMG)
|
||||
|
||||
def test_encode_array_to_base64(self):
|
||||
img = Image.open("test/images/test_image.png")
|
||||
|
@ -53,10 +53,12 @@ class TestUtils(unittest.TestCase):
|
||||
|
||||
mock_post.side_effect = requests.ConnectionError()
|
||||
error_analytics("placeholder")
|
||||
mock_post.assert_called()
|
||||
|
||||
@mock.patch("requests.post")
|
||||
def test_error_analytics_successful(self, mock_post):
|
||||
error_analytics("placeholder")
|
||||
mock_post.assert_called()
|
||||
|
||||
|
||||
@mock.patch("IPython.get_ipython")
|
||||
|
Loading…
Reference in New Issue
Block a user