def check_gaphas_state_meta_data_consistency(state_m, canvas, recursive=True, with_logger_messages=False): from rafcon.core.states.container_state import ContainerState from rafcon.utils.geometry import equal state_v = canvas.get_view_for_model(state_m) if not state_v: logger.verbose("There is no corresponding gaphas view for the state model {}".format(state_m)) return if with_logger_messages: logger.verbose("Check state model {0} and Canvas view {1}".format(state_m, state_v)) meta_rel_pos = state_m.get_meta_data_editor()["rel_pos"] meta_size = state_m.get_meta_data_editor()["size"] view_rel_pos = state_v.position view_size = (state_v.width, state_v.height) if not equal(meta_rel_pos, view_rel_pos, digit=5): error_msg = "{}: meta rel pos == {} != {} == view rel pos".format(state_m.state.name, meta_rel_pos, view_rel_pos) if not with_logger_messages: assert False, error_msg logger.error(error_msg) if not equal(meta_size, view_size, digit=5): error_msg = "{}: meta size == {} != {} == view size".format(state_m.state.name, meta_size, view_size) if not with_logger_messages: assert False, error_msg logger.error(error_msg) if recursive and isinstance(state_m.state, ContainerState): for child_state_m in state_m.states.itervalues(): check_gaphas_state_meta_data_consistency(child_state_m, canvas, True, with_logger_messages)
def assert_state_size_and_meta_data_consistency(state_m, state_v, size, canvas): from rafcon.utils.geometry import equal from rafcon.gui.helpers.meta_data import check_gaphas_state_meta_data_consistency assert equal(size, (state_v.width, state_v.height), 5), "State {}: view size wrong".format(state_m.state.name) assert equal(size, state_m.get_meta_data_editor()["size"], 5), "State {}: meta size wrong".format(state_m.state.name) check_gaphas_state_meta_data_consistency(state_m, canvas, recursive=True)