def testElementCallbackScreenReceived(self): resource_dir = tempfile.mkdtemp() http_client = MockFaseHTTPClient(self, resource_dir) ui = MockFaseUI(self) resource_manager = fase_resource_manager.FaseResourceManager(resource_dir, http_client) client = fase_client.FaseClient(http_client=http_client, ui=ui, resource_manager=resource_manager) service = ClientTestService() screen = service.OnStart() http_client.service = service http_client.screen = screen http_client.session_info = fase_model.SessionInfo(service.GetSessionId()) http_client.screen_info = fase_model.ScreenInfo(screen.GetScreenId()) ui.expected_screen = screen client.Run() self.assertEqual(1, http_client.get_service_calls) self.assertEqual(1, ui.draw_screen_calls) screen.GetElement(id_='text_name_id').Update('Hanry Ford') screen = (getattr(screen.GetElement(id_='next_button_id'), fase.ON_CLICK_METHOD) (service, screen, screen.GetElement(id_='next_button_id'))) http_client.screen = screen client.ScreenUpdate() time.sleep(0.1) self.assertEqual(1, http_client.screen_update_calls) ui.expected_screen = screen client.ElementCallback(id_list=['next_button_id'], method=fase.ON_CLICK_METHOD) self.assertEqual(2, ui.draw_screen_calls) self.assertEqual(0, ui.element_updated_received_calls)
def testScreenUpdateElementsUpdateReceived(self): resource_dir = tempfile.mkdtemp() http_client = MockFaseHTTPClient(self, resource_dir) ui = MockFaseUI(self) resource_manager = fase_resource_manager.FaseResourceManager(resource_dir, http_client) client = fase_client.FaseClient(http_client=http_client, ui=ui, resource_manager=resource_manager) service = ClientTestService() screen = service.OnStart() http_client.service = service http_client.screen = screen http_client.session_info = fase_model.SessionInfo(service.GetSessionId()) http_client.screen_info = fase_model.ScreenInfo(screen.GetScreenId()) ui.expected_screen = screen client.Run() self.assertEqual(1, http_client.get_service_calls) self.assertEqual(1, ui.draw_screen_calls) http_client.elements_update=fase_model.ElementsUpdate([['text_name_id']], ['Hanry Ford']) http_client.screen = None client.ScreenUpdate() time.sleep(0.1) self.assertEqual(1, http_client.screen_update_calls) ui.expected_id_list = ['text_name_id'] ui.expected_value = 'Hanry Ford' client.ScreenUpdate() self.assertEqual(1, ui.draw_screen_calls) self.assertEqual(1, ui.element_updated_received_calls)
def GetScreen(self, device, session_info): self.get_screen_calls += 1 self.test_obj.assertEqual('Python', device.device_type) self.device = device self.test_obj.assertEqual(fase_model.SessionInfo(self.service.GetSessionId()), session_info) return fase_model.Response(screen=self.screen, resources=self.resources, elements_update=self.elements_update, session_info=self.session_info, screen_info=self.screen_info)
def getscreen(): version_info = fase_model.VersionInfo( version=request.headers.get('version', None)) session_info = fase_model.SessionInfo( session_id=request.headers.get('session_id', None)) device_simple = request.get_json(force=True) device = fase_model.Device.FromSimple(device_simple) response_simple, code = SafeCall(fase_server.FaseServer.Get().GetScreen, device, version_info, session_info) response_simple = CleanSimple(response_simple) return jsonify(**response_simple), code
def screenupdate(): version_info = fase_model.VersionInfo( version=request.headers.get('version', None)) session_info = fase_model.SessionInfo( session_id=request.headers.get('session_id', None)) screen_info = fase_model.ScreenInfo( screen_id=request.headers.get('screen_id', None)) screen_update_simple = request.get_json(force=True) screen_update = fase_model.ScreenUpdate.FromSimple(screen_update_simple) response_simple, code = SafeCall(fase_server.FaseServer.Get().ScreenUpdate, screen_update, version_info, session_info, screen_info) response_simple = CleanSimple(response_simple) return jsonify(**response_simple), code
def testGetScreen(self): service = ClientTestService() resource_dir = tempfile.mkdtemp() http_client = MockFaseHTTPClient(self, resource_dir) ui = MockFaseUI(self) resource_manager = fase_resource_manager.FaseResourceManager(resource_dir, http_client) session_info_tmp = tempfile.NamedTemporaryFile() fase_client.SaveSessionInfoIfNeeded(session_info_tmp.name, fase_model.SessionInfo(service.GetSessionId())) client = fase_client.FaseClient(http_client=http_client, ui=ui, resource_manager=resource_manager, session_info_filepath=session_info_tmp.name) screen = service.OnStart() http_client.service = service http_client.screen = screen http_client.resources = fase_model.Resources(resource_list=[fase_model.Resource(filename='a')]) http_client.session_info = fase_model.SessionInfo(service.GetSessionId()) http_client.screen_info = fase_model.ScreenInfo(screen.GetScreenId()) ui.expected_screen = screen client.Run() self.assertEqual(1, http_client.get_screen_calls) self.assertEqual(1, http_client.get_resource_filename_calls) self.assertEqual(1, ui.draw_screen_calls)
def elementcallback(): version_info = fase_model.VersionInfo( version=request.headers.get('version', None)) session_info = fase_model.SessionInfo( session_id=request.headers.get('session_id', None)) screen_info = fase_model.ScreenInfo( screen_id=request.headers.get('screen_id', None)) element_callback_simple = request.get_json(force=True) element_callback = fase_model.ElementCallback.FromSimple( element_callback_simple) response_simple, code = SafeCall( fase_server.FaseServer.Get().ElementCallback, element_callback, version_info, session_info, screen_info) response_simple = CleanSimple(response_simple) return jsonify(**response_simple), code
def testGetScreen(self): self.requests_bkp = fase_http_client.requests fase_http_client.requests = MockRequests(self) http_client = fase_http_client.FaseHTTPClient(MOCK_URL) device = fase_model.Device(device_type='MockType', device_id='MockDeviceID') session_info = fase_model.SessionInfo(session_id='MockSessionId') response = fase_model.Response() fase_http_client.requests.expected_url = MOCK_URL + '/getscreen' fase_http_client.requests.expected_headers = {'session-id': session_info.session_id} fase_http_client.requests.expected_json = device.ToSimple() fase_http_client.requests.response = response actual_response = http_client.GetScreen(device, session_info) self.assertEqual(response, actual_response) fase_http_client.requests = self.requests_bkp
def testScreenUpdateAndElementCallback(self): self.requests_bkp = fase_http_client.requests fase_http_client.requests = MockRequests(self) http_client = fase_http_client.FaseHTTPClient(MOCK_URL) device = fase_model.Device(device_type='MockType', device_id='MockDeviceID') session_info = fase_model.SessionInfo(session_id='MockSessionId') screen_info = fase_model.ScreenInfo(screen_id='MockScreenId') response = fase_model.Response() for url_method, http_client_method in [('/screenupdate', http_client.ScreenUpdate), ('/elementcallback', http_client.ElementCallback)]: fase_http_client.requests.expected_url = MOCK_URL + url_method fase_http_client.requests.expected_headers = { 'session-id': session_info.session_id, 'screen-id': screen_info.screen_id} fase_http_client.requests.expected_json = device.ToSimple() fase_http_client.requests.response = response actual_response = http_client_method(device, session_info, screen_info) self.assertEqual(response, actual_response) fase_http_client.requests = self.requests_bkp