def get_stats_result(self, request):
        """Return the StatsResult object for this statistic"""
        stats_datasets = StatsMakerDataverses(**request.GET.dict())

        pub_state = self.get_pub_state(request)

        if pub_state == self.PUB_STATE_ALL:
            stats_result = stats_datasets.get_dataverse_counts_by_month()
        elif pub_state == self.PUB_STATE_UNPUBLISHED:
            stats_result = stats_datasets.get_dataverse_counts_by_month_unpublished()
        else:
            stats_result = stats_datasets.get_dataverse_counts_by_month_published()

        return stats_result
def test_parse_sections():
    simple_mariofile_sections = dict(mariofile.parse_sections(SIMPLE_MARIOFILE.splitlines(True)))
    assert len(simple_mariofile_sections) == 3
    complex_mariofile_sections = dict(mariofile.parse_sections(COMPLEX_MARIOFILE.splitlines(True)))
    assert len(complex_mariofile_sections) == 2
    assert sorted(complex_mariofile_sections.keys()) == ['DEFAULT', 'section']
    assert complex_mariofile_sections['DEFAULT'] == ['default text\n', '\n']
    with pytest.raises(mariofile.ConfigurationFileError):
        dict(mariofile.parse_sections(GARBAGE_MARIOFILE.splitlines(True)))
    with pytest.raises(mariofile.ConfigurationFileError):
        dict(mariofile.parse_sections(INVALID_SECTION_MARIOFILE.splitlines(True)))
    more_complex_mariofile_sections = dict(
            mariofile.parse_sections(MORE_COMPLEX_MARIOFILE.splitlines(True))
    )
    more_complex_mariofile_sections_keys = ['DEFAULT', 'section_one', 'section_two', 'three']
    assert sorted(more_complex_mariofile_sections.keys()) == more_complex_mariofile_sections_keys
    assert more_complex_mariofile_sections['three'] == []