def test_shape_add_remove(stage_factory: StageFactoryBase): assert not stage_factory.stages assert not stage_factory.stage_names stage = SerialAllStage(stage_factory=stage_factory, show_in_gui=False) stage.create_stage() stage = stage.stage # add stage stage_factory.test_changes_count = 0 stage_factory.add_stage(stage) assert stage in stage_factory.stages assert stage.name in stage_factory.stage_names assert stage is stage_factory.stage_names[stage.name] assert stage_factory.test_changes_count # remove shape stage_factory.test_changes_count = 0 assert stage_factory.remove_stage(stage) assert stage not in stage_factory.stages assert stage.name not in stage_factory.stage_names assert stage_factory.test_changes_count # remove same shape again with pytest.raises(ValueError): stage_factory.remove_stage(stage)
def test_clear_stages(stage_factory: StageFactoryBase): assert not stage_factory.stages assert not stage_factory.stage_names stage = SerialAllStage(stage_factory=stage_factory, show_in_gui=False) stage.create_stage() stage = stage.stage stage2 = SerialAllStage(stage_factory=stage_factory, show_in_gui=False) stage2.create_stage() stage2 = stage2.stage stage_factory.add_stage(stage) stage_factory.add_stage(stage2) assert stage_factory.stages == [stage, stage2] stage_factory.test_changes_count = 0 stage_factory.clear_stages() assert not stage_factory.stages assert not stage_factory.stage_names
def test_factory_stage_unique_names(stage_factory: StageFactoryBase): assert not stage_factory.stages assert not stage_factory.stage_names stage = SerialAllStage(stage_factory=stage_factory, show_in_gui=False) stage.create_stage() stage = stage.stage # add first stage stage_factory.test_changes_count = 0 stage_factory.add_stage(stage) assert len(stage_factory.stages) == 1 assert len(stage_factory.stage_names) == 1 assert stage in stage_factory.stages assert stage.name in stage_factory.stage_names assert stage is stage_factory.stage_names[stage.name] assert stage_factory.test_changes_count stage2 = SerialAllStage(stage_factory=stage_factory, show_in_gui=False) stage2.create_stage() stage2 = stage2.stage stage2.name = stage.name assert stage2.name == stage.name # add second stage stage_factory.test_changes_count = 0 stage_factory.add_stage(stage2) assert stage2.name != stage.name assert len(stage_factory.stages) == 2 assert len(stage_factory.stage_names) == 2 assert stage2 in stage_factory.stages assert stage2.name in stage_factory.stage_names assert stage2 is stage_factory.stage_names[stage2.name] assert stage_factory.test_changes_count # try making stage2 the same name as stage 1 stage_factory.test_changes_count = 0 stage2.name = stage.name assert stage2.name != stage.name assert len(stage_factory.stages) == 2 assert len(stage_factory.stage_names) == 2 assert stage2 in stage_factory.stages assert stage2.name in stage_factory.stage_names assert stage2 is stage_factory.stage_names[stage2.name] assert stage_factory.test_changes_count # give stage2an explicit name stage_factory.test_changes_count = 0 stage.name = 'stagnation' assert stage2.name != stage.name assert stage.name == 'stagnation' assert len(stage_factory.stages) == 2 assert len(stage_factory.stage_names) == 2 assert stage in stage_factory.stages assert stage is stage_factory.stage_names['stagnation'] assert stage_factory.test_changes_count # try setting stage2 to the empty name stage_factory.test_changes_count = 0 stage2.name = '' assert stage2.name != stage.name assert stage2.name assert len(stage_factory.stages) == 2 assert len(stage_factory.stage_names) == 2 assert stage2 in stage_factory.stages assert stage2.name in stage_factory.stage_names assert stage2 is stage_factory.stage_names[stage2.name] assert stage_factory.test_changes_count