| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- """
- Copyright (c) Contributors to the Open 3D Engine Project.
- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- SPDX-License-Identifier: Apache-2.0 OR MIT
- """
- class Tests:
- changed_original_material_document_color = (
- "original_material_document_color baseColor.color property value was changed successfully.",
- "P0: original_material_document_color failed to change baseColor.color property value.")
- changed_new_material_document_color = (
- "new_material_document_color baseColor.color property value was changed successfully.",
- "P0: new_material_document_color failed to change baseColor.color property value.")
- changed_child_material_document_color = (
- "child_material_document baseColor.color property value was changed successfully.",
- "P0: child_material_document failed to change baseColor.color property value.")
- changed_first_material_document_color = (
- "first_material_document baseColor.color property value changed successfully.",
- "P0: Failed to change the first_material_document color factor property.")
- changed_second_material_document_color = (
- "second_material_document baseColor.color property value was changed successfully.",
- "P0: second_material_document failed to change baseColor.color property value.")
- closed_original_new_and_child_material_documents = (
- "Closed original_material_document, new_material_document, & child_material_document successfully.",
- "P0: Failed to close original_material_document, new_material_document, & child_material_document.")
- closed_first_material_document = (
- "Closed first_material_document successfully.",
- "P0: Failed to close first_material_document.")
- closed_second_material_document = (
- "Closed second_material_document successfully.",
- "P0: Failed to close second_material_document.")
- closed_first_and_second_material_documents = (
- "Closed first_material_document & second_material_document successfully.",
- "P0: Failed to close first_material_document & second_material_document.")
- first_material_document_has_expected_starting_color = (
- "first_material_document has expected baseColor.color property value",
- "P0: first_material_document did not have expected baseColor.color property value.")
- first_material_document_is_not_open = (
- "first_material_document is not currently open.",
- "P0: first_material_document was unexpectedly open.")
- opened_original_material_document = (
- "original_material_document opened successfully",
- "P0: Failed to open original_material_document.")
- opened_first_material_document = (
- "Opened first_material_document.",
- "P0: Failed to open first_material_document.")
- opened_second_material_document = (
- "Opened second_material_document.",
- "P0: Failed to open second_material_document.")
- opened_first_material_document_copy = (
- "Opened first_material_document_copy successfully",
- "P0: Failed to open first_material_document_copy.")
- opened_second_material_document_copy = (
- "Opened second_material_document_copy successfully",
- "P0: Failed to open second_material_document_copy.")
- original_material_document_has_expected_starting_color = (
- "original_material_document has expected baseColor.color property value",
- "P0: original_material_document did not have expected baseColor.color property value.")
- reclosed_original_new_child_material_documents = (
- "Re-closed original_material_document, new_material_document, & child_material_document.",
- "P0: Failed to re-close original_material_document, new_material_document, & child_material_document.")
- reclosed_first_material_document = (
- "Re-closed first_material_document.",
- "P0: Failed to re-close first_material_document.")
- reclosed_second_material_document = (
- "Re-closed second material document.",
- "P0: Failed to re-cloe second material document.")
- resaved_original_material_document = (
- "original_material_document was re-saved successfully.",
- "P0: original_material_document could not be re-saved.")
- resaved_first_material_document = (
- "first_material_document was re-saved successfully.",
- "P0: first_material_document could not be re-saved.")
- resaved_second_material_document = (
- "second_material_document was re-saved successfully.",
- "P0: second_material_document could not be re-saved.")
- reverted_original_material_document_color = (
- "original_material_document baseColor.color property value reverted to original value before changing it.",
- "P0: Failed to revert original_material_document baseColor.color property value to original value.")
- reverted_first_material_document_color = (
- "first_material_document baseColor.color property value reverted to original value before changing it.",
- "P0: Failed to revert first_material_document baseColor.color property value to original value.")
- reverted_second_material_document_color = (
- "second_material_document baseColor.color property value reverted to original value before changing it.",
- "P0: Failed to revert second_material_document baseColor.color property value to original value.")
- saved_original_material_document = (
- "original_material_document was saved successfully.",
- "P0: original_material_document could not be saved.")
- saved_new_material_document = (
- "new_material_document was saved successfully.",
- "P0: new_material_document could not be saved.")
- saved_child_material_document = (
- "child_material_document was saved successfully.",
- "P0: child_material_document could not be saved.")
- saved_changes_to_original_material_document = (
- "Changes saved successfully for original_material_document",
- "P0: original_material_document changes could not be saved.")
- saved_changes_to_new_material_document = (
- "Changes saved successfully for new_material_document",
- "P0: new_material_document changes could not be saved.")
- saved_first_material_document = (
- "Changes saved successfully for first_material_document",
- "P0: first_material_document changes could not be saved.")
- saved_changes_to_child_material_document = (
- "Changes saved successfully for child_material_document",
- "P0: child_material_document changes could not be saved.")
- saved_second_material_document = (
- "Changes saved successfully for second_material_document",
- "P0: second_material_document changes could not be saved.")
- second_material_document_has_expected_starting_color = (
- "second_material_document has expected baseColor.color property value",
- "P0: second_material_document did not have expected baseColor.color property value.")
- second_material_document_is_not_open = (
- "second_material_document is not currently open.",
- "P0: second_material_document was unexpectedly open.")
- verified_first_material_document_color = (
- "Verified first_material_document_copy property value for baseColor.color is accurate",
- "P0: Unexpected first_material_document property value for baseColor.color returned.")
- verified_second_material_document_color = (
- "Verified second_material_document_copy property value for baseColor.color is accurate",
- "P0: Unexpected second_material_document property value for baseColor.color returned.")
- def MaterialEditor_FileSaveChecks_AllChecksPass():
- """
- Summary:
- Tests basic MaterialEditor functionality that deals with file I/O writes (i.e. saving materials).
- Expected Behavior:
- All MaterialEditor tests dealing with file saving all pass without issues.
- Test Steps:
- 1) Open an existing material document referred to as "original_material_document".
- 2) Verify original_material_document baseColor.color property value is 1.0, 1.0, 1.0, 1.0.
- 3) Change the baseColor.color property value of original_material_document to 0.25, 0.25, 0.25, 1.0.
- 4) Save over original_material_document.
- 5) Change the baseColor.color property value of original_material_document to 0.5, 0.5, 0.5, 1.0.
- 6) Save a new material document from original_material_document referred to as "new_material_document".
- 7) Change the baseColor.color property value of original_material_document to 0.75, 0.75, 0.75, 1.0.
- 8) Save a new child material document referred to as "child_material_document".
- 9) Close & open previously saved original_material_document, new_material_document, & child_material_document.
- 10) Verify the changes are saved in original_material_document.
- 11) Verify the changes are saved in new_material_document.
- 12) Verify the changes are saved in child_material_document.
- 13) Revert changes to original_material_document and save them.
- 14) Close all currently opened documents.
- 15) Open a material document referred to as "first_material_document".
- 16) Verify first_material_document baseColor.color property value is 0.5, 0.5, 0.5, 1.0.
- 17) Change the baseColor.color property value of first_material_document to 0.4156, 0.0196, 0.6862, 1.0.
- 18) Save the first_material_document as a new material document file.
- 19) Open a second material document referred to as "second_material_document".
- 20) Verify second_material_document baseColor.color property value
- is 0.5093766450881958, 0.5093766450881958, 0.5093766450881958, 1.0.
- 21) Change the baseColor.color property value of the second_material_document to 0.4156, 0.0196, 0.6862, 1.0.
- 22) Save the second_material_document as a new material document file.
- 23) Close the first_material_document and second_material_document.
- 24) Open the first_material_document & verify the changes are saved.
- 25) Open the second_material_document & verify the changes are saved.
- 26) Revert changes to first_material_document and second_material_document.
- 27) Re-save first_material_document and second_material_document to restore their original values.
- 28) Close all currently opened documents.
- 29) Look for errors and asserts.
- :return: None
- """
- import os
- from azlmbr.math import Color
- import Atom.atom_utils.atom_tools_utils as atom_tools_utils
- import Atom.atom_utils.material_editor_utils as material_editor_utils
- from editor_python_test_tools.utils import Report, Tracer, TestHelper
- with Tracer() as error_tracer:
- # Set constants before starting test steps.
- base_color_property_name = "baseColor.color"
- original_material_document = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "StandardPbrTestCases", "001_DefaultWhite.material")
- new_material_document = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "new_material_document.material")
- child_material_document = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "child_material_document.material")
- first_material_document = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "StandardPbrTestCases", "003_MetalMatte.material")
- first_material_document_copy = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "first_material_document.material")
- second_material_document = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "StandardPbrTestCases", "004_MetalMap.material")
- second_material_document_copy = os.path.join(
- atom_tools_utils.TEST_DATA_MATERIALS_PATH, "second_material_document.material")
- # Disable registry settings to prevent message boxes from blocking test progression.
- atom_tools_utils.disable_document_message_box_settings()
- # 1. Open an existing material document referred to as "original_material_document".
- original_material_document_id = atom_tools_utils.open_document(original_material_document)
- Report.result(
- Tests.opened_original_material_document,
- atom_tools_utils.is_document_open(original_material_document_id) is True)
- # 2. Verify original_material_document baseColor.color property value is 1.0, 1.0, 1.0, 1.0.
- expected_original_material_starting_color = Color(1.0, 1.0, 1.0, 1.0)
- Report.result(
- Tests.original_material_document_has_expected_starting_color,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == expected_original_material_starting_color)
- # 3. Change the baseColor.color property value of original_material_document to 0.25, 0.25, 0.25, 1.0.
- original_material_document_color = Color(0.25, 0.25, 0.25, 1.0)
- material_editor_utils.set_property(
- original_material_document_id, base_color_property_name, original_material_document_color)
- Report.result(
- Tests.changed_original_material_document_color,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == original_material_document_color)
- # 4. Save over original_material_document.
- original_material_document_saved = atom_tools_utils.save_document(original_material_document_id)
- Report.result(
- Tests.saved_original_material_document,
- original_material_document_saved is True)
- # 5. Change the baseColor.color property value of original_material_document to 0.5, 0.5, 0.5, 1.0.
- new_material_document_color = Color(0.5, 0.5, 0.5, 1.0)
- material_editor_utils.set_property(
- original_material_document_id, base_color_property_name, new_material_document_color)
- Report.result(
- Tests.changed_new_material_document_color,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == new_material_document_color)
- # 6. Save a new material document from original_material_document referred to as "new_material_document".
- new_material_document_saved = atom_tools_utils.save_document_as_copy(
- original_material_document_id, new_material_document)
- Report.result(
- Tests.saved_new_material_document,
- new_material_document_saved is True)
- # 7. Change the baseColor.color property value of original_material_document to 0.75, 0.75, 0.75, 1.0.
- child_material_document_color = Color(0.75, 0.75, 0.75, 1.0)
- material_editor_utils.set_property(
- original_material_document_id, base_color_property_name, child_material_document_color)
- Report.result(
- Tests.changed_child_material_document_color,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == child_material_document_color)
- # 8. Save a new child material document referred to as "child_material_document".
- child_material_document_saved = atom_tools_utils.save_document_as_child(
- original_material_document_id, child_material_document)
- Report.result(
- Tests.saved_child_material_document,
- child_material_document_saved is True)
- # 9. Close & open previously saved original_material_document, new_material_document, & child_material_document.
- closed_all_material_documents = atom_tools_utils.close_all_documents()
- Report.result(
- Tests.closed_original_new_and_child_material_documents,
- closed_all_material_documents is True)
- original_material_document_id = atom_tools_utils.open_document(original_material_document)
- new_material_document_id = atom_tools_utils.open_document(new_material_document)
- child_material_document_id = atom_tools_utils.open_document(child_material_document)
- material_document_ids = {
- "original_material_document": original_material_document_id,
- "new_material_document": new_material_document_id,
- "child_material_document": child_material_document_id}
- for material_document_key, material_document_id in material_document_ids.items():
- Report.result(
- (f"Opened {material_document_key} with document_id value of {material_document_id}",
- f"Failed to open {material_document_key} with document_id value of {material_document_id}"),
- atom_tools_utils.is_document_open(material_document_id) is True)
- # 10. Verify the changes are saved in original_material_document.
- Report.result(
- Tests.saved_changes_to_original_material_document,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == original_material_document_color)
- # 11. Verify the changes are saved in new_material_document.
- Report.result(
- Tests.saved_changes_to_new_material_document,
- material_editor_utils.get_property(
- new_material_document_id, base_color_property_name) == new_material_document_color)
- # 12. Verify the changes are saved in child_material_document.
- Report.result(
- Tests.saved_changes_to_child_material_document,
- material_editor_utils.get_property(
- child_material_document_id, base_color_property_name) == child_material_document_color)
- # 13. Revert original_material_document color to expected_original_material_starting_color and save it.
- material_editor_utils.set_property(
- original_material_document_id, base_color_property_name, expected_original_material_starting_color)
- original_document_saved = atom_tools_utils.save_document(original_material_document_id)
- Report.result(
- Tests.resaved_original_material_document,
- original_document_saved is True)
- Report.result(
- Tests.reverted_original_material_document_color,
- material_editor_utils.get_property(
- original_material_document_id, base_color_property_name) == expected_original_material_starting_color)
- # 14. Close all currently opened documents.
- closed_all_material_documents = atom_tools_utils.close_all_documents()
- Report.result(
- Tests.reclosed_original_new_child_material_documents,
- closed_all_material_documents is True)
- for material_document_key, material_document_id in material_document_ids.items():
- Report.result(
- (f"Closed {material_document_key} with document_id value of {material_document_id}",
- f"Failed to close {material_document_key} with document_id value of {material_document_id}"),
- atom_tools_utils.is_document_open(material_document_id) is False)
- # 15. Open a material document referred to as "first_material_document".
- first_material_document_id = atom_tools_utils.open_document(first_material_document)
- Report.result(
- Tests.opened_first_material_document,
- atom_tools_utils.is_document_open(first_material_document_id) is True)
- # 16. Verify first_material_document baseColor.color property value is 0.5, 0.5, 0.5, 1.0.
- expected_first_material_starting_color = Color(0.5, 0.5, 0.5, 1.0)
- Report.result(
- Tests.first_material_document_has_expected_starting_color,
- material_editor_utils.get_property(
- first_material_document_id, base_color_property_name) == expected_first_material_starting_color)
- # 17. Change the baseColor.color property value of first_material_document to 0.0156, 0.0196, 0.0862, 1.0.
- first_material_document_color = Color(0.0156, 0.0196, 0.0862, 1.0)
- material_editor_utils.set_property(
- first_material_document_id, base_color_property_name, first_material_document_color)
- Report.result(
- Tests.changed_first_material_document_color,
- material_editor_utils.get_property(
- first_material_document_id, base_color_property_name) == first_material_document_color)
- # 18. Save the first_material_document as a new material document file.
- first_material_document_saved = atom_tools_utils.save_document_as_copy(
- first_material_document_id, first_material_document_copy)
- Report.result(
- Tests.saved_first_material_document,
- first_material_document_saved is True)
- # 19. Open a second material document referred to as "second_material_document".
- second_material_document_id = atom_tools_utils.open_document(second_material_document)
- Report.result(
- Tests.opened_second_material_document,
- atom_tools_utils.is_document_open(second_material_document_id) is True)
- # 20. Verify second_material_document baseColor.color property value
- # is 0.5093766450881958, 0.5093766450881958, 0.5093766450881958, 1.0.
- expected_second_material_starting_color = Color(0.5093766450881958, 0.5093766450881958, 0.5093766450881958, 1.0)
- Report.result(
- Tests.second_material_document_has_expected_starting_color,
- material_editor_utils.get_property(
- second_material_document_id, base_color_property_name) == expected_second_material_starting_color)
- # 21. Change the baseColor.color property value of the second_material_document to 0.4156, 0.0196, 0.6862, 1.0.
- second_material_document_color = Color(0.4156, 0.0196, 0.6862, 1.0)
- material_editor_utils.set_property(
- second_material_document_id, base_color_property_name, second_material_document_color)
- Report.result(
- Tests.changed_second_material_document_color,
- material_editor_utils.get_property(
- second_material_document_id, base_color_property_name) == second_material_document_color)
- # 22. Save the second_material_document as a new material document file.
- second_material_document_saved = atom_tools_utils.save_document_as_copy(
- second_material_document_id, second_material_document_copy)
- Report.result(
- Tests.saved_second_material_document,
- second_material_document_saved is True)
- # 23. Close the first_material_document and second_material_document.
- first_material_document_closed = atom_tools_utils.close_document(first_material_document_id)
- Report.result(
- Tests.closed_first_material_document,
- first_material_document_closed is True)
- Report.result(
- Tests.first_material_document_is_not_open,
- atom_tools_utils.is_document_open(first_material_document_id) is False)
- second_material_document_closed = atom_tools_utils.close_document(second_material_document_id)
- Report.result(
- Tests.closed_second_material_document,
- second_material_document_closed is True)
- Report.result(
- Tests.second_material_document_is_not_open,
- atom_tools_utils.is_document_open(second_material_document_id) is False)
- # 24. Open the first_material_document & verify the changes are saved.
- first_material_document_id = atom_tools_utils.open_document(first_material_document_copy)
- Report.result(
- Tests.opened_first_material_document_copy,
- atom_tools_utils.is_document_open(first_material_document_id) is True)
- Report.result(
- Tests.verified_first_material_document_color,
- material_editor_utils.get_property(
- first_material_document_id, base_color_property_name) == first_material_document_color)
- # 25. Open the second_material_document & verify the changes are saved.
- second_material_document_id = atom_tools_utils.open_document(second_material_document_copy)
- Report.result(
- Tests.opened_second_material_document_copy,
- atom_tools_utils.is_document_open(first_material_document_id) is True)
- Report.result(
- Tests.verified_second_material_document_color,
- material_editor_utils.get_property(
- second_material_document_id, base_color_property_name) == second_material_document_color)
- # 26. Revert changes to first_material_document and second_material_document.
- material_editor_utils.set_property(
- first_material_document_id, base_color_property_name, expected_first_material_starting_color)
- Report.result(
- Tests.reverted_first_material_document_color,
- material_editor_utils.get_property(
- first_material_document_id,
- base_color_property_name) == expected_first_material_starting_color)
- material_editor_utils.set_property(
- second_material_document_id, base_color_property_name, expected_second_material_starting_color)
- Report.result(
- Tests.reverted_second_material_document_color,
- material_editor_utils.get_property(
- second_material_document_id,
- base_color_property_name) == expected_second_material_starting_color)
- # 27. Re-save first_material_document and second_material_document to restore their original values.
- first_material_document_resaved = atom_tools_utils.save_document(first_material_document_id)
- Report.result(
- Tests.resaved_first_material_document,
- first_material_document_resaved is True)
- second_material_document_resaved = atom_tools_utils.save_document(second_material_document_id)
- Report.result(
- Tests.resaved_second_material_document,
- second_material_document_resaved is True)
- # 28. Close all currently opened documents.
- closed_all_material_documents = atom_tools_utils.close_all_documents()
- Report.result(
- Tests.closed_first_and_second_material_documents,
- closed_all_material_documents is True)
- Report.result(
- Tests.reclosed_first_material_document,
- atom_tools_utils.is_document_open(first_material_document_id) is False)
- Report.result(
- Tests.reclosed_second_material_document,
- atom_tools_utils.is_document_open(second_material_document_id) is False)
- # 28. Look for errors and asserts.
- TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
- for error_info in error_tracer.errors:
- Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
- for assert_info in error_tracer.asserts:
- Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
- if __name__ == "__main__":
- from editor_python_test_tools.utils import Report
- Report.start_test(MaterialEditor_FileSaveChecks_AllChecksPass)
|