def test_rename_stereotype_attrs_field(loader): parsed_item = canvasitem(id="2", type="ClassItem") parsed_item.values["show_stereotypes_attrs"] = "1" item = loader(parsed_item) assert not hasattr(item, "show_stereotypes_attrs") assert item.show_stereotypes
def clone_canvasitem(item, subject_id): assert not item.canvasitems, "Can not clone a canvas item with children" assert isinstance(item.references["subject"], str) new_item = parser.canvasitem(str(uuid.uuid1()), item.type) new_item.values = dict(item.values) new_item.references = dict(item.references) new_item.references["subject"] = subject_id return new_item
def test_rename_show_attributes_and_operations_field(loader): parsed_item = canvasitem(id="2", type="ClassItem") parsed_item.values["show-attributes"] = "0" parsed_item.values["show-operations"] = "0" item = loader(parsed_item) assert not item.show_attributes assert not item.show_operations
def test_upgrade_subsystem_item_to_class_item(element_factory): elements = { "1": element( id="1", type="Diagram", canvas=canvas(canvasitems=[canvasitem(id="2", type="SubsystemItem")]), ) } load_elements(elements, element_factory) item = element_factory.lselect()[0].canvas.get_root_items()[0] assert type(item) == diagramitems.ComponentItem
def convert_tagged_value(element, elements, factory): """ Convert ``element.taggedValue`` to something supported by the UML 2.2 model (since Gaphor version 0.15). For each item having a Tagged value a Stereotype is linked. This is done like this: item -> InstanceSpecification -> Stereotype Each tagged value will be replaced by a Slot: item -> InstanceSpecification -> Slot -> Attribute -> Stereotype """ import uuid diagrams = [e for e in list(elements.values()) if e.type == 'Diagram'] presentation = element.get('presentation') or [] tv = [elements[i] for i in element.references['taggedValue']] for et in presentation: et = elements[et] m = eval(et.values['matrix']) w = eval(et.values['width']) tagged = 'upgrade to stereotype attributes' \ ' following tagged values:\n%s' % '\n'.join(t.values['value'] for t in tv) item = parser.canvasitem(str(uuid.uuid1()), 'CommentItem') comment = parser.element(str(uuid.uuid1()), 'Comment') item.references['subject'] = comment.id item.values['matrix'] = str( (1.0, 0.0, 0.0, 1.0, m[4] + w + 10.0, m[5])) comment.references['presentation'] = [item.id] comment.values['body'] = tagged elements[item.id] = item elements[comment.id] = comment # Where to place the comment? How to find the Diagram? for d in diagrams: for ci in d.canvas.canvasitems: if ci.id == et.id: d.canvas.canvasitems.append(item) break
def convert_tagged_value(element, elements, factory): """ Convert ``element.taggedValue`` to something supported by the UML 2.2 model (since Gaphor version 0.15). For each item having a Tagged value a Stereotype is linked. This is done like this: item -> InstanceSpecification -> Stereotype Each tagged value will be replaced by a Slot: item -> InstanceSpecification -> Slot -> Attribute -> Stereotype """ import uuid diagrams = [e for e in elements.values() if e.type == 'Diagram'] presentation = element.get('presentation') or [] tv = [elements[i] for i in element.references['taggedValue']] for et in presentation: et = elements[et] m = eval(et.values['matrix']) w = eval(et.values['width']) tagged = 'upgrade to stereotype attributes' \ ' following tagged values:\n%s' % '\n'.join(t.values['value'] for t in tv) item = parser.canvasitem(str(uuid.uuid1()), 'CommentItem') comment = parser.element(str(uuid.uuid1()), 'Comment') item.references['subject'] = comment.id item.values['matrix'] = str((1.0, 0.0, 0.0, 1.0, m[4] + w + 10.0, m[5])) comment.references['presentation'] = [item.id] comment.values['body'] = tagged elements[item.id] = item elements[comment.id] = comment # Where to place the comment? How to find the Diagram? for d in diagrams: for ci in d.canvas.canvasitems: if ci.id == et.id: d.canvas.canvasitems.append(item) break
def test_interface_drawing_style_folded(loader): parsed_item = canvasitem(id="2", type="InterfaceItem") parsed_item.values["drawing-style"] = "3" # DRAW_ICON item = loader(parsed_item) assert item.folded.name == "PROVIDED"
def test_interface_drawing_style_normal(loader): parsed_item = canvasitem(id="2", type="InterfaceItem") parsed_item.values["drawing-style"] = "0" # DRAW_NONE item = loader(parsed_item) assert item.folded.name == "NONE"
def test_upgrade_subsystem_item_to_class_item(loader): item = loader(canvasitem(id="2", type="SubsystemItem")) assert type(item) == diagramitems.ComponentItem
def test_upgrade_metaclass_item_to_class_item(loader): item = loader(canvasitem(id="2", type="MetaclassItem")) assert type(item) == diagramitems.ClassItem