docs: update test docs

This commit is contained in:
Maria Fernanda Magallanes Zubillaga
2022-06-30 22:08:49 -04:00
parent 39dec5740f
commit 547ceaad8a

View File

@@ -25,58 +25,66 @@ class MFEConfigTestCase(APITestCase):
"""Test the get mfe config from site configuration with the mfe api.
Expected result:
- Inside self.get_json pass the response is a json and the status is 200 asserts.
- The configuration obtained by the api is equal to its site configuration in the
MFE_CONFIG key.
- The get_value method of the configuration_helpers in the views is called once with the
parameters ("MFE_CONFIG", {}).
- The status of the response of the request is a HTTP_200_OK.
- The json of the response of the request is equal to the mocked configuration.
"""
configuration_helpers_mock.get_value.return_value = {"logo": "logo.jpg"}
configuration_helpers_mock.get_value.return_value = {"EXAMPLE_VAR": "value"}
response = self.client.get(self.mfe_config_api_url)
configuration_helpers_mock.get_value.assert_called_once_with("MFE_CONFIG", {})
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.json(), {"logo": "logo.jpg"})
self.assertEqual(response.json(), {"EXAMPLE_VAR": "value"})
@patch("lms.djangoapps.mfe_api.views.configuration_helpers")
def test_get_mfe_config_with_queryparams(self, configuration_helpers_mock):
"""Test the get mfe config with a query params from site configuration.
def test_get_mfe_config_with_queryparam(self, configuration_helpers_mock):
"""Test the get mfe config with a query param from site configuration.
Expected result:
- Inside self.get_json pass the response is a json and the status is 200 asserts.
- The configuration obtained by the api is equal to its site configuration in the
MFE_CONFIG and MFE_CONFIG_MYMFE merged on top.
- The get_value method of the configuration_helpers in the views is called twice, once with the
parameters ("MFE_CONFIG", {}) and once with the parameters ("MFE_CONFIG_MYMFE", {}).
and one for get_value("MFE_CONFIG_MYMFE", {}).
- The json of the response is the merge of both mocked configurations.
"""
configuration_helpers_mock.get_value.side_effect = [{"logo": "logo.jpg", "other": "other"},
{"logo": "logo_mymfe.jpg"}]
configuration_helpers_mock.get_value.side_effect = [{"EXAMPLE_VAR": "value", "OTHER": "other"},
{"EXAMPLE_VAR": "mymfe_value"}]
response = self.client.get(f"{self.mfe_config_api_url}?mfe=mymfe")
self.assertEqual(response.status_code, status.HTTP_200_OK)
calls = [call("MFE_CONFIG", {}), call("MFE_CONFIG_MYMFE", {})]
configuration_helpers_mock.get_value.assert_has_calls(calls)
self.assertEqual(response.json(), {"logo": "logo_mymfe.jpg", "other": "other"})
self.assertEqual(response.json(), {"EXAMPLE_VAR": "mymfe_value", "OTHER": "other"})
@patch("lms.djangoapps.mfe_api.views.configuration_helpers")
@ddt.data(
[{}, {}, {}],
[{"logo": "logo.jpg"}, {}, {"logo": "logo.jpg"}],
[{}, {"logo": "logo_mymfe.jpg"}, {"logo": "logo_mymfe.jpg"}],
[{"logo": "logo.jpg"}, {"logo": "logo_mymfe.jpg"}, {"logo": "logo_mymfe.jpg"}],
[{"logo": "logo.jpg", "other": "other"}, {"logo": "logo_mymfe.jpg"},
{"logo": "logo_mymfe.jpg", "other": "other"}],
[{"EXAMPLE_VAR": "value"}, {}, {"EXAMPLE_VAR": "value"}],
[{}, {"EXAMPLE_VAR": "mymfe_value"}, {"EXAMPLE_VAR": "mymfe_value"}],
[{"EXAMPLE_VAR": "value"}, {"EXAMPLE_VAR": "mymfe_value"}, {"EXAMPLE_VAR": "mymfe_value"}],
[{"EXAMPLE_VAR": "value", "OTHER": "other"}, {"EXAMPLE_VAR": "mymfe_value"},
{"EXAMPLE_VAR": "mymfe_value", "OTHER": "other"}],
)
@ddt.unpack
def test_get_mfe_config_with_queryparams_other_cases(
def test_get_mfe_config_with_queryparam_multiple_configs(
self,
mfe_config,
mfe_config_mymfe,
expected_response,
configuration_helpers_mock
):
"""_summary_
"""Test the get mfe config with a query param and different settings in mfe_config and mfe_config_mfe inside
the site configuration to test that the merge of the configurations is done correctly and mymfe config take
precedence.
Args:
configuration_helpers_mock (_type_): _description_
In the ddt data the following structure is being passed:
[mfe_config, mfe_config_mymfe, expected_response]
Expected result:
- The get_value method of the configuration_helpers in the views is called twice, once with the
parameters ("MFE_CONFIG", {}) and once with the parameters ("MFE_CONFIG_MYMFE", {}).
- The json of the response is the expected_response passed by ddt.data.
"""
configuration_helpers_mock.get_value.side_effect = [mfe_config, mfe_config_mymfe]
response = self.client.get(f"{self.mfe_config_api_url}?mfe=mymfe")
@@ -91,8 +99,9 @@ class MFEConfigTestCase(APITestCase):
"""Test the 404 not found response from get mfe config.
Expected result:
- Response status code equal to 404
- The get_value method of configuration_helpers is not called.
- The status of the response of the request is a HTTP_404_NOT_FOUND.
"""
response = self.client.get(self.mfe_config_api_url)
configuration_helpers_mock.get_value.assert_not_called()
assert response.status_code == status.HTTP_404_NOT_FOUND
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)