예제 #1
0
def test_quick_wire_to_input_array_with_set_sample(session):
    canvas = Planner(session)

    frags = session.Sample.where(
        {"sample_type_id": session.SampleType.find_by_name("Fragment").id},
        opts={"limit": 10},
    )

    purify1 = canvas.create_operation_by_name("Purify Gel Slice", category="Cloning")
    purify2 = canvas.create_operation_by_name("Purify Gel Slice", category="Cloning")

    canvas.set_field_value(purify1.inputs[0], sample=frags[0])
    canvas.set_field_value(purify2.inputs[0], sample=frags[1])

    assemble = canvas.create_operation_by_name("Assemble Plasmid", category="Cloning")

    canvas.quick_wire(purify1, assemble)
    canvas.quick_wire(purify2, assemble)

    canvas.chain("Purify Gel Slice", assemble, category="Cloning")

    input_array = assemble.input_array("Fragment")

    assert len(input_array) == 3, "There should be 3 field values"
    assert input_array[0].sample == frags[0]
    assert input_array[1].sample == frags[1]
    assert input_array[2].sample is None
예제 #2
0
def test_quick_wire_to_input_array_and_then_set_sample(session):
    canvas = Planner(session)

    frags = session.Sample.where(
        {"sample_type_id": session.SampleType.find_by_name("Fragment").id},
        opts={"limit": 10},
    )

    purify1 = canvas.create_operation_by_name("Purify Gel Slice", category="Cloning")
    purify2 = canvas.create_operation_by_name("Purify Gel Slice", category="Cloning")

    assemble = canvas.create_operation_by_name("Assemble Plasmid", category="Cloning")

    canvas.quick_wire(purify1, assemble)
    canvas.quick_wire(purify2, assemble)

    canvas.set_field_value_and_propogate(purify1.inputs[0], sample=frags[0])

    input_array = assemble.input_array("Fragment")

    print("purify1: " + str(purify1.rid))
    print("purify2: " + str(purify2.rid))

    for i in input_array:
        print(
            i.operation.operation_type.name
            + " "
            + i.name
            + " "
            + str(i.sample)
            + " "
            + str(canvas.get_incoming_wires(i)[0].source.operation.rid)
        )

    print("ljljklj")
    print(purify2.outputs[0].sample)

    assert (
        assemble.input_array("Fragment")[0].sample == frags[0]
    ), "Setting a wire should propogate to a field value"
    assert assemble.input_array("Fragment")[1].sample is None, (
        "Setting a wire should not propogate sample to other field"
        "values in the input array."
    )