|
4 | 4 | import json
|
5 | 5 | from pathlib import Path
|
6 | 6 | from typing import List
|
| 7 | +from xml.etree import ElementTree as ET |
7 | 8 |
|
8 | 9 | import yaml
|
9 | 10 | from gooddata_sdk import (
|
@@ -840,3 +841,82 @@ def test_update_workspace_setting(test_config):
|
840 | 841 | finally:
|
841 | 842 | sdk.catalog_workspace.delete_workspace_setting(test_config["workspace"], setting_id)
|
842 | 843 | assert len(sdk.catalog_workspace.list_workspace_settings(test_config["workspace"])) == 0
|
| 844 | + |
| 845 | + |
| 846 | +@gd_vcr.use_cassette(str(_fixtures_dir / "get_metadata_localization.yaml")) |
| 847 | +def test_get_metadata_localization(test_config): |
| 848 | + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) |
| 849 | + test_workspace = test_config["workspace"] |
| 850 | + xliff = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 851 | + |
| 852 | + tree = ET.ElementTree(ET.fromstring(xliff)) |
| 853 | + |
| 854 | + # Check, if the returned xliff is valid. |
| 855 | + assert tree is not None |
| 856 | + |
| 857 | + |
| 858 | +@gd_vcr.use_cassette(str(_fixtures_dir / "set_metadata_localization.yaml")) |
| 859 | +def test_set_metadata_localization(test_config): |
| 860 | + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) |
| 861 | + test_workspace = test_config["workspace"] |
| 862 | + xliff = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 863 | + |
| 864 | + sdk.catalog_workspace.set_metadata_localization(workspace_id=test_workspace, encoded_xml=xliff) |
| 865 | + |
| 866 | + |
| 867 | +@gd_vcr.use_cassette(str(_fixtures_dir / "add_metadata_locale.yaml")) |
| 868 | +def test_add_metadata_locale(test_config): |
| 869 | + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) |
| 870 | + test_workspace = test_config["workspace"] |
| 871 | + |
| 872 | + def translate( |
| 873 | + to_translate: str, |
| 874 | + already_translated: bool = False, |
| 875 | + old_translation: str = "", |
| 876 | + ): |
| 877 | + return f"{to_translate}." |
| 878 | + |
| 879 | + sdk.catalog_workspace.clean_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 880 | + |
| 881 | + xliff_before = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 882 | + |
| 883 | + sdk.catalog_workspace.add_metadata_locale( |
| 884 | + workspace_id=test_workspace, target_language="fr-FR", translator_func=translate, set_locale=False |
| 885 | + ) |
| 886 | + |
| 887 | + xliff_after = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 888 | + |
| 889 | + sdk.catalog_workspace.clean_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 890 | + |
| 891 | + assert xliff_before != xliff_after |
| 892 | + |
| 893 | + |
| 894 | +@gd_vcr.use_cassette(str(_fixtures_dir / "clean_metadata_locale.yaml")) |
| 895 | +def test_clean_metadata_locale(test_config): |
| 896 | + sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) |
| 897 | + test_workspace = test_config["workspace"] |
| 898 | + |
| 899 | + def translate( |
| 900 | + to_translate: str, |
| 901 | + already_translated: bool = False, |
| 902 | + old_translation: str = "", |
| 903 | + ): |
| 904 | + return f"{to_translate}." |
| 905 | + |
| 906 | + sdk.catalog_workspace.clean_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 907 | + |
| 908 | + xliff_before = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 909 | + |
| 910 | + sdk.catalog_workspace.add_metadata_locale( |
| 911 | + workspace_id=test_workspace, target_language="fr-FR", translator_func=translate, set_locale=False |
| 912 | + ) |
| 913 | + |
| 914 | + xliff_after = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 915 | + |
| 916 | + assert xliff_before != xliff_after |
| 917 | + |
| 918 | + sdk.catalog_workspace.clean_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 919 | + |
| 920 | + xliff_after = sdk.catalog_workspace.get_metadata_localization(workspace_id=test_workspace, target_language="fr-FR") |
| 921 | + |
| 922 | + assert xliff_before == xliff_after |
0 commit comments