1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # Copyright 2021-2024 Avaiga Private Limited
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
- # the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations under the License.
- from unittest import mock
- from flask import url_for
- def test_get_scenario(client, default_scenario):
- # test 404
- user_url = url_for("api.scenario_by_id", scenario_id="foo")
- rep = client.get(user_url)
- assert rep.status_code == 404
- with mock.patch("taipy.core.scenario._scenario_manager._ScenarioManager._get") as manager_mock:
- manager_mock.return_value = default_scenario
- # test get_scenario
- rep = client.get(url_for("api.scenario_by_id", scenario_id="foo"))
- assert rep.status_code == 200
- def test_delete_scenario(client):
- # test 404
- user_url = url_for("api.scenario_by_id", scenario_id="foo")
- rep = client.get(user_url)
- assert rep.status_code == 404
- with mock.patch("taipy.core.scenario._scenario_manager._ScenarioManager._delete"), mock.patch(
- "taipy.core.scenario._scenario_manager._ScenarioManager._get"
- ):
- # test get_scenario
- rep = client.delete(url_for("api.scenario_by_id", scenario_id="foo"))
- assert rep.status_code == 200
- def test_create_scenario(client, default_scenario_config):
- # without config param
- scenarios_url = url_for("api.scenarios")
- rep = client.post(scenarios_url)
- assert rep.status_code == 400
- # config does not exist
- scenarios_url = url_for("api.scenarios", config_id="foo")
- rep = client.post(scenarios_url)
- assert rep.status_code == 404
- with mock.patch("taipy.rest.api.resources.scenario.ScenarioList.fetch_config") as config_mock:
- config_mock.return_value = default_scenario_config
- scenarios_url = url_for("api.scenarios", config_id="bar")
- rep = client.post(scenarios_url)
- assert rep.status_code == 201
- def test_get_all_scenarios(client, default_sequence, default_scenario_config_list):
- for ds in range(10):
- with mock.patch("taipy.rest.api.resources.scenario.ScenarioList.fetch_config") as config_mock:
- config_mock.return_value = default_scenario_config_list[ds]
- scenarios_url = url_for("api.scenarios", config_id=config_mock.name)
- client.post(scenarios_url)
- rep = client.get(scenarios_url)
- assert rep.status_code == 200
- results = rep.get_json()
- assert len(results) == 10
- def test_execute_scenario(client, default_scenario_config):
- # test 404
- user_url = url_for("api.scenario_submit", scenario_id="foo")
- rep = client.post(user_url)
- assert rep.status_code == 404
- with mock.patch("taipy.rest.api.resources.scenario.ScenarioList.fetch_config") as config_mock:
- config_mock.return_value = default_scenario_config
- scenarios_url = url_for("api.scenarios", config_id="bar")
- scn = client.post(scenarios_url)
- rep = client.post(url_for("api.scenario_submit", scenario_id=scn.json["scenario"]["id"]))
- assert rep.status_code == 200
|