Ejemplo n.º 1
0
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(),
    })
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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"
Ejemplo n.º 7
0
def sut():
    yield SurveyMongoRepo(MOCK_COLLECTION)
    MOCK_COLLECTION.drop()
Ejemplo n.º 8
0
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)
Ejemplo n.º 10
0
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)