def test_adding_multiple_mongo_documents(self): stub_document_1 = { "_subgroup": [ {"_week_start_at": d(2013, 4, 1), "_count": 5} ] } stub_document_2 = { "_subgroup": [ {"_week_start_at": d(2013, 4, 1), "_count": 5} ] } data = PeriodGroupedData([stub_document_1, stub_document_2], WEEK) assert_that(data.data(), has_length(2))
def test_month_start_at_gets_expanded_into_start_and_end_fields(self): stub_document = { "_subgroup": [{ "_month_start_at": d(2013, 4, 1), "_count": 1 }]} data = PeriodGroupedData([stub_document], MONTH) values = data.data()[0]['values'] assert_that(values, has_length(1))
def test_adding_additional_fields(self): stub_document = { "_subgroup": [{ "_count": 1, "_week_start_at": d(2013, 4, 1) }], "some_stuff": "oo stuff" } data = PeriodGroupedData([stub_document], WEEK) assert_that(data.data()[0], has_entry("some_stuff", "oo stuff"))
def test_that_other_fields_get_added_to_response(self): stub_document = { "_subgroup": [ { "_month_start_at": d(2013, 5, 1), "_count": 1 } ], "other_stuff": "something" } data = PeriodGroupedData([stub_document], MONTH) assert_that(data.data()[0], has_entry("other_stuff", "something"))
def test_week_start_at_gets_expanded_in_subgroups_when_added(self): stub_document = { "_subgroup": [ { "_week_start_at": d(2013, 4, 1), "_count": 5 } ] } data = PeriodGroupedData([stub_document], WEEK) values = data.data()[0]['values'] assert_that(values, has_item(has_entry("_start_at", d_tz(2013, 4, 1)))) assert_that(values, has_item(has_entry("_end_at", d_tz(2013, 4, 8)))) assert_that(values, has_item(has_entry("_count", 5)))
def test_filled_data_without_collect(self): stub_document = { "_subgroup": [{ "_month_start_at": d(2013, 9, 1), "_count": 1 }] } stub_collect = None data = PeriodGroupedData([stub_document], MONTH) data.fill_missing_periods(d(2013, 7, 1), d(2013, 10, 1), stub_collect) values = data.data()[0]["values"] assert_that(values, has_length(3))
def test_that_collected_values_are_preserved(self): stub_document = { "_subgroup": [ { "_month_start_at": d(2013, 5, 1), "_count": 1, "foo:sum": 123 } ] } data = PeriodGroupedData([stub_document], MONTH) assert_that(data.data()[0]["values"][0], has_entry("foo:sum", 123))
def test_filling_missing_months(self): stub_document = { "_subgroup": [ { "_month_start_at": d(2013, 4, 1), "_count": 1 }, { "_month_start_at": d(2013, 6, 1), "_count": 1 }] } data = PeriodGroupedData([stub_document], MONTH) data.fill_missing_periods(d(2013, 4, 1), d(2013, 6, 2)) values = data.data()[0]["values"] assert_that(values, has_length(3))
def test_filling_data_for_missing_weeks(self): stub_document = { "_subgroup": [ { "_count": 1, "_week_start_at": d(2013, 4, 1) }, { "_week_start_at": d(2013, 4, 15), "_count": 5 } ] } data = PeriodGroupedData([stub_document], WEEK) data.fill_missing_periods(d(2013, 4, 1), d(2013, 4, 16)) assert_that(data.data()[0]["values"], has_length(3)) assert_that(data.data()[0]["values"], has_items( has_entry("_start_at", d_tz(2013, 4, 1)), has_entry("_start_at", d_tz(2013, 4, 8)), has_entry("_start_at", d_tz(2013, 4, 15)) ))
def test_adding_mongo_document(self): stub_document = {"_subgroup": []} data = PeriodGroupedData([stub_document], MONTH) assert_that(data.data(), has_length(1))
def test_returned_data_should_be_immutable(self): stub_document = {"_subgroup": []} data = PeriodGroupedData([stub_document], WEEK) another_data = data.data() ok_(isinstance(another_data, tuple))