def test_api_get_client_info(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate, f_validator): assert network.get_last_send_response() is None network.mock_receive(ApiURIs.info_clients.uri, REQ_SENDER, {}) resp = network.get_last_send_response() assert resp is not None assert resp.get_receiver() == REQ_SENDER f_validator.validate(resp.get_payload(), "api_get_all_clients_response")
def test_api_get_all_configs(api: ApiManager, network: DummyNetworkConnector, debug_config: dict, f_validator): network.mock_receive(ApiURIs.config_storage_get_all.uri, REQ_SENDER, {}) response = network.get_last_send_response() assert response is not None assert debug_config["name"] in response.get_payload()["configs"] assert response.get_payload()["configs"][ debug_config["name"]] == debug_config["description"] f_validator.validate(response.get_payload(), "api_config_get_all_response")
def test_api_heartbeat(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate): network.mock_receive(ApiURIs.heartbeat.uri, REQ_SENDER, {"test": 0x01}) assert delegate.get_last_heartbeat_name() is None assert delegate.get_last_heartbeat_runtime() is None network.mock_receive(ApiURIs.heartbeat.uri, REQ_SENDER, {"runtime_id": REQ_RUNTIME}) assert delegate.get_last_heartbeat_name() == REQ_SENDER assert delegate.get_last_heartbeat_runtime() == REQ_RUNTIME
def test_api_save_config(api: ApiManager, network: DummyNetworkConnector, debug_config_doesnt_exist: dict): conf_payload_overwrite = { "config": debug_config_doesnt_exist, "overwrite": True } conf_payload = {"config": debug_config_doesnt_exist, "overwrite": False} # save without overwrite (initial) network.mock_receive(ApiURIs.config_storage_save.uri, REQ_SENDER, conf_payload) response = network.get_last_send_response() assert response is not None assert response.get_ack() is True # save with overwrite network.mock_receive(ApiURIs.config_storage_save.uri, REQ_SENDER, conf_payload_overwrite) response = network.get_last_send_response() assert response is not None assert response.get_ack() is True # save without overwrite network.mock_receive(ApiURIs.config_storage_save.uri, REQ_SENDER, conf_payload) response = network.get_last_send_response() assert response is not None assert response.get_payload( )["error_type"] == "ConfigAlreadyExistsException"
def test_api_client_reboot(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate): # TODO: finish test! delegate.add_client( Client("spongo", 123123123, datetime.datetime.utcnow(), "213132", "fb_420", {}, 1, SoftwareVersion(3, 4, 12))) network.mock_receive(ApiURIs.client_reboot.uri, REQ_SENDER, {"client": "spongo"}) network.mock_receive(ApiURIs.client_reboot.uri, REQ_SENDER, {"id": "spongo"})
def test_api_handle_gadget_update(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate): delegate.add_gadget( Gadget(GADGET_NAME, "spongolopolus", [Characteristic(CharacteristicIdentifier.status, 0, 1, 1, 1)])) network.mock_receive(ApiURIs.update_gadget.uri, REQ_SENDER, {"gadget": { "yolo": "blub" }}) assert delegate.get_last_gadget_update() is None network.mock_receive(ApiURIs.update_gadget.uri, REQ_SENDER, GADGET_UPDATE_ERR) assert delegate.get_last_gadget_update() is None network.mock_receive(ApiURIs.update_gadget.uri, REQ_SENDER, GADGET_UPDATE_ERR_UNKNOWN) assert delegate.get_last_gadget_update() is None network.mock_receive(ApiURIs.update_gadget.uri, REQ_SENDER, GADGET_UPDATE_OK) assert delegate.get_last_gadget_update() is not None assert delegate.get_last_gadget_update().get_characteristic_types( )[0] == GADGET_CHARACTERISTIC_TYPE
def test_api_client_sync(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate): network.mock_receive(ApiURIs.sync_client.uri, REQ_SENDER, {"client": { "yolo": "blub" }}) assert delegate.get_last_client() is None network.mock_receive(ApiURIs.sync_client.uri, REQ_SENDER, payload=CLIENT_CONFIG_OK) assert delegate.get_last_client() is not None assert delegate.get_last_client().get_runtime_id() == REQ_RUNTIME assert delegate.get_last_client().get_name() == REQ_SENDER assert delegate.get_last_gadget() is not None assert delegate.get_last_gadget().get_name() == GADGET_NAME
def test_api_request_sync(api: ApiManager, network: DummyNetworkConnector, delegate: DummyApiDelegate): api.request_sync(REQ_SENDER) last_send = network.get_last_send_req() assert last_send is not None assert last_send.get_receiver() == REQ_SENDER assert last_send.get_sender() == HOSTNAME
def config_write_test_helper(write_method: Callable[[dict], None], config: dict, connector: DummyNetworkConnector): assert config is not None with pytest.raises(ValidationError): write_method(BROKEN_CONFIG) connector.reset() with pytest.raises(NoClientResponseException): write_method(config) connector.reset() connector.mock_ack(False) with pytest.raises(ConfigWriteError): write_method(config) connector.reset() connector.mock_ack(True) write_method(config)
def test_client_controller_reset_config(controller: ClientController, connector: DummyNetworkConnector, manager: ClientConfigManager): with pytest.raises(NoClientResponseException): controller.erase_config() connector.reset() connector.mock_ack(False) with pytest.raises(ConfigEraseError): controller.erase_config() connector.reset() connector.mock_ack(True) controller.erase_config()
def test_api_delete_config(api: ApiManager, network: DummyNetworkConnector, debug_config: dict): conf_payload = {"name": debug_config["name"]} network.mock_receive(ApiURIs.config_storage_delete.uri, REQ_SENDER, conf_payload) response = network.get_last_send_response() assert response is not None assert response.get_ack() is True network.mock_receive(ApiURIs.config_storage_delete.uri, REQ_SENDER, conf_payload) response = network.get_last_send_response() assert response is not None assert response.get_payload( )["error_type"] == "ConfigDoesNotExistException"
def test_api_get_config(api: ApiManager, network: DummyNetworkConnector, debug_config: dict, f_validator): conf_name = {"name": debug_config["name"]} network.mock_receive(ApiURIs.config_storage_get.uri, REQ_SENDER, conf_name) response = network.get_last_send_response() assert response is not None assert response.get_payload()["config"]["name"] == conf_name["name"] f_validator.validate(response.get_payload(), "api_config_get_response") conf_name_illegal = {"name": "Unicorn"} network.mock_receive(ApiURIs.config_storage_get.uri, REQ_SENDER, conf_name_illegal) response = network.get_last_send_response() assert response is not None assert response.get_payload( )["error_type"] == "ConfigDoesNotExistException"
def connector(): connector = DummyNetworkConnector(HOST_NAME) yield connector connector.__del__()
def network(): network = DummyNetworkConnector(HOSTNAME) yield network
def test_api_unknown(api: ApiManager, network: DummyNetworkConnector): network.mock_receive("unknown_path", REQ_SENDER, {"test": 0x01})
def test_api_send_gadget_update(api: ApiManager, network: DummyNetworkConnector, f_any_gadget): api.send_gadget_update(f_any_gadget) assert network.get_last_send_req() is not None assert network.get_last_send_req().get_receiver() is None
def connector(): connector = DummyNetworkConnector(TEST_SENDER_NAME) yield connector connector.__del__()