def list_journals_by_subject(request): journals = mongomodels.list_journals_by_study_areas() return render_to_response('catalog/subject.html', { 'journals': journals}, context_instance=RequestContext(request))
def test_list_journals_by_study_areas_returns_valid_journals(self): from catalog.mongomodels import list_journals_by_study_areas, Journal mock_mongomanager = self.mocker.mock() mock_mongomanager(mongo_collection='journals') self.mocker.result(mock_mongomanager) self.mocker.count(4) mock_mongomanager.distinct('study_areas') self.mocker.result(['Zap', 'Zaz', 'Spam']) mock_mongomanager.find({'study_areas': 'Zap'}) self.mocker.result(mock_mongomanager) mock_mongomanager.find({'study_areas': 'Zaz'}) self.mocker.result(mock_mongomanager) mock_mongomanager.find({'study_areas': 'Spam'}) self.mocker.result(mock_mongomanager) mock_mongomanager.sort('_normalized_title', direction=pymongo.ASCENDING) self.mocker.result([{'title': 'Micronucleated lymphocytes in parents of lalala children'}]) self.mocker.count(3) self.mocker.replay() areas = list_journals_by_study_areas(mongomanager_lib=mock_mongomanager) for area in areas: for j in area['journals']: self.assertTrue(isinstance(j, Journal))
def test_list_journals_by_study_areas_returns_the_right_areas(self): from catalog.mongomodels import list_journals_by_study_areas mock_mongomanager = self.mocker.mock() mock_mongomanager(mongo_collection='journals') self.mocker.result(mock_mongomanager) mock_mongomanager.distinct('study_areas') self.mocker.result(['Zap', 'Zaz', 'Spam']) self.mocker.replay() journals = list_journals_by_study_areas(mongomanager_lib=mock_mongomanager) self.assertEqual([j['area'] for j in journals], ['Zap', 'Zaz', 'Spam'])
def test_non_string_study_areas_are_ignored_on_list_journals_by_study_areas(self): from catalog.mongomodels import list_journals_by_study_areas mock_mongomanager = self.mocker.mock() mock_mongomanager(mongo_collection='journals') self.mocker.result(mock_mongomanager) self.mocker.count(1) mock_mongomanager.distinct('study_areas') self.mocker.result([None, 'Zaz', 'Spam']) self.mocker.replay() areas = list_journals_by_study_areas(mongomanager_lib=mock_mongomanager) for area in areas: self.assertIn(area['area'], ['Zaz', 'Spam'])