def test_should_call_insert_with_correct_values_on_add( mock_insert_one: MagicMock, sut: SurveyMongoRepo): survey_data = dict( question="any_question", answers=[ dict(answer="any_answer", image="any_image"), dict(answer="other_answer", image=None), ], ) sut.add(AddSurveyModel(**survey_data)) mock_insert_one.assert_called_with({ "question": "any_question", "answers": [ { "answer": "any_answer", "image": "any_image" }, { "answer": "other_answer", "image": None }, ], "date": datetime.utcnow(), })
def test_should_raise_exception_if_collection_insert_raise_on_add( mock_insert_one: MagicMock, sut: SurveyMongoRepo): mock_insert_one.side_effect = Exception() survey_data = dict( question="any_question", answers=[ dict(answer="any_answer", image="any_image"), dict(answer="other_answer", image=None), ], ) with pytest.raises(Exception) as excinfo: sut.add(AddSurveyModel(**survey_data)) assert type(excinfo.value) is Exception
def test_should_create_a_survey_on_add(sut: SurveyMongoRepo): survey_data = dict( question="any_question", answers=[ dict(answer="any_answer", image="any_image"), dict(answer="other_answer", image=None), ], ) sut.add(AddSurveyModel(**survey_data)) survey = MOCK_COLLECTION.find_one() assert survey assert survey["_id"] assert survey["question"] == survey_data["question"] assert survey["answers"] == survey_data["answers"] assert survey["date"] == datetime.utcnow()
def make_save_survey_result_controller(): survey_collection = get_collection_surveys("surveys") survey_result_collection = get_collection_survey_results("survey_results") survey_result_repo = SurveyResultMongoRepo(survey_collection, survey_result_collection) db_save_survey_result = DbSaveSurveyResult( save_survey_result_repo=survey_result_repo, load_survey_result_repo=survey_result_repo, ) load_survey_by_id = SurveyMongoRepo(survey_collection) return SaveSurveyResultController(load_survey_by_id, db_save_survey_result)
def test_should_returns_survey_on_load_survey_by_id(sut: SurveyMongoRepo): survey_id = MOCK_COLLECTION.insert_one( dict( question="any_question", answers=[ dict(answer="any_answer", image="any_image"), ], date=datetime.utcnow(), )).inserted_id survey = sut.load_by_id(survey_id) assert survey assert survey.question == "any_question" assert survey.answers == [ SurveyAnswerModel(answer="any_answer", image="any_image") ] assert survey.date == datetime.utcnow()
def test_should_returns_surveys_on_load_all(sut: SurveyMongoRepo): MOCK_COLLECTION.insert_many([ dict( question="any_question", answers=[ dict(answer="any_answer", image="any_image"), ], date=datetime.utcnow(), ), dict( question="other_question", answers=[ dict(answer="other_answer", image="other_image"), ], date=datetime.utcnow(), ), ]) surveys = sut.load_all() assert len(surveys) == 2 assert surveys[0].question == "any_question" assert surveys[1].question == "other_question"
def sut(): yield SurveyMongoRepo(MOCK_COLLECTION) MOCK_COLLECTION.drop()
def test_should_returns_empty_surveys_on_load_all(sut: SurveyMongoRepo): surveys = sut.load_all() assert len(surveys) == 0
def make_load_surveys_controller(): survey_collection = get_collection("surveys") load_surveys_repo = SurveyMongoRepo(survey_collection) db_load_surveys = DbLoadSurveys(load_surveys_repo) return LoadSurveysController(db_load_surveys)
def make_add_survey_controller(): survey_collection = get_collection("surveys") survey_mongo_repo = SurveyMongoRepo(survey_collection) db_add_survey = DbAddSurvey(survey_mongo_repo) return AddSurveyController(make_add_survey_validation(), db_add_survey)