def test__in_mem_dm__get_hit_rows_for_queries(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_hits = list(sut.get_hit_rows_for_queries([query_rome])) assert len(ret_hits) == 1 query, q_hits = ret_hits[0] assert query == query_rome for record, hit in q_hits.iteritems(): assert hits[query_rome][record] == hit
def test__in_mem_dm__get_hit_rows_for_queries__unknown_query(): query_rome = 'rome' query_caesar = 'caesar' query_unknown = 'unknown' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_hits = list(sut.get_hit_rows_for_queries([query_unknown])) assert len(ret_hits) == 0
def test__in_mem_dm__get_hit_rows_for_queries__unknown_query(): query_rome = 'rome' query_caesar = 'caesar' query_unknown = 'unknown' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_hits = list(sut.get_hit_rows_for_queries([query_unknown])) assert len(ret_hits) == 0
def test__in_mem_dm__get_hit_rows_for_queries(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_hits = list(sut.get_hit_rows_for_queries([query_rome])) assert len(ret_hits) == 1 query, q_hits = ret_hits[0] assert query == query_rome for record, hit in q_hits.iteritems(): assert hits[query_rome][record] == hit
def test__in_mem_dm__get_hit_rows(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) for query, q_hits in sut.get_hit_rows(): for record, hit in q_hits.iteritems(): assert hits[query][record] == hit
def test__in_mem_dm__refresh__underlying_data_model_is_refreshed(): hits = {} fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) fake_model.refresh = mock.Mock() sut = InMemoryQueryDataModel(fake_model) refreshed_components = set() sut.refresh(refreshed_components) fake_model.refresh.assert_called_once_with(refreshed_components) assert fake_model in refreshed_components assert sut in refreshed_components
def test__in_mem_dm__refresh__underlying_data_model_is_refreshed(): hits = { } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) fake_model.refresh = mock.Mock() sut = InMemoryQueryDataModel(fake_model) refreshed_components = set() sut.refresh(refreshed_components) fake_model.refresh.assert_called_once_with(refreshed_components) assert fake_model in refreshed_components assert sut in refreshed_components
def test__in_mem_dm__refresh__data_is_reloaded(): query_rome = 'rome' record_caesar = 'caesar' hits = {} fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) fake_model.refresh = mock.Mock() sut = InMemoryQueryDataModel(fake_model) assert {k: v for k, v in sut.get_hit_rows()} == {} hits[query_rome] = { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } sut.refresh(set()) for record_id, rec_prefs in sut.get_hit_rows(): for session_id, pref in rec_prefs.iteritems(): assert hits[record_id][session_id] == pref
def test__in_mem_dm__get_queries(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_queries = list(sut.get_queries()) assert sorted(hits.keys()) == sorted(ret_queries)
def test__in_mem_dm__refresh__data_is_reloaded(): query_rome = 'rome' record_caesar = 'caesar' hits = {} fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) fake_model.refresh = mock.Mock() sut = InMemoryQueryDataModel(fake_model) assert {k: v for k, v in sut.get_hit_rows()} == {} hits[query_rome] = { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } sut.refresh(set()) for record_id, rec_prefs in sut.get_hit_rows(): for session_id, pref in rec_prefs.iteritems(): assert hits[record_id][session_id] == pref
def test__in_mem_dm__get_hit_rows(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock(return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) for query, q_hits in sut.get_hit_rows(): for record, hit in q_hits.iteritems(): assert hits[query][record] == hit
def test__in_mem_dm__get_queries(): query_rome = 'rome' query_caesar = 'caesar' record_brutus = 'brutus' record_caesar = 'caesar' hits = { query_rome: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), record_brutus: Hit(2.0, datetime(1999, 1, 1)), }, query_caesar: { record_caesar: Hit(1.0, datetime(1999, 1, 1)), } } fake_model = AbstractQueryDataModel() fake_model.get_hit_rows = mock.Mock( return_value=hits.iteritems()) sut = InMemoryQueryDataModel(fake_model) ret_queries = list(sut.get_queries()) assert sorted(hits.keys()) == sorted(ret_queries)