Ejemplo n.º 1
0
def test_raise_error_when_columns_with_same_name_are_added():
    test_question_1 = simplesurvey.Question("repeat_column_name")
    test_question_2 = simplesurvey.Question("repeat_column_name")

    survey = simplesurvey.Survey()
    survey.add_column(test_question_1)
    with pytest.raises(simplesurvey.DuplicateColumnException):
        survey.add_column(test_question_2)
Ejemplo n.º 2
0
def test_set_response_data(tmpdir):
    path = tmpdir.join("data.csv")
    path.write("""col1,col2,col3
data1,data2,data2""")

    survey = simplesurvey.Survey()
    survey.responses(str(path))\
          .add_column(simplesurvey.Question("col1"))\
          .add_column(simplesurvey.Question("col2"))\
          .add_column(simplesurvey.Question("col3"))\
          .process()

    result = survey.data
    assert sorted(result.columns) == sorted(['col1', 'col2', 'col3'])
Ejemplo n.º 3
0
def test_add_question_to_survey():
    test_question = simplesurvey.Question("A test column")
    survey = simplesurvey.Survey()
    survey.add_column(test_question)

    assert len(survey.questions) == 1
    assert survey.questions[0].column == "A test column"
Ejemplo n.º 4
0
def test_survey_summary_returns_summarizer_with_loaded_columns():
    data = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
    survey = simplesurvey.Survey()
    survey.responses(data)\
          .add_column(simplesurvey.Question('a'))\
          .process()

    result = survey.summarize(['a'])
    assert isinstance(result, simplesurvey.Summarizer)
Ejemplo n.º 5
0
def test_data_raises_exception_if_column_doesnt_exist():
    survey = simplesurvey.Survey()
    question1 = simplesurvey.Question("I am a missing column")
    data = pd.DataFrame(data={'col1': ['1'], 'col2': ['2']})
    survey._responses = data

    survey.add_column(question1)
    with pytest.raises(simplesurvey.SurveyLoadingException):
        survey.process()
Ejemplo n.º 6
0
def test_supplementary_data(tmpdir):
    path = tmpdir.join("data.csv")
    path.write("""col1,col2,col3
1,data2,data2""")

    suppath = tmpdir.join("data2.csv")
    suppath.write("""natural_key,sup2,sup3
1,data2,data2""")

    survey = simplesurvey.Survey()
    survey.responses(str(path), natural_key='col1')\
          .supplementary_data(str(suppath), "natural_key")\
          .add_column(simplesurvey.Question("col2"))\
          .add_column(simplesurvey.Question("col3"))\
          .add_column(simplesurvey.Question("sup2"))\
          .add_column(simplesurvey.Question("sup3"))\
          .process()

    result = survey.data
    assert sorted(list(result.columns)) == sorted(
        ['col2', 'col3', 'sup2', 'sup3'])
Ejemplo n.º 7
0
def test_simple_filter_data():
    survey = simplesurvey.Survey()
    question1 = simplesurvey.Question("col1").add_filter(lambda x: x == 1)

    data = pd.DataFrame(data={'col1': [1, 2, 3], 'col2': [2, 3, 4]})

    survey._responses = data
    survey.add_column(question1)\
          .process()

    result = survey.data
    expected = pd.DataFrame({'col1': [1]})
    assert result.equals(expected)