def test_search_results(self): folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) folder_1_titles_nonhistorics = [] folder_1_titles_historics = [] folder_1_titles_all = [] for ens_number in (1, 2): ens = dummy.create_ens(folder_1, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): carrec_nonhistoric = dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) carrec_historic = dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num, is_historic=True) folder_1_titles_nonhistorics.append( carrec_nonhistoric.title.encode('utf-8')) folder_1_titles_historics.append( carrec_historic.title.encode('utf-8')) folder_1_titles_all.append( carrec_nonhistoric.title.encode('utf-8')) folder_1_titles_all.append( carrec_historic.title.encode('utf-8')) folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) folder_2_titles_all = [] for ens_number in (3,): ens = dummy.create_ens(folder_2, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): carrec = dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) folder_2_titles_all.append( carrec.title.encode('utf-8')) commit() view = api.content.get_view('carrec_search_results', self.layer['portal'], self.layer['request']) # Test that carrecs in folder-1 are shown in alphabetical order folder_list = [folder_1] # Test when text is empty and historics=False self.browser.open((view.url() + self.get_query_string('', folder_list, False))) self.assertAppearInOrder( sorted(folder_1_titles_nonhistorics), self.browser.contents) for title in folder_1_titles_historics: self.assertNotIn(title, self.browser.contents) for title in folder_2_titles_all: self.assertNotIn(title, self.browser.contents) # Test when text is empty and historics=True self.browser.open((view.url() + self.get_query_string('', folder_list, True))) self.assertAppearInOrder( sorted(folder_1_titles_all), self.browser.contents) for title in folder_2_titles_all: self.assertNotIn(title, self.browser.contents) # Test when text is not empty and historics=False text = 'Persona 01' self.browser.open((view.url() + self.get_query_string(text, folder_list, False))) self.assertAppearInOrder( sorted( [title for title in folder_1_titles_nonhistorics if title.startswith(text)]), self.browser.contents) for title in [title for title in folder_1_titles_nonhistorics if not title.startswith(text)]: self.assertNotIn(title, self.browser.contents) for title in folder_1_titles_historics: self.assertNotIn(title, self.browser.contents) for title in folder_2_titles_all: self.assertNotIn(title, self.browser.contents) # Test when text is not empty and historics=True text = 'Persona 01' self.browser.open((view.url() + self.get_query_string(text, folder_list, True))) self.assertAppearInOrder( sorted( [title for title in folder_1_titles_all if title.startswith(text)]), self.browser.contents) for title in [title for title in folder_1_titles_all if not title.startswith(text)]: self.assertNotIn(title, self.browser.contents) for title in folder_2_titles_all: self.assertNotIn(title, self.browser.contents) # Test that ens in folder-2 are shown in alphabetical order folder_list = [folder_2] self.browser.open((view.url() + self.get_query_string('', folder_list, False))) self.assertAppearInOrder( sorted(folder_2_titles_all), self.browser.contents) for title in folder_1_titles_all: self.assertNotIn(title, self.browser.contents) # Test that ens in both folder-1 and folder-2 are shown in alphabetical # order folder_list = [folder_1, folder_2] self.browser.open((view.url() + self.get_query_string('', folder_list, False))) folder_1_2_titles = folder_1_titles_nonhistorics + folder_2_titles_all self.assertAppearInOrder( sorted(folder_1_2_titles), self.browser.contents) # Test all ens are shown in alphabetical order when no folder specified self.browser.open(view.url()) folder_1_2_titles = folder_1_titles_nonhistorics + folder_2_titles_all self.assertAppearInOrder( sorted(folder_1_2_titles), self.browser.contents) # Test that no ens are shown if a nonexistent folder is specified folder_list = [ Mock(absolute_url_path=Mock(side_effect=('/nonexistent/path',)))] self.browser.open((view.url() + self.get_query_string('', folder_list, False))) for title in folder_1_2_titles: self.assertNotIn(title, self.browser.contents)
def test_taula_representacio_csv_write_data(self): folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) for ens_number in (1, 2): ens = dummy.create_ens(folder_1, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num, is_historic=True) folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) for ens_number in (3,): ens = dummy.create_ens(folder_2, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) view = api.content.get_view('taula_representacio_csv', self.layer['portal'], self.layer['request']) # Test that only ens in folder-1 are written data = self.taula_csv_get_data(view, [folder_1]) with self.open_file('taula_representacio_f1.csv') as reference: self.assertEqual(reference.read(), data) # Test that only ens in folder-2 are written data = self.taula_csv_get_data(view, [folder_2]) with self.open_file('taula_representacio_f2.csv') as reference: self.assertEqual(reference.read(), data) # Test that ens in both folder-1 and folder-2 are written data = self.taula_csv_get_data(view, [folder_1, folder_2]) with self.open_file('taula_representacio_f1_f2.csv') as reference: self.assertEqual(reference.read(), data) # Test that all ens are written when no folder is specified data = self.taula_csv_get_data(view) with self.open_file('taula_representacio_f1_f2.csv') as reference: self.assertEqual(reference.read(), data) # Test that no ens are written when a nonexistent folder is specified data = self.taula_csv_get_data( view, [Mock(absolute_url_path=Mock(side_effect=('/nonexistent/path',)))]) with self.open_file('taula_representacio_empty.csv') as reference: self.assertEqual(reference.read(), data)
def test_taula_representacio(self): folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) folder_1_titles = [] for ens_number in (1, 2): ens = dummy.create_ens(folder_1, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): carrec = dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num, is_historic=True) folder_1_titles.append( carrec.title.encode('utf-8')) folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) folder_2_titles = [] for ens_number in (3,): ens = dummy.create_ens(folder_2, ens_number) for organ_type in ('Govern', 'Assessor'): for organ_num in (1, 2): organ = dummy.create_organ(ens, organ_type, organ_num) for carrec_num in (1, 2): for persona_num in (1, 2): carrec = dummy.create_carrec( organ, ens_number, organ_type, organ_num, carrec_num, persona_num) folder_2_titles.append( carrec.title.encode('utf-8')) commit() view = api.content.get_view('taula_representacio', self.layer['portal'], self.layer['request']) # Test that ens in folder-1 are shown in alphabetical order folder_list = [folder_1] self.browser.open((view.url() + self.get_folders_query_string(folder_list))) self.assertAppearInOrder(folder_1_titles, self.browser.contents) for title in folder_2_titles: self.assertNotIn(title, self.browser.contents) # Test that ens in folder-2 are shown in alphabetical order folder_list = [folder_2] self.browser.open((view.url() + self.get_folders_query_string(folder_list))) self.assertAppearInOrder(folder_2_titles, self.browser.contents) for title in folder_1_titles: self.assertNotIn(title, self.browser.contents) # Test that ens in both folder-1 and folder-2 are shown in alphabetical # order folder_list = [folder_1, folder_2] self.browser.open((view.url() + self.get_folders_query_string(folder_list))) folder_1_2_titles = folder_1_titles + folder_2_titles self.assertAppearInOrder(folder_1_2_titles, self.browser.contents) # Test all ens are shown in alphabetical order when no folder specified folder_list = [folder_1, folder_2] self.browser.open(view.url()) folder_1_2_titles = folder_1_titles + folder_2_titles self.assertAppearInOrder(folder_1_2_titles, self.browser.contents) # Test that no ens are shown if a nonexistent folder is specified folder_list = [ Mock(absolute_url_path=Mock(side_effect=('/nonexistent/path',)))] self.browser.open((view.url() + self.get_folders_query_string(folder_list))) for title in folder_1_2_titles: self.assertNotIn(title, self.browser.contents)