def test_raise_exception_if_wiring_two_outputs(session): canvas = Planner(session) assert len(canvas.plan.wires) == 0 op1 = canvas.create_operation_by_name("Check Plate", category="Cloning") op2 = canvas.create_operation_by_name("Check Plate", category="Cloning") with pytest.raises(PlannerException): canvas.add_wire(op1.outputs[0], op2.outputs[0])
def test_add_wire_sets_sample_from_source(session): session.set_verbose(True) canvas = Planner(session) assert len(canvas.plan.wires) == 0 p = session.Sample.one( query=dict(sample_type_id=session.SampleType.find_by_name("Primer").id) ) destination = canvas.create_operation_by_name( "Make PCR Fragment", category="Cloning" ) source = canvas.create_operation_by_name("Rehydrate Primer", category="Cloning") canvas.set_field_value(source.outputs[0], sample=p) canvas.add_wire(source.outputs[0], destination.input("Forward Primer")) assert destination.input("Forward Primer").sample.id == p.id
def test_add_wire(session): canvas = Planner(session) assert len(canvas.plan.wires) == 0 op1 = canvas.create_operation_by_name("Make PCR Fragment", category="Cloning") op2 = canvas.create_operation_by_name("Rehydrate Primer", category="Cloning") canvas.add_wire(op2.outputs[0], op1.input("Forward Primer")) assert len(canvas.plan.wires) == 1 wire = canvas.plan.wires[0] assert ( wire.source.allowable_field_type.sample_type_id == wire.destination.allowable_field_type.sample_type_id ) assert ( wire.source.allowable_field_type.object_type_id == wire.destination.allowable_field_type.object_type_id )
def test_proper_setting_of_object_types(session): canvas = Planner(session) yeast = session.Sample.where( {"sample_type_id": session.SampleType.find_by_name("Yeast Strain").id}, opts={"limit": 10}, )[-1] streak = canvas.create_operation_by_name("Streak Plate", category="Yeast") glycerol = canvas.create_operation_by_name("Yeast Glycerol Stock", category="Yeast") canvas.set_field_value(glycerol.inputs[0], sample=yeast) canvas.set_field_value(streak.inputs[0], sample=yeast) mating = canvas.create_operation_by_name("Yeast Mating") canvas.add_wire(streak.outputs[0], mating.inputs[0]) canvas.add_wire(glycerol.outputs[0], mating.inputs[1]) assert ( mating.inputs[0].allowable_field_type.object_type.name == "Divided Yeast Plate" ) assert ( mating.inputs[1].allowable_field_type.object_type.name == "Yeast Glycerol Stock" )