blob: 5057367ed6b9e0fad69d5d19e79b1e5ab398fafe [file] [log] [blame]
# Copyright (c) 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from blinkpy.web_tests.servers import cli_wrapper
class MockServer(object):
def __init__(self, *args, **kwargs):
self.args = args
self.kwargs = kwargs
self.start_called = False
self.stop_called = False
self.is_alive = True
def start(self):
self.start_called = True
def stop(self):
self.stop_called = True
def alive(self):
return self.is_alive
class CliWrapperTest(unittest.TestCase):
def setUp(self):
self.server = None
def test_main_success(self):
def mock_server_constructor(*args, **kwargs):
self.server = MockServer(args, kwargs)
return self.server
def raise_exit():
raise SystemExit
cli_wrapper.main(mock_server_constructor, sleep_fn=raise_exit, argv=[])
self.assertTrue(self.server.start_called)
self.assertTrue(self.server.stop_called)
def test_main_server_error_after_start(self):
def mock_server_constructor(*args, **kwargs):
self.server = MockServer(args, kwargs)
return self.server
def server_error():
self.server.is_alive = False
cli_wrapper.main(mock_server_constructor,
sleep_fn=server_error,
argv=[])
self.assertTrue(self.server.start_called)
self.assertTrue(self.server.stop_called)