diff --git a/strictdoc/backend/sdoc/writer.py b/strictdoc/backend/sdoc/writer.py index 5e60b6951..106cac5ac 100644 --- a/strictdoc/backend/sdoc/writer.py +++ b/strictdoc/backend/sdoc/writer.py @@ -54,7 +54,7 @@ def write(self, document: Document): if document.mid_permanent or document.config.enable_mid: output += "MID: " - output += document.reserved_mid.get_string_value() + output += document.reserved_mid output += "\n" output += "TITLE: " @@ -217,7 +217,7 @@ def _print_section(self, section: Section, document: Document): if section.mid_permanent or document.config.enable_mid: output += "MID: " - output += section.reserved_mid.get_string_value() + output += section.reserved_mid output += "\n" if section.uid: @@ -251,7 +251,7 @@ def _print_requirement_fields( if section_content.mid_permanent or document.config.enable_mid: output += "MID: " - output += section_content.reserved_mid.get_string_value() + output += section_content.reserved_mid output += "\n" element = document.grammar.elements_by_type[ diff --git a/strictdoc/core/graph_database.py b/strictdoc/core/graph_database.py index ee1d71217..f2117ffaa 100644 --- a/strictdoc/core/graph_database.py +++ b/strictdoc/core/graph_database.py @@ -39,16 +39,16 @@ def dump(self) -> str: for link_type, links in self._links.items(): result += f"Link type: {link_type.name}\n" for lhs_mid, rhs_mids in links.items(): - result += f"LHS MID: {lhs_mid.get_string_value()}\n" + result += f"LHS MID: {lhs_mid}\n" for rhs_mid in rhs_mids: - result += f"- RHS MID: {rhs_mid.get_string_value()}\n" + result += f"- RHS MID: {rhs_mid}\n" result += "Reverse links:\n" for link_type, links in self._links_reverse.items(): result += f"Reverse link type: {link_type.name}\n" for lhs_mid, rhs_mids in links.items(): - result += f"LHS MID: {lhs_mid.get_string_value()}\n" + result += f"LHS MID: {lhs_mid}\n" for rhs_mid in rhs_mids: - result += f"- RHS MID: {rhs_mid.get_string_value()}\n" + result += f"- RHS MID: {rhs_mid}\n" return result def add_node_by_mid(self, mid: MID, uid: Optional[str], node: Any): diff --git a/strictdoc/core/traceability_index_builder.py b/strictdoc/core/traceability_index_builder.py index b042c5e95..025651109 100644 --- a/strictdoc/core/traceability_index_builder.py +++ b/strictdoc/core/traceability_index_builder.py @@ -251,7 +251,7 @@ def create_from_document_tree( raise StrictDocException( "TraceabilityIndex: " "the document MID is not unique: " - f"{document.reserved_mid.get_string_value()}. " + f"{document.reserved_mid}. " "All machine identifiers (MID) must be unique values." ) @@ -266,7 +266,7 @@ def create_from_document_tree( raise StrictDocException( "TraceabilityIndex: " "the node MID is not unique: " - f"{node.reserved_mid.get_string_value()}. " + f"{node.reserved_mid}. " f"All machine identifiers (MID) must be unique values." ) d_11_map_id_to_node[node.reserved_mid] = node diff --git a/strictdoc/core/transforms/update_grammar.py b/strictdoc/core/transforms/update_grammar.py index 4b7bc1555..494b12562 100644 --- a/strictdoc/core/transforms/update_grammar.py +++ b/strictdoc/core/transforms/update_grammar.py @@ -1,6 +1,6 @@ from collections import OrderedDict from dataclasses import dataclass -from typing import List, Optional, Set, Tuple +from typing import Dict, List, Optional, Set, Tuple from strictdoc.backend.sdoc.models.document import Document from strictdoc.backend.sdoc.models.document_grammar import DocumentGrammar @@ -8,6 +8,7 @@ Requirement, RequirementField, ) +from strictdoc.backend.sdoc.models.type_system import GrammarElementField from strictdoc.core.traceability_index import ( TraceabilityIndex, ) @@ -38,9 +39,9 @@ def perform(self) -> bool: form_object: DocumentGrammarFormObject = self.form_object document: Document = self.document - grammar_fields = {} + grammar_fields: Dict[str, GrammarElementField] = {} for grammar_field in document.grammar.elements[0].fields: - grammar_fields[grammar_field.mid.value] = grammar_field + grammar_fields[grammar_field.mid] = grammar_field # Prepare fields that could have been renamed by the user has just saved the form. renamed_fields_lookup = {} diff --git a/strictdoc/export/dot/document_dot_generator.py b/strictdoc/export/dot/document_dot_generator.py index f9c0b0936..e0fba5484 100644 --- a/strictdoc/export/dot/document_dot_generator.py +++ b/strictdoc/export/dot/document_dot_generator.py @@ -181,15 +181,11 @@ def get_bottom_most_section(document: Document) -> Optional[Section]: if prev_document_last_section is None: continue - lhs_node_id: str = document.section_contents[ - 0 - ].reserved_mid.get_string_value() + lhs_node_id: str = document.section_contents[0].reserved_mid if not isinstance(document.section_contents[0], Section): - lhs_node_id = document.reserved_mid.get_string_value() + lhs_node_id = document.reserved_mid - rhs_node_id = ( - prev_document_last_section.reserved_mid.get_string_value() - ) + rhs_node_id = prev_document_last_section.reserved_mid accumulated_section_siblings.append((lhs_node_id, rhs_node_id)) @@ -249,7 +245,7 @@ def _print_node( accumulated_section_siblings, ) -> str: def get_uuid(node_) -> str: - return node_.reserved_mid.get_string_value() + return node_.reserved_mid def get_upper_sibling_section(node_: Section): parent: Union[Document, Section] = node_.parent @@ -353,5 +349,5 @@ def get_requirement_uuid(requirement: Requirement) -> str: return ( requirement.reserved_uid if requirement.reserved_uid is not None - else requirement.reserved_mid.get_string_value() + else requirement.reserved_mid ) diff --git a/strictdoc/export/html/form_objects/document_config_form_object.py b/strictdoc/export/html/form_objects/document_config_form_object.py index bb0759e57..52053c96f 100644 --- a/strictdoc/export/html/form_objects/document_config_form_object.py +++ b/strictdoc/export/html/form_objects/document_config_form_object.py @@ -116,7 +116,7 @@ def create_from_document( document_freetext_escaped = html.escape(document_freetext) return DocumentConfigFormObject( - document_mid=document.reserved_mid.get_string_value(), + document_mid=document.reserved_mid, document_title=document.title, document_uid=document.config.uid, document_version=document.config.version, diff --git a/strictdoc/export/html/form_objects/document_grammar_form_object.py b/strictdoc/export/html/form_objects/document_grammar_form_object.py index 4e1cb291c..a00ab59a3 100644 --- a/strictdoc/export/html/form_objects/document_grammar_form_object.py +++ b/strictdoc/export/html/form_objects/document_grammar_form_object.py @@ -50,7 +50,7 @@ def __init__( def create_from_grammar_field(*, grammar_field: GrammarElementField): reserved = is_reserved_field(grammar_field.title) return GrammarFormField( - field_mid=grammar_field.mid.value, + field_mid=grammar_field.mid, field_name=grammar_field.title, field_required=grammar_field.required, reserved=reserved, @@ -169,14 +169,14 @@ def create_from_document( if grammar_relation.relation_type == "File": continue grammar_form_relation = GrammarFormRelation( - relation_mid=grammar_relation.mid.value, + relation_mid=grammar_relation.mid, relation_type=grammar_relation.relation_type, relation_role=grammar_relation.relation_role, ) grammar_form_relations.append(grammar_form_relation) return DocumentGrammarFormObject( - document_mid=document.reserved_mid.get_string_value(), + document_mid=document.reserved_mid, fields=grammar_form_fields, relations=grammar_form_relations, ) diff --git a/strictdoc/export/html/form_objects/requirement_form_object.py b/strictdoc/export/html/form_objects/requirement_form_object.py index b6e908a76..4bf8e0a08 100644 --- a/strictdoc/export/html/form_objects/requirement_form_object.py +++ b/strictdoc/export/html/form_objects/requirement_form_object.py @@ -101,7 +101,7 @@ def create_from_grammar_field( ) if grammar_field.gef_type == RequirementFieldType.STRING: return RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name=grammar_field.title, field_type=RequirementFormFieldType.MULTILINE if multiline @@ -126,7 +126,7 @@ def create_existing_from_grammar_field( assert isinstance(field_value, str) escaped_field_value = html.escape(field_value) return RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name=grammar_field.title, field_type=RequirementFormFieldType.MULTILINE if multiline @@ -139,11 +139,11 @@ def create_existing_from_grammar_field( @staticmethod def create_mid_field(mid: MID) -> "RequirementFormField": return RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="MID", field_type=RequirementFormFieldType.SINGLELINE, - field_unescaped_value=mid.get_string_value(), - field_escaped_value=html.escape(mid.get_string_value()), + field_unescaped_value=mid, + field_escaped_value=html.escape(mid), ) @@ -333,7 +333,7 @@ def create_from_request( form_object = RequirementFormObject( is_new=is_new, requirement_mid=requirement_mid, - document_mid=document.reserved_mid.get_string_value(), + document_mid=document.reserved_mid, mid_field=mid_field, fields=form_fields, reference_fields=form_ref_fields, @@ -384,8 +384,8 @@ def create_new( return RequirementFormObject( is_new=True, - requirement_mid=new_requirement_mid.get_string_value(), - document_mid=document.reserved_mid.get_string_value(), + requirement_mid=new_requirement_mid, + document_mid=document.reserved_mid, mid_field=mid_field, fields=form_fields, reference_fields=[], @@ -455,7 +455,7 @@ def create_from_requirement( if isinstance(reference_value, ParentReqReference): parent_reference: ParentReqReference = reference_value form_ref_field = RequirementReferenceFormField( - field_mid=parent_reference.mid.get_string_value(), + field_mid=parent_reference.mid, field_type=( RequirementReferenceFormField.FieldType.PARENT ), @@ -466,7 +466,7 @@ def create_from_requirement( elif isinstance(reference_value, ChildReqReference): child_reference: ChildReqReference = reference_value form_ref_field = RequirementReferenceFormField( - field_mid=child_reference.mid.get_string_value(), + field_mid=child_reference.mid, field_type=( RequirementReferenceFormField.FieldType.CHILD ), @@ -477,7 +477,7 @@ def create_from_requirement( elif isinstance(reference_value, FileReference): child_reference: FileReference = reference_value form_ref_field = RequirementReferenceFormField( - field_mid=child_reference.mid.get_string_value(), + field_mid=child_reference.mid, field_type=( RequirementReferenceFormField.FieldType.FILE ), @@ -487,8 +487,8 @@ def create_from_requirement( form_refs_fields.append(form_ref_field) return RequirementFormObject( is_new=False, - requirement_mid=requirement.reserved_mid.get_string_value(), - document_mid=document.reserved_mid.get_string_value(), + requirement_mid=requirement.reserved_mid, + document_mid=document.reserved_mid, mid_field=mid_field, fields=form_fields, reference_fields=form_refs_fields, @@ -511,7 +511,7 @@ def clone_from_requirement( field: RequirementFormField = fields_[0] field.field_unescaped_value = clone_uid field.field_escaped_value = clone_uid - form_object.requirement_mid = MID.create().get_string_value() + form_object.requirement_mid = MID.create() return form_object diff --git a/strictdoc/export/html/form_objects/section_form_object.py b/strictdoc/export/html/form_objects/section_form_object.py index 8e3e62152..8351c7e08 100644 --- a/strictdoc/export/html/form_objects/section_form_object.py +++ b/strictdoc/export/html/form_objects/section_form_object.py @@ -55,23 +55,23 @@ def section_statement_unescaped(self): @staticmethod def create_new(): return SectionFormObject( - section_mid=MID.create().get_string_value(), + section_mid=MID.create(), section_uid_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="UID", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value="", field_escaped_value="", ), section_title_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="TITLE", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value="", field_escaped_value="", ), section_statement_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="STATEMENT", field_type=RequirementFormFieldType.MULTILINE, field_unescaped_value="", @@ -96,23 +96,23 @@ def create_from_section(*, section: Section): ) statement_escaped_field_value = html.escape(statement_field_value) return SectionFormObject( - section_mid=section.reserved_mid.get_string_value(), + section_mid=section.reserved_mid, section_uid_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="UID", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value=uid_field_value, field_escaped_value=uid_escaped_field_value, ), section_title_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="TITLE", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value=title_field_value, field_escaped_value=title_escaped_field_value, ), section_statement_field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="STATEMENT", field_type=RequirementFormFieldType.MULTILINE, field_unescaped_value=statement_field_value, @@ -147,7 +147,7 @@ def create_from_request( uid_field_value, multiline=False ) section_uid_field = RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="UID", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value=sanitized_uid_field_value, @@ -159,7 +159,7 @@ def create_from_request( title_field_value, multiline=False ) section_title_field = RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="TITLE", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value=sanitized_title_field_value, @@ -171,7 +171,7 @@ def create_from_request( statement_field_value, multiline=True ) section_statement_field = RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="STATEMENT", field_type=RequirementFormFieldType.MULTILINE, field_unescaped_value=sanitized_statement_field_value, diff --git a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html index 27edf974e..284bde552 100644 --- a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html +++ b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_cancel_edit_document_config.jinja.html @@ -1,4 +1,4 @@ - + diff --git a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html index c4a1dd532..875ea0be1 100644 --- a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html +++ b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_edit_document_config.jinja.html @@ -1,4 +1,4 @@ - + diff --git a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html index a727c6f3e..a1b918622 100644 --- a/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html +++ b/strictdoc/export/html/templates/actions/document/edit_document_config/stream_save_document_config.jinja.html @@ -1,4 +1,4 @@ - + diff --git a/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html b/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html index d963b0076..8c79e7f48 100644 --- a/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html +++ b/strictdoc/export/html/templates/actions/document/edit_requirement/stream_update_requirement.jinja.html @@ -1,4 +1,4 @@ - + diff --git a/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html b/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html index a6bba3314..faccc59ad 100644 --- a/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html +++ b/strictdoc/export/html/templates/actions/document/edit_section/stream_updated_section.jinja.html @@ -1,4 +1,4 @@ - + diff --git a/strictdoc/export/html/templates/components/node/index.jinja b/strictdoc/export/html/templates/components/node/index.jinja index 686ec0890..e6753ae7e 100644 --- a/strictdoc/export/html/templates/components/node/index.jinja +++ b/strictdoc/export/html/templates/components/node/index.jinja @@ -16,7 +16,7 @@ diff --git a/strictdoc/export/html/templates/components/node/node_controls/card.jinja b/strictdoc/export/html/templates/components/node/node_controls/card.jinja index 187322dda..1479736ac 100644 --- a/strictdoc/export/html/templates/components/node/node_controls/card.jinja +++ b/strictdoc/export/html/templates/components/node/node_controls/card.jinja @@ -21,7 +21,7 @@ >{% include "_res/svg_ico16_go_to_doc.jinja" %} {% include "_res/svg_ico16_edit.jinja.html" %} diff --git a/strictdoc/export/html/templates/components/requirement/meta/index.jinja b/strictdoc/export/html/templates/components/requirement/meta/index.jinja index a3f52c2d3..7df5017c0 100644 --- a/strictdoc/export/html/templates/components/requirement/meta/index.jinja +++ b/strictdoc/export/html/templates/components/requirement/meta/index.jinja @@ -4,7 +4,7 @@ data-field-type="singleline" data-field-label="MID" > - {%- with field_content = requirement.reserved_mid.get_string_value() %} + {%- with field_content = requirement.reserved_mid %} {%- include "components/field/index.jinja" -%} {%- endwith -%} diff --git a/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja b/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja index 266134841..5aaedf595 100644 --- a/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja +++ b/strictdoc/export/html/templates/screens/document/_shared/frame_toc.jinja @@ -8,11 +8,11 @@ class="toc" data-controller="draggable_list collapsible_list" {%- if last_moved_node_id is defined %} - data-last_moved_node_id="{{ last_moved_node_id.get_string_value() }}" + data-last_moved_node_id="{{ last_moved_node_id }}" {% endif -%} > {%- for section in document_iterator.table_of_contents() -%} -
  • +
  • {%- if section.is_section -%} {# if section not requirement #} {%- if not section.ng_has_requirements and document_type.is_deeptrace -%} diff --git a/strictdoc/export/html/templates/screens/document/document/actions.jinja b/strictdoc/export/html/templates/screens/document/document/actions.jinja index 50e75cf87..cf5cb21ef 100644 --- a/strictdoc/export/html/templates/screens/document/document/actions.jinja +++ b/strictdoc/export/html/templates/screens/document/document/actions.jinja @@ -7,7 +7,7 @@
    {%- if not standalone -%} Export to ReqIF {%- endif -%} diff --git a/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html b/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html index b842fbd86..ac2512d7f 100644 --- a/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html +++ b/strictdoc/export/html/templates/screens/document/document/frame_document_config_edit.jinja.html @@ -1,4 +1,4 @@ - +
    {%- for item in document_iterator.table_of_contents() -%} -
    +
    {{ item.context.title_number_string if item.context.title_number_string else " " * (item.ng_level * 2 - 1) }} diff --git a/strictdoc/git/project_diff_analyzer.py b/strictdoc/git/project_diff_analyzer.py index 3981c0917..0f8b3bb7d 100644 --- a/strictdoc/git/project_diff_analyzer.py +++ b/strictdoc/git/project_diff_analyzer.py @@ -653,7 +653,7 @@ def _iterate_one_index( """ section_token: Optional[str] = None if other_section_or_none is not None: - section_token = MID.create().get_string_value() + section_token = MID.create() lhs_section: Optional[Section] = None rhs_section: Optional[Section] = None @@ -747,7 +747,7 @@ def _iterate_one_index( Step: Create a requirement token that is used by JS to match the LHS nodes with RHS nodes. """ - requirement_token: str = MID.create().get_string_value() + requirement_token: str = MID.create() """ Iterate over requirement fields. diff --git a/strictdoc/helpers/mid.py b/strictdoc/helpers/mid.py index 45702b033..90f93a528 100644 --- a/strictdoc/helpers/mid.py +++ b/strictdoc/helpers/mid.py @@ -1,27 +1,14 @@ import uuid -class MID: - def __init__(self, mid: str): - assert isinstance(mid, str), mid - self.value: str = mid +class MID(str): + def __new__(cls, mid_value: str): + assert isinstance(mid_value, str) and len(mid_value) > 0, mid_value + return super().__new__(cls, mid_value) @staticmethod def create() -> "MID": return MID(uuid.uuid4().hex) - def __str__(self): # pylint: disable=invalid-str-returned - assert 0, "Must not be used" - - def __repr__(self): # pylint: disable=invalid-repr-returned - assert 0, "Must not be used" - - def __hash__(self): - return self.value.__hash__() - - def __eq__(self, other): - assert isinstance(other, MID), f"{other} ({type(other)})" - return self.value == other.value - def get_string_value(self): - return self.value + return str(self) diff --git a/strictdoc/server/routers/main_router.py b/strictdoc/server/routers/main_router.py index 0a9ac3324..bb07b7e9a 100644 --- a/strictdoc/server/routers/main_router.py +++ b/strictdoc/server/routers/main_router.py @@ -1023,7 +1023,7 @@ def reset_uid(reference_mid: str): raise NotImplementedError uid_form_field: RequirementFormField = RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="UID", field_type=RequirementFormFieldType.SINGLELINE, field_unescaped_value=next_uid, @@ -1750,7 +1750,7 @@ def document__add_comment(requirement_mid: str, document_mid: str): form_object=RequirementFormObject( is_new=False, requirement_mid=requirement_mid, - document_mid=document.reserved_mid.get_string_value(), + document_mid=document.reserved_mid, mid_field=None, fields=[], reference_fields=[], @@ -1759,7 +1759,7 @@ def document__add_comment(requirement_mid: str, document_mid: str): relation_types=[], ), field=RequirementFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_name="COMMENT", field_type=RequirementFormFieldType.MULTILINE, field_unescaped_value="", diff --git a/tests/end2end/helpers/form/form.py b/tests/end2end/helpers/form/form.py index 620370484..8429a1b7f 100644 --- a/tests/end2end/helpers/form/form.py +++ b/tests/end2end/helpers/form/form.py @@ -86,9 +86,7 @@ def do_delete_field(self, field_name: str, field_order: int = 1) -> None: def do_move_field_up(self, mid: MID, test_id: str) -> None: assert isinstance(mid, MID) self.test_case.click_xpath( - f"(//*[@mid='{mid.get_string_value()}' " - "and " - f"@data-testid='{test_id}'])" + f"(//*[@mid='{mid}' and @data-testid='{test_id}'])" ) def do_move_field_down(self, field_name: str = "") -> None: @@ -121,7 +119,7 @@ def do_fill_in_mid(self, mid: MID, test_id: str, field_value: str) -> None: assert isinstance(test_id, str) assert isinstance(field_value, str) - field_xpath = f"(//*[@mid='{mid.get_string_value()}' and @data-testid='{test_id}'])" + field_xpath = f"(//*[@mid='{mid}' and @data-testid='{test_id}'])" for _ in range(3): self.test_case.type(field_xpath, f"{field_value}", by=By.XPATH) element = self.test_case.find_element(field_xpath) diff --git a/tests/end2end/helpers/screens/document/form_edit_grammar.py b/tests/end2end/helpers/screens/document/form_edit_grammar.py index f39ae86a6..2b94382cb 100644 --- a/tests/end2end/helpers/screens/document/form_edit_grammar.py +++ b/tests/end2end/helpers/screens/document/form_edit_grammar.py @@ -77,11 +77,7 @@ def do_select_grammar_relation_type(self, mid, relation_type): assert isinstance(mid, MID) assert isinstance(relation_type, str) - xpath = ( - f"(//*[@mid='{mid.get_string_value()}' " - "and " - "@data-testid='select-relation-type'])" - ) + xpath = f"(//*[@mid='{mid}' and @data-testid='select-relation-type'])" self.test_case.select_option_by_value(xpath, relation_type) @@ -93,7 +89,7 @@ def do_fill_in_grammar_relation_role(self, mid, field_value): def do_move_grammar_field_up(self, mid: MID) -> None: assert isinstance(mid, MID) self.test_case.click_xpath( - f"(//*[@mid='{mid.get_string_value()}' " + f"(//*[@mid='{mid}' " "and " "@data-testid='form-move-up-field-action-custom-field'])" ) @@ -101,7 +97,7 @@ def do_move_grammar_field_up(self, mid: MID) -> None: def do_move_grammar_field_down(self, mid: MID) -> None: assert isinstance(mid, MID) self.test_case.click_xpath( - f"(//*[@mid='{mid.get_string_value()}' " + f"(//*[@mid='{mid}' " "and " "@data-testid='form-move-down-field-action-custom-field'])" ) @@ -109,7 +105,7 @@ def do_move_grammar_field_down(self, mid: MID) -> None: def do_delete_grammar_field(self, mid: MID) -> None: assert isinstance(mid, MID) self.test_case.click_xpath( - f"(//*[@mid='{mid.get_string_value()}' " + f"(//*[@mid='{mid}' " "and " "@data-testid='form-delete-field-action-custom-field'])" ) @@ -117,7 +113,7 @@ def do_delete_grammar_field(self, mid: MID) -> None: def do_delete_grammar_relation(self, mid: MID): assert isinstance(mid, MID) self.test_case.click_xpath( - f"(//*[@mid='{mid.get_string_value()}' " + f"(//*[@mid='{mid}' " "and " "@data-testid='form-delete-field-action-relation'])" ) diff --git a/tests/end2end/helpers/screens/document/form_edit_requirement.py b/tests/end2end/helpers/screens/document/form_edit_requirement.py index 5b0cd1d6d..6d542aba9 100644 --- a/tests/end2end/helpers/screens/document/form_edit_requirement.py +++ b/tests/end2end/helpers/screens/document/form_edit_requirement.py @@ -88,7 +88,7 @@ def do_select_relation_role(self, mid: MID, field_value: str) -> None: assert isinstance(field_value, str) xpath = ( - f"(//*[@mid='{mid.get_string_value()}' " + f"(//*[@mid='{mid}' " "and " "@data-testid='select-relation-typerole'])" ) diff --git a/tests/unit/strictdoc/core/test_traceability_index.py b/tests/unit/strictdoc/core/test_traceability_index.py index 8e3ac9b7f..6201caf0d 100644 --- a/tests/unit/strictdoc/core/test_traceability_index.py +++ b/tests/unit/strictdoc/core/test_traceability_index.py @@ -235,6 +235,6 @@ def test_get_node_by_mid(): TraceabilityIndexBuilder.create_from_document_tree(document_tree) ) assert ( - traceability_index.get_node_by_mid(MID(document_1.reserved_mid.value)) + traceability_index.get_node_by_mid(MID(document_1.reserved_mid)) == document_1 ) diff --git a/tests/unit/strictdoc/core/transforms/test_update_requirement.py b/tests/unit/strictdoc/core/transforms/test_update_requirement.py index a0c4ce942..0262c2e16 100644 --- a/tests/unit/strictdoc/core/transforms/test_update_requirement.py +++ b/tests/unit/strictdoc/core/transforms/test_update_requirement.py @@ -45,7 +45,7 @@ def test_01_single_document_add_first_parent_relation_with_no_role(): ) form_object.reference_fields.append( RequirementReferenceFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_type=RequirementReferenceFormField.FieldType.PARENT, field_value="REQ-001", field_role=None, @@ -114,7 +114,7 @@ def test_02_single_document_add_second_parent_relation_with_role(): form_object.reference_fields.append( RequirementReferenceFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_type=RequirementReferenceFormField.FieldType.PARENT, field_value="REQ-001", field_role="Implements", @@ -175,7 +175,7 @@ def test_20_single_document_add_second_child_relation_with_role(): ) form_object.reference_fields.append( RequirementReferenceFormField( - field_mid=MID.create().get_string_value(), + field_mid=MID.create(), field_type=RequirementReferenceFormField.FieldType.CHILD, field_value="REQ-001", field_role="IsImplementedBy", diff --git a/tests/unit/strictdoc/helpers/test_mid.py b/tests/unit/strictdoc/helpers/test_mid.py index c3ca1c92b..90efa2e68 100644 --- a/tests/unit/strictdoc/helpers/test_mid.py +++ b/tests/unit/strictdoc/helpers/test_mid.py @@ -1,9 +1,16 @@ from strictdoc.helpers.mid import MID +def test_mid_instance(): + mid1 = MID.create() + + assert isinstance(mid1, MID) + assert isinstance(mid1, str) + + def test_unique_mid(): mid1 = MID.create() - mid2 = MID(mid1.value) + mid2 = MID(mid1) assert hash(mid1) == hash(mid2) @@ -12,5 +19,5 @@ def test_dict(): mid1 = MID.create() store = {mid1: True} - mid2 = MID(mid1.value) + mid2 = MID(mid1) assert store[mid2] is True