def test_base_form_catches_is_literate_and_witness(self): subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob, is_literate=NO, witness_name="", first_name="ERIK", last_name="THEPLEEB", ) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] form = SubjectConsentForm(subject_consent.__dict__) self.assertFalse(form.is_valid()) subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob, is_literate=NO, witness_name="BOND, JAMES", first_name="ERIK", last_name="THEPLEEB", ) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] form = SubjectConsentForm(subject_consent.__dict__) self.assertTrue(form.is_valid())
def test_base_form_catches_gender_of_consent(self): site_consents.registry = {} self.consent_factory( start=self.study_open_datetime, end=self.study_open_datetime + timedelta(days=50), version="1.0", gender=[MALE], first_name="ERIK", last_name="THEPLEEB", ) subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob, gender=MALE, first_name="ERIK", last_name="THEPLEEB", ) form = SubjectConsentForm(subject_consent.__dict__) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] self.assertTrue(form.is_valid()) subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob, gender=FEMALE, ) form = SubjectConsentForm(subject_consent.__dict__) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] self.assertFalse(form.is_valid())
def test_create_many(api_client, superuser): payload = [ CAMBRIDGE_LEADER_PAYLOAD, SOMERVILLE_PROSPECT_PAYLOAD, CALIFORNIA_PROSPECT_PAYLOAD, ] resp = api_client.post("/v1/people/", payload, **id_auth(superuser)) golden_cambridge_leader = FullPersonSerializer( baker.prepare_recipe("supportal.tests.cambridge_leader")).data golden_somerville_prospect = FullPersonSerializer( baker.prepare_recipe("supportal.tests.somerville_prospect")).data golden_california_prospect = FullPersonSerializer( baker.prepare_recipe("supportal.tests.california_prospect")).data assert_person_payloads_same( FullPersonSerializer( Person.objects.get(ngp_id=golden_cambridge_leader["ngp_id"])).data, golden_cambridge_leader, ) assert_person_payloads_same( FullPersonSerializer( Person.objects.get( ngp_id=golden_somerville_prospect["ngp_id"])).data, golden_somerville_prospect, ) assert_person_payloads_same( FullPersonSerializer( Person.objects.get( ngp_id=golden_california_prospect["ngp_id"])).data, golden_california_prospect, )
def test_deadline_is_near(self, now): obj = baker.prepare_recipe("hipeac.job", deadline=now.add(days=6).date) assert obj.deadline_is_near() is True obj = baker.prepare_recipe("hipeac.job", deadline=now.add(days=7).date) assert obj.deadline_is_near() is False obj = baker.prepare_recipe("hipeac.job", deadline=now.add(days=8).date) assert obj.deadline_is_near() is False
def test_save_related_instances_on_prepare_recipe(self): dog = baker.prepare_recipe("tests.generic.homeless_dog") assert not dog.id assert not dog.owner_id dog = baker.prepare_recipe("tests.generic.homeless_dog", _save_related=True) assert not dog.id assert dog.owner.id
def test_do_not_create_related_model(self): """It should not create another object when passing the object as argument.""" person = baker.make_recipe("tests.generic.person") assert Person.objects.count() == 1 baker.make_recipe("tests.generic.dog", owner=person) assert Person.objects.count() == 1 baker.prepare_recipe("tests.generic.dog", owner=person) assert Person.objects.count() == 1
def test_do_not_create_related_model(self): """ It should not attempt to create other object when passing the object as argument """ person = baker.make_recipe('tests.generic.person') assert Person.objects.count() == 1 baker.make_recipe('tests.generic.dog', owner=person) assert Person.objects.count() == 1 baker.prepare_recipe('tests.generic.dog', owner=person) assert Person.objects.count() == 1
def test_increment_for_strings(self): person = baker.make_recipe('tests.generic.serial_person') assert person.name == 'joe1' person = baker.prepare_recipe('tests.generic.serial_person') assert person.name == 'joe2' person = baker.make_recipe('tests.generic.serial_person') assert person.name == 'joe3'
def test_increment_after_override_definition_field(self): person = baker.make_recipe('tests.generic.serial_person', name='tom') assert person.name == 'tom' person = baker.make_recipe('tests.generic.serial_person') assert person.name == 'joe4' person = baker.prepare_recipe('tests.generic.serial_person') assert person.name == 'joe5'
def test_increment_for_strings(self): person = baker.make_recipe("tests.generic.serial_person") assert person.name == "joe1" person = baker.prepare_recipe("tests.generic.serial_person") assert person.name == "joe2" person = baker.make_recipe("tests.generic.serial_person") assert person.name == "joe3"
def test_do_query_lookup_for_recipes_prepare_method(self): """ It should not attempt to create other object when using query lookup syntax """ dog = baker.prepare_recipe("tests.generic.dog", owner__name="James") assert dog.owner.name == "James"
def fill_subject_consent(self, model_obj, save_only=None): """Add a subject consent for the newly screening subject. """ model_obj = baker.prepare_recipe( self.subject_consent_model, **{ "screening_identifier": model_obj.screening_identifier, "dob": model_obj.estimated_dob, "gender": model_obj.gender, }, ) model_obj.initials = f"{model_obj.first_name[0]}{model_obj.last_name[0]}" if save_only: model_obj.save() else: model_obj = self.fill_form( model=self.subject_consent_model, obj=model_obj, exclude=[ "subject_identifier", "citizen", "legal_marriage", "marriage_certificate", "subject_type", "gender", "study_site", ], verbose=False, ) self.wait_for_edc() return model_obj
def test_date_outside_event_dates(self, now): event = baker.prepare_recipe("hipeac.event", start_date=now.add(days=90).date, end_date=now.add(days=95).date) obj = baker.prepare_recipe("hipeac.session", event=event, date=now.add(days=80).date) with pytest.raises(ValidationError): obj.full_clean() obj = baker.prepare_recipe("hipeac.session", event=event, date=now.add(days=100).date) with pytest.raises(ValidationError): obj.full_clean()
def test_increment_after_override_definition_field(self): person = baker.make_recipe("tests.generic.serial_person", name="tom") assert person.name == "tom" person = baker.make_recipe("tests.generic.serial_person") assert person.name == "joe4" person = baker.prepare_recipe("tests.generic.serial_person") assert person.name == "joe5"
def test_prepare_recipe_with_quantity_parameter_respection_model_args(self): people = baker.prepare_recipe( "tests.generic.person", _quantity=3, name="Dennis Ritchie", age=70 ) assert len(people) == 3 for person in people: assert person.name == "Dennis Ritchie" assert person.age == 70
def test_start_date_before_registration_deadline(self, now): obj = baker.prepare_recipe( "hipeac.event", start_date=now.add(days=1).date, registration_deadline=now.add(days=10).datetime, ) with pytest.raises(ValidationError): obj.full_clean()
def test_model_with_foreign_key_as_unicode(self): dog = baker.make_recipe("tests.generic.other_dog_unicode") assert dog.breed == "Basset" assert isinstance(dog.owner, Person) assert dog.owner.id dog = baker.prepare_recipe("tests.generic.other_dog_unicode") assert dog.breed == "Basset" assert isinstance(dog.owner, Person) assert dog.owner.id is None
def test_model_with_foreign_key_as_str(self): dog = baker.make_recipe('tests.generic.other_dog') assert dog.breed == 'Basset' assert isinstance(dog.owner, Person) assert dog.owner.id dog = baker.prepare_recipe('tests.generic.other_dog') assert dog.breed == 'Basset' assert isinstance(dog.owner, Person) assert dog.owner.id is None
def test_save_tags_commit_true_call_save_tags( self, _save_tags_mock: mock.MagicMock): """Should call _save_tags when commit=True.""" obj_dict = self.get_tutorial_dict( tutorial=baker.prepare_recipe("learning.tutorial")) form = TutorialForm(obj_dict) form.save(commit=True) self.assertTrue(_save_tags_mock.called)
def test_save_tags_commit_false_assign_save_tags( self, _save_tags_mock: mock.MagicMock): """Should assign save_tags to _save_tags when commit=False.""" obj_dict = self.get_tutorial_dict( tutorial=baker.prepare_recipe("learning.tutorial")) form = TutorialForm(obj_dict) form.save(commit=False) self.assertEqual(form.save_tags, form._save_tags)
def test_create_one(api_client, superuser): payload = SOMERVILLE_PROSPECT_PAYLOAD resp = api_client.post("/v1/people/", payload, **id_auth(superuser)) assert resp.status_code == status.HTTP_201_CREATED golden_person = FullPersonSerializer( baker.prepare_recipe("supportal.tests.somerville_prospect")).data person = Person.objects.get(ngp_id="") assert_person_payloads_same( FullPersonSerializer(person).data, golden_person)
def test_model_with_foreign_key(self): dog = baker.make_recipe("tests.generic.dog") assert dog.breed == "Pug" assert isinstance(dog.owner, Person) assert dog.owner.id dog = baker.prepare_recipe("tests.generic.dog") assert dog.breed == "Pug" assert isinstance(dog.owner, Person) assert dog.owner.id is None dog = baker.prepare_recipe("tests.generic.dog", _save_related=True) assert dog.breed == "Pug" assert isinstance(dog.owner, Person) assert dog.owner.id dogs = baker.make_recipe("tests.generic.dog", _quantity=2) owner = dogs[0].owner for dog in dogs: assert dog.breed == "Pug" assert dog.owner == owner
def test_base_form_catches_dob_upper(self): subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob - relativedelta(years=100), first_name="ERIK", last_name="THEPLEEB", ) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] consent_form = SubjectConsentForm(subject_consent.__dict__) self.assertFalse(consent_form.is_valid())
def test_base_form_is_valid(self): """Asserts baker defaults validate.""" subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", dob=self.dob, consent_datetime=self.study_open_datetime, first_name="ERIK", last_name="THEPLEEB", ) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] consent_form = SubjectConsentForm(data=subject_consent.__dict__) self.assertTrue(consent_form.is_valid())
def test_increment_by_3(self): dummy = baker.make_recipe("tests.generic.serial_numbers_by") assert dummy.default_int_field == 13 assert dummy.default_decimal_field == Decimal("22.5") assert dummy.default_float_field == pytest.approx(3.030000) dummy = baker.make_recipe("tests.generic.serial_numbers_by") assert dummy.default_int_field == 16 assert dummy.default_decimal_field == Decimal("24.9") assert dummy.default_float_field == pytest.approx(4.83) dummy = baker.prepare_recipe("tests.generic.serial_numbers_by") assert dummy.default_int_field == 19 assert dummy.default_decimal_field == Decimal("27.3") assert dummy.default_float_field == pytest.approx(6.63)
def test_increment_for_numbers(self): dummy = baker.make_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 11 assert dummy.default_decimal_field == Decimal("21.1") assert dummy.default_float_field == 2.23 dummy = baker.make_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 12 assert dummy.default_decimal_field == Decimal("22.1") assert dummy.default_float_field == 3.23 dummy = baker.prepare_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 13 assert dummy.default_decimal_field == Decimal("23.1") assert dummy.default_float_field == 4.23
def test_base_form_identity_mismatch(self): subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime, dob=self.dob, first_name="ERIK", last_name="THEPLEEB", ) subject_consent.confirm_identity = "1" subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] consent_form = SubjectConsentForm(data=subject_consent.__dict__) self.assertFalse(consent_form.is_valid())
def test_base_form_catches_consent_datetime_before_study_open(self): subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime + relativedelta(days=1), dob=self.dob, first_name="ERIK", last_name="THEPLEEB", ) subject_consent.initials = subject_consent.first_name[ 0] + subject_consent.last_name[0] consent_form = SubjectConsentForm(data=subject_consent.__dict__) self.assertTrue(consent_form.is_valid()) self.assertIsNone(consent_form.errors.get("consent_datetime")) subject_consent = baker.prepare_recipe( "edc_consent.subjectconsent", consent_datetime=self.study_open_datetime - relativedelta(days=1), dob=self.dob, ) data = subject_consent.__dict__ data["initials"] = data["first_name"][0] + data["last_name"][0] consent_form = SubjectConsentForm(data=data) self.assertFalse(consent_form.is_valid())
def fill_subject_screening(self, save_only=None): """Add a subject screening form. """ model_obj = baker.prepare_recipe(self.subject_screening_model) if save_only: model_obj.save() else: model_obj = self.fill_form( model=self.subject_screening_model, obj=model_obj, exclude=["subject_identifier", "report_datetime"], ) self.wait_for_edc() return model_obj
def test_increment_for_numbers_2(self): """Repeated test to ensure Sequences atomicity.""" dummy = baker.make_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 11 assert dummy.default_decimal_field == Decimal("21.1") assert dummy.default_float_field == 2.23 dummy = baker.make_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 12 assert dummy.default_decimal_field == Decimal("22.1") assert dummy.default_float_field == 3.23 dummy = baker.prepare_recipe("tests.generic.serial_numbers") assert dummy.default_int_field == 13 assert dummy.default_decimal_field == Decimal("23.1") assert dummy.default_float_field == 4.23