Beispiel #1
0
def new_sample(request, experiment_id):  
    try:
        experiment = Experiment.safe.get(request, experiment_id)
    except PermissionDenied:
        return return_response_error(request)
    except Experiment.DoesNotExist:
        return return_response_not_found(request)
    
    c = Context()
    c['experiment'] = experiment
    samples = Sample.objects.filter(experiment=experiment_id)
    c['sample_count'] = samples.count() + 1
    
    if request.method == 'POST':
        form = SampleForm(request.POST)
        if form.is_valid():
            sample = form.save(experiment_id, commit=False)
            sample.save_m2m()
            request.POST = {'status': "Sample Created."}
            return _redirect(experiment_id)
        c['status'] = "Errors exist in form."
        c["error"] = 'true'
    else:
        form = SampleForm(extra=1)
        
    c['form'] = form    
    c['status'] = form.errors
    return HttpResponse(render_response_index(request,
                        'tardis_portal/experiment_sample.html', c))
Beispiel #2
0
def edit_sample(request, experiment_id, sample_id):
    try:
        experiment = Experiment.safe.get(request, experiment_id)
    except PermissionDenied:
        return return_response_error(request)
    except Experiment.DoesNotExist:
        return return_response_not_found(request)
    c = Context()
    c['experiment'] = experiment
    sample = Sample.objects.get(id=sample_id)
    c['sample_count'] = sample.name
    
    if request.POST:
        form = SampleForm(request.POST, instance=sample, extra=0)
        if form.is_valid():
            full_sample = form.save(experiment_id, commit=False)
            
            full_sample.save_m2m()
            request.POST = {'status': "Sample Created."}
            return _redirect(experiment_id)
        c['status'] = "Errors exist in form."
        c["error"] = 'true'
    else:
        form = SampleForm(instance=sample, extra=0)
    
    c['form'] = form    
    c['status'] = form.errors
    return HttpResponse(render_response_index(request,
                        'tardis_portal/experiment_sample.html', c))
Beispiel #3
0
    def test_validation_blank_data(self):
        experiment = self._create_experiment()
        post = self._data_to_post(
            [
                ("name", ""),
                ("description", ""),
                ("dataset-MAX_NUM_FORMS", ""),
                ("dataset-INITIAL_FORMS", "0"),
                ("dataset-TOTAL_FORMS", "0"),
                ("experiment", experiment.id),
            ]
        )
        f = SampleForm(post)

        self.assertFalse(f.is_valid())
        self.assertTrue("name" in f.errors)
        self.assertTrue("description" in f.errors)
Beispiel #4
0
    def test_create_and_save_data(self):
        experiment = self._create_experiment()
        post = self._data_to_post(
            data=[
                ("name", "Sample Name"),
                ("description", "Sample Description"),
                ("dataset-MAX_NUM_FORMS", ""),
                ("dataset-INITIAL_FORMS", "0"),
                ("dataset-TOTAL_FORMS", "2"),
                ("dataset-0-id", ""),
                ("dataset-0-name", "dataset 0 name"),
                ("dataset-0-description", "dataset 0 description"),
                ("dataset-0-immutable", "False"),
                ("dataset-1-id", ""),
                ("dataset-1-name", "dataset 1 name"),
                ("dataset-1-description", "dataset 1 description"),
                ("dataset-1-immutable", "False"),
                ("experiment", experiment.id),
            ]
        )
        f = SampleForm(post)
        self.assertTrue(f.is_valid())
        full_sample = f.save(experiment.id, False)
        full_sample.save_m2m()
        sample = Sample.objects.get(name="Sample Name", description="Sample Description")
        self.assertTrue(DatasetWrapper.objects.get(name="dataset 0 name", description="dataset 0 description"))
        self.assertTrue(models.Dataset.objects.get(description="dataset 0 description"))
        self.assertTrue(DatasetWrapper.objects.get(name="dataset 1 name", description="dataset 1 description"))
        self.assertTrue(models.Dataset.objects.get(description="dataset 1 description"))

        # Ensure that there's only 1 instance of DatasetWrappers and Datasets
        f2 = SampleForm(instance=sample)
        f2.save(experiment.id, False).save_m2m()
        self.assertEqual(
            1, DatasetWrapper.objects.filter(name="dataset 0 name", description="dataset 0 description").count()
        )
        self.assertEqual(1, models.Dataset.objects.filter(description="dataset 0 description").count())
        self.assertEqual(
            1, DatasetWrapper.objects.filter(name="dataset 1 name", description="dataset 1 description").count()
        )
        self.assertEqual(1, models.Dataset.objects.filter(description="dataset 1 description").count())
Beispiel #5
0
 def test_validation_correct_data(self):
     post = self._data_to_post()
     f = SampleForm(post)
     self.assertTrue(f.is_valid())