コード例 #1
0
ファイル: test_resolver.py プロジェクト: JBEI/edd
 def test_resolve_broad_type_multiple(self):
     broad = factory.CategoryFactory()
     tr = TypeResolver(self.user, broad)
     main_factory.MeasurementTypeFactory(type_name="foobar")
     main_factory.MeasurementTypeFactory(type_name="foobar")
     with pytest.raises(ValidationError):
         tr.lookup_type("foobar")
コード例 #2
0
ファイル: test_resolver.py プロジェクト: JBEI/edd
 def test_resolve_generic_type_multiple(self):
     generic = factory.CategoryFactory(
         type_group=models.MeasurementType.Group.GENERIC)
     tr = TypeResolver(self.user, generic)
     main_factory.MeasurementTypeFactory(type_name="foobar")
     main_factory.MeasurementTypeFactory(type_name="foobar")
     with pytest.raises(ValidationError):
         tr.lookup_type("foobar")
コード例 #3
0
ファイル: tests.py プロジェクト: JBEI/edd
    def test_legacy_import_adds_entry(self):
        study = self._writable_study()
        protocol = factory.ProtocolFactory()
        measurement_type = factory.MeasurementTypeFactory()
        import_id = factory.fake.uuid4()
        storage = ImportBroker()
        storage.set_context(import_id, {})
        storage.add_page(
            import_id,
            [
                {
                    "assay_id": "named_or_new",
                    "assay_name": "bar",
                    "compartment": "0",
                    "data": [[12, 34]],
                    "kind": "std",
                    "line_id": "new",
                    "line_name": "foo",
                    "measurement_id": measurement_type.pk,
                    "measurement_name": measurement_type.type_name,
                    "protocol_id": protocol.pk,
                    "units_id": "1",
                },
            ],
        )

        import_table_task.s(study.id, self.user.id, import_id).apply()

        qs = self._find_log(event=StudyLog.Event.IMPORTED, study=study)
        assert qs.count() == 1
        sl = qs.get()
        assert sl.detail == {"count": 1, "protocol": str(protocol.uuid)}
コード例 #4
0
ファイル: test_tasks.py プロジェクト: JBEI/edd
 def setUpTestData(cls):
     super().setUpTestData()
     cls.user = UserFactory()
     cls.study = factory.StudyFactory()
     cls.study.userpermission_set.create(
         user=cls.user, permission_type=models.StudyPermission.WRITE)
     cls.protocol = factory.ProtocolFactory()
     cls.measurement_type = factory.MeasurementTypeFactory()
コード例 #5
0
ファイル: test_tutorials.py プロジェクト: somtirtharoy/edd
    def _create_gcms_replace_function(cls, protocol):
        # *.series.json files need some hard-coded IDs
        # this makes a function to insert them
        measurement_type = factory.MeasurementTypeFactory(type_name="Limonene")

        def replace(item):
            item.update(protocol_id=protocol.id, measurement_id=measurement_type.id)
            return item

        return replace
コード例 #6
0
ファイル: test_tasks.py プロジェクト: JBEI/edd
 def setUpTestData(cls):
     super().setUpTestData()
     cls.user = UserFactory()
     cls.protocol = factory.ProtocolFactory()
     cls.study = factory.StudyFactory()
     cls.study.userpermission_set.create(
         user=cls.user, permission_type=models.StudyPermission.WRITE)
     cls.arcA = factory.LineFactory(study=cls.study, name="arcA")
     cls.mtype = factory.MeasurementTypeFactory()
     cls.x_unit = factory.UnitFactory()
     cls.y_unit = factory.UnitFactory()
コード例 #7
0
ファイル: test_resolver.py プロジェクト: JBEI/edd
 def test_resolve_with_multiple_existing_values(self):
     # setup
     assay_A = main_factory.AssayFactory(line=self.BW1,
                                         protocol=self.protocol)
     assay_B = main_factory.AssayFactory(line=self.BW1,
                                         protocol=self.protocol)
     hours = models.MeasurementUnit.objects.get(unit_name="hours")
     na = models.MeasurementUnit.objects.get(unit_name="n/a")
     mtype = main_factory.MeasurementTypeFactory()
     measurement_A = main_factory.MeasurementFactory(assay=assay_A,
                                                     measurement_type=mtype,
                                                     x_units=hours,
                                                     y_units=na)
     measurement_B = main_factory.MeasurementFactory(assay=assay_B,
                                                     measurement_type=mtype,
                                                     x_units=hours,
                                                     y_units=na)
     # making multiple existing points for same type at same time
     main_factory.ValueFactory(measurement=measurement_A, x=[24])
     main_factory.ValueFactory(measurement=measurement_A, x=[24])
     main_factory.ValueFactory(measurement=measurement_A, x=[24])
     main_factory.ValueFactory(measurement=measurement_B, x=[24])
     main_factory.ValueFactory(measurement=measurement_B, x=[24])
     main_factory.ValueFactory(measurement=measurement_B, x=[24])
     mpr = list(
         self._generate_measurement_product(
             names=[assay_A.name, assay_B.name],
             types=[mtype.type_name],
             points=[[[24], [1]]],
         ))
     parsed = ParseResult(
         series_data=mpr,
         record_src="row",
         any_time=True,
         has_all_times=True,
     )
     resolver, type_resolver = self._make_resolvers(parsed)
     # exec
     context = resolver.resolve(type_resolver)
     # asserts
     assert context == {
         "conflicted_from_import": 2,
         "conflicted_from_study": 6,
         "file_has_times": True,
         "file_has_units": True,
         "importId": self.load.request,
         "loa_pks": {assay_A.pk, assay_B.pk},
         "matched_assays": True,
         "totalPages": 1,
         "total_vals": 2,
         "use_assay_times": False,
     }
コード例 #8
0
ファイル: tests.py プロジェクト: JBEI/edd
    def test_wizard_import_adds_entry(self):
        study = self._writable_study()
        line = factory.LineFactory(study=study)
        protocol = factory.ProtocolFactory()
        measurement_type = factory.MeasurementTypeFactory()
        x_unit = factory.UnitFactory()
        y_unit = factory.UnitFactory()
        broker = ImportBroker()
        load = LoadRequest(
            protocol_uuid=protocol.uuid,
            status=LoadRequest.Status.READY,
            study_uuid=study.uuid,
            x_units_name=x_unit.unit_name,
            y_units_name=y_unit.unit_name,
        )
        # storing the LoadRequest in backend will allow transitions
        load.store()
        # minimal data to load into study
        broker.set_context(
            load.request,
            {
                "loa_pks": {line.pk},
                "matched_assays": False,
                "use_assay_times": False
            },
        )
        broker.add_page(
            load.request,
            [{
                "compartment": edd_models.Measurement.Compartment.UNKNOWN,
                "data": [[[12], [42]]],
                "format": edd_models.Measurement.Format.SCALAR,
                "line_id": line.pk,
                "measurement_id": measurement_type.pk,
                "x_unit_id": x_unit.pk,
                "y_unit_id": y_unit.pk,
            }],
        )

        wizard_execute_loading.s(load.request, self.user.id).apply()

        qs = self._find_log(event=StudyLog.Event.IMPORTED, study=study)
        assert qs.count() == 1
        sl = qs.get()
        assert sl.detail == {"count": 1, "protocol": str(protocol.uuid)}