def test_size_of_load_experimental_request(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     experimental_request.load_experimental_request()
     self.assertEqual(1,
                      len(experimental_request.opil_experimental_requests))
 def test_experimental_reference_url_annotation(self):
     experimental_request = ExperimentalRequest(
         ip_constants.AQUARIUM_NAMESPACE, self.opil_lab_template, 'foo_id',
         'IntentParserCopy_foo', 'https://docs.google.com/document/d/foo')
     experimental_request.load_experimental_request()
     self.assertEqual(
         'https://docs.google.com/document/d/foo', experimental_request.
         opil_experimental_requests[0].experiment_reference_url)
Esempio n. 3
0
    def _process_opil(self):
        if not self.processed_protocol_name:
            raise IntentParserException(
                'Name of lab must be provided for describing an experimental request but'
                'none was given.')

        opil_lab_template = self._lab_protocol_accessor.load_protocol_interface_from_lab(
            self.processed_protocol_name, self.processed_lab_name)
        experiment_id = self.processed_lab.to_structured_request()[
            dc_constants.EXPERIMENT_ID]
        experimental_request = ExperimentalRequest(
            self._get_namespace_from_lab(), opil_lab_template, experiment_id,
            self._experiment_ref, self._experiment_ref_url)
        experimental_request.load_experimental_request()

        # add control table info
        if self.processed_controls:
            for control_table in self.processed_controls.values():
                experimental_request.load_from_control_table(control_table)

        # add measurement table info
        if self.measurement_table:
            experimental_request.load_from_measurement_table(
                self.measurement_table)
            experimental_request.load_sample_template_from_protocol_interface()
            experimental_request.create_subcomponents_from_template()
            experimental_request.load_sample_set(
                len(self.measurement_table.get_intents()))
            experimental_request.add_variable_features_from_measurement_intents(
                self.measurement_table.get_intents())
            experimental_request.load_and_update_measurement(
                self.measurement_table.get_intents())

        # add parameter table info
        if self.processed_parameter:
            experimental_request.load_lab_parameters()
            experimental_request.update_parameter_values(
                self.processed_parameter.get_default_parameters())
            experimental_request.add_run_parameters(self.processed_parameter)

        experimental_request.connect_properties()
        self.opil_document = experimental_request.to_opil()