Exemple #1
0
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")
Exemple #2
0
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")
Exemple #3
0
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
Exemple #4
0
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"
Exemple #5
0
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"})
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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()
Exemple #11
0
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"
Exemple #12
0
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__()
Exemple #14
0
def network():
    network = DummyNetworkConnector(HOSTNAME)
    yield network
Exemple #15
0
def test_api_unknown(api: ApiManager, network: DummyNetworkConnector):
    network.mock_receive("unknown_path", REQ_SENDER, {"test": 0x01})
Exemple #16
0
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__()