def test_list_by_contenidor_id_and_review_state(self): contenidor_1 = fixtures.create_content( self.portal, fixtures.contenidor_1) ens_1 = fixtures.create_content(contenidor_1, fixtures.ens_1) ens_2 = fixtures.create_content(contenidor_1, fixtures.ens_2) contenidor_2 = fixtures.create_content( self.portal, fixtures.contenidor_2) ens_3 = fixtures.create_content(contenidor_2, fixtures.ens_3) contenidor_3 = fixtures.create_content( self.portal, fixtures.contenidor_3) ens = self.reporter.list_by_contenidor_id_and_review_state( contenidor_1.id) self.assertEqual(len(ens), 2) self.assertEqual(ens_1.id, ens[0].id) self.assertEqual(ens_2.id, ens[1].id) ens = self.reporter.list_by_contenidor_id_and_review_state( contenidor_2.id) self.assertEqual(len(ens), 1) self.assertEqual(ens_3.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_review_state( contenidor_3.id) self.assertEqual(len(ens), 0)
def test_taula_identificativa_csv_write_data(self): folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) fixtures.create_content(folder_1, fixtures.ens_1) fixtures.create_content(folder_1, fixtures.ens_2) fixtures.create_content(folder_2, fixtures.ens_incomplete) view = api.content.get_view('taula_identificativa_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_identificativa_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_identificativa_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_identificativa_f1_f2.csv') as reference: self.assertEqual(reference.read(), data) # Test that ens all folders are written if no folder is specified data = self.taula_csv_get_data(view) with self.open_file('taula_identificativa_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_identificativa_empty.csv') as reference: self.assertEqual(reference.read(), data)
def test_add_carrec_when_duplicated_representants(self): # Given 2 representants with the same id but in different folders folder_consell_direccio = fixtures.create_content(self.portal, fixtures.folder_consell_direccio) folder_altres = fixtures.create_content(self.portal, fixtures.folder_altres) fixtures.create_content(folder_consell_direccio, fixtures.representant_1) fixtures.create_content(folder_altres, fixtures.representant_1_bis) commit() # The add form of carrec_upc shows both representants in the selection # field try: self.browser.open(api.portal.get().absolute_url() + "/++add++genweb.ens.carrec_upc") self.login() except HTTPError: pass self.assertEquals("200 Ok", self.browser.headers["status"]) self.assertIn(fixtures.representant_1["id"], self.browser.contents) self.assertIn(fixtures.representant_1_bis["id"], self.browser.contents)
def test_list_by_contenidor_id_and_estat_and_review_state(self): contenidor_1 = fixtures.create_content( self.portal, fixtures.contenidor_1) ens_1_actiu = fixtures.create_content( contenidor_1, fixtures.ens_1_actiu) ens_1_baixa = fixtures.create_content( contenidor_1, fixtures.ens_1_baixa) contenidor_2 = fixtures.create_content( self.portal, fixtures.contenidor_2) ens_2_actiu = fixtures.create_content( contenidor_2, fixtures.ens_2_actiu) ens_2_baixa = fixtures.create_content( contenidor_2, fixtures.ens_2_baixa) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_1.id, 'Actiu') self.assertEqual(len(ens), 1) self.assertEqual(ens_1_actiu.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_1.id, 'Baixa') self.assertEqual(len(ens), 1) self.assertEqual(ens_1_baixa.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_1.id, 'Altre') self.assertEqual(len(ens), 0) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_2.id, 'Actiu') self.assertEqual(len(ens), 1) self.assertEqual(ens_2_actiu.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_2.id, 'Baixa') self.assertEqual(len(ens), 1) self.assertEqual(ens_2_baixa.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_estat_and_review_state( contenidor_2.id, 'Altre') self.assertEqual(len(ens), 0)
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_view_displays_all_fields_in_order(self): ens = fixtures.create_content(self.layer['portal'], fixtures.ens_ai) directiu_1 = fixtures.create_content(ens, fixtures.persona_directiu_1) directiu_2 = fixtures.create_content(ens, fixtures.persona_directiu_2) contacte_1 = fixtures.create_content(ens, fixtures.persona_contacte_1) contacte_2 = fixtures.create_content(ens, fixtures.persona_contacte_2) organ_2 = fixtures.create_content(ens, fixtures.organ_2) organ_3 = fixtures.create_content(ens, fixtures.organ_3) organ_1 = fixtures.create_content(ens, fixtures.organ_1) organ_5 = fixtures.create_content(ens, fixtures.organ_5) organ_4 = fixtures.create_content(ens, fixtures.organ_4) organ_6 = fixtures.create_content(ens, fixtures.organ_6) carrec_1 = fixtures.create_content(organ_1, fixtures.carrec_1) carrec_2 = fixtures.create_content(organ_1, fixtures.carrec_2) carrec_3 = fixtures.create_content(organ_1, fixtures.carrec_3) carrec_4 = fixtures.create_content(organ_1, fixtures.carrec_4) carrec_5 = fixtures.create_content(organ_1, fixtures.carrec_5) unitat_1 = fixtures.create_content(ens, fixtures.unitat_1) unitat_2 = fixtures.create_content(ens, fixtures.unitat_2) acord_1 = fixtures.create_content(ens, fixtures.acord_1) acord_2 = fixtures.create_content(ens, fixtures.acord_2) acord_3 = fixtures.create_content(ens, fixtures.acord_3) acord_4 = fixtures.create_content(ens, fixtures.acord_4) escriptura_1 = fixtures.create_content(ens, fixtures.escriptura_1) escriptura_2 = fixtures.create_content(ens, fixtures.escriptura_2) escriptura_3 = fixtures.create_content(ens, fixtures.escriptura_3) escriptura_4 = fixtures.create_content(ens, fixtures.escriptura_4) estatut_1 = fixtures.create_content(ens, fixtures.estatut_1) estatut_2 = fixtures.create_content(ens, fixtures.estatut_2) estatut_3 = fixtures.create_content(ens, fixtures.estatut_3) estatut_4 = fixtures.create_content(ens, fixtures.estatut_4) estatut_5 = fixtures.create_content(ens, fixtures.estatut_5) estatut_6 = fixtures.create_content(ens, fixtures.estatut_6) conveni_1 = fixtures.create_content(ens, fixtures.conveni_1) conveni_2 = fixtures.create_content(ens, fixtures.conveni_2) conveni_3 = fixtures.create_content(ens, fixtures.conveni_3) commit() self.browser.open(ens.absolute_url()) self.assertAppearInOrder([ "<dt>Denominació</dt>", "<dd>{0}</dd>".format(ens.title.encode('utf-8')), "<dt>Acrònim</dt>", "<dd>{0}</dd>".format(ens.acronim.encode('utf-8')), "<dt>Objecte social</dt>", '<dd class="fieldset-end">{0}</dd>'.format( ens.objecte_social.encode('utf-8')), "<dt>Estat</dt>", "<dd>{0}</dd>".format(ens.estat.encode('utf-8')), "<dt>NIF</dt>", "<dd>{0}</dd>".format(ens.nif.encode('utf-8')), '<dt>Figura jurídica</dt>', "<dd>{0}</dd>".format( ens.figura_juridica.encode('utf-8')), '<dt class="subfield">Núm. Identif.</dt>', '<dd class="fieldset-end">{0}</dd>'.format( ens.numero_identificacio.encode('utf-8')), "<dt>Domicili social (població)</dt>", "<dd>{0}</dd>".format( ens.domicili_social_poblacio.encode('utf-8')), "<dt>Domicili social (adreça)</dt>", "<dd>{0}</dd>".format(ens.domicili_social_adreca.encode('utf-8')), "<dt>Adreça 2</dt>", "<dd>{0}</dd>".format(ens.adreca_2.encode('utf-8')), "<dt>Telèfon</dt>", "<dd>{0}</dd>".format(ens.telefon.encode('utf-8')), "<dt>Fax</dt>", "<dd>{0}</dd>".format(ens.fax.encode('utf-8')), "<dt>Web</dt>", '<dd class="fieldset-end">{0}</dd>'.format( ens.web.encode('utf-8')), "<dt>Tipologia UPC</dt>", "<dd>{0}</dd>".format(ens.tipologia_upc.encode('utf-8')), "<dt>Codi UPC</dt>", '<dd>{0}</dd>'.format(ens.codi.encode('utf-8')), "<dt>Etiquetes</dt>", '<dd class="fieldset-end">{0}</dd>'.format( ens.etiquetes.encode('utf-8')), ], self.browser.contents) self.assertIn("<h3>Càrrecs directius</h3>", self.browser.contents) for directiu in (directiu_1, directiu_2): self.assertIn(directiu.title.encode('utf-8'), self.browser.contents) self.assertIn(directiu.carrec.encode('utf-8'), self.browser.contents) self.assertIn(directiu.telefon.encode('utf-8'), self.browser.contents) self.assertIn(directiu.email.encode('utf-8'), self.browser.contents) self.assertIn("<h3>Persones de contacte</h3>", self.browser.contents) for contacte in (contacte_1, contacte_2): self.assertIn(contacte.title.encode('utf-8'), self.browser.contents) self.assertIn(contacte.carrec.encode('utf-8'), self.browser.contents) self.assertIn(contacte.telefon.encode('utf-8'), self.browser.contents) self.assertIn(contacte.email.encode('utf-8'), self.browser.contents) self.assertIn("<dt>Aportació inicial</dt>", self.browser.contents) self.assertIn("<dd>2,300.50 €/any</dd>", self.browser.contents) self.assertIn("<dt>Quota</dt>", self.browser.contents) self.assertIn("<dd>253.44 €/mes</dd>", self.browser.contents) self.assertIn("<dt>Unitat de càrrec</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format(ens.unitat_carrec.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Percentatge de participació</dt>", self.browser.contents) self.assertIn("<dd>15.35%</dd>", self.browser.contents) self.assertIn("<dt>Membres UPC als òrgans de govern</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.nombre_membres.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Part. en cap. social o fons patrimonial</dt>", self.browser.contents) self.assertIn("<dd>2,000.00 EUR</dd>", self.browser.contents) self.assertAppearInOrder([ organ_2.title.encode('utf-8') + u" (Històric)".encode('utf-8'), organ_3.title.encode('utf-8'), organ_1.title.encode('utf-8'), organ_5.title.encode('utf-8'), organ_4.title.encode('utf-8'), organ_6.title.encode('utf-8')], self.browser.contents) self.assertAppearsBefore( "<h3>Òrgans de govern</h3>", organ_1.title.encode('utf-8'), self.browser.contents) self.assertAppearInOrder([ carrec_1.title.encode('utf-8'), carrec_2.title.encode('utf-8'), carrec_4.title.encode('utf-8'), carrec_3.title.encode('utf-8'), carrec_5.title.encode('utf-8')], self.browser.contents) self.assertAppearsBefore( "<h3>Òrgans assessors</h3>", organ_4.title.encode('utf-8'), self.browser.contents) self.assertAppearInOrder([ "<h3>Unitats UPC implicades</h3>", unitat_2.title.encode('utf-8'), unitat_1.title.encode('utf-8')], self.browser.contents) self.assertIn("<dt>Data de constitució</dt>", self.browser.contents) self.assertIn("<dd>17/02/2005</dd>", self.browser.contents) self.assertIn("<dt>Entitats constituents</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.entitats_constituents.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Entitats actuals</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.entitats_actuals.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Data d'entrada UPC</dt>", self.browser.contents) self.assertIn("<dd>11/03/2015</dd>", self.browser.contents) self.assertIn('<dt class="subfield">Procediment d'entrada</dt>', self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.data_entrada_procediment.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Seu social</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.seu_social.encode('utf-8')), self.browser.contents) self.assertIn("<dt>Adm. Pública d'adscripció</dt>", self.browser.contents) self.assertIn("<dd>{0}</dd>".format( ens.adscripcio.encode('utf-8')), self.browser.contents) self.assertAppearInOrder([ "<h3>Acords UPC</h3>", acord_1.title.encode('utf-8'), acord_4.title.encode('utf-8'), acord_2.title.encode('utf-8'), acord_3.title.encode('utf-8')], self.browser.contents) self.assertAppearInOrder([ "<h3>Documents públics</h3>", escriptura_4.title.encode('utf-8'), escriptura_1.title.encode('utf-8'), escriptura_2.title.encode('utf-8'), escriptura_3.title.encode('utf-8')], self.browser.contents) self.assertAppearInOrder([ "<h3>Estatuts i normatives</h3>", "<h4>Vigents</h4>", estatut_2.title.encode('utf-8'), estatut_3.title.encode('utf-8'), estatut_1.title.encode('utf-8'), "<h4>Anteriors</h4>", estatut_4.title.encode('utf-8'), estatut_6.title.encode('utf-8'), estatut_5.title.encode('utf-8')], self.browser.contents) self.assertAppearInOrder([ "<h3>Convenis</h3>", conveni_3.title.encode('utf-8'), conveni_1.title.encode('utf-8'), conveni_2.title.encode('utf-8')], self.browser.contents) self.assertIn( "<h3>Altres documents d'interès</h3>", self.browser.contents)
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_list_by_contenidor_id_and_delta_and_review_state(self): contenidor_1 = fixtures.create_content( self.portal, fixtures.contenidor_1) ens_1 = fixtures.create_content( contenidor_1, { 'type': 'genweb.ens.ens', 'id': 'ens-1', 'title': 'Ens 1', 'acronim': 'acronim-1', 'estat': 'estat-1', 'effective': DateTime(2000, 1, 1, 0, 0, 0)}) ens_2 = fixtures.create_content( contenidor_1, { 'type': 'genweb.ens.ens', 'id': 'ens-2', 'title': 'Ens 2', 'acronim': 'acronim-2', 'estat': 'estat-2', 'effective': DateTime(2000, 1, 15, 0, 0, 0)}) ens_3 = fixtures.create_content( contenidor_1, { 'type': 'genweb.ens.ens', 'id': 'ens-3', 'title': 'Ens 3', 'acronim': 'acronim-3', 'estat': 'estat-3', 'effective': DateTime(2000, 1, 30, 0, 0, 0)}) contenidor_2 = fixtures.create_content( self.portal, fixtures.contenidor_2) fixtures.create_content( contenidor_2, { 'type': 'genweb.ens.ens', 'id': 'ens-4', 'title': 'Ens 4', 'acronim': 'acronim-4', 'estat': 'estat-4', 'effective': DateTime(2000, 1, 15, 0, 0, 0)}) ens = self.reporter.list_by_contenidor_id_and_delta_and_review_state( contenidor_1.id, -1, date_source=datetime(2000, 1, 30, 0, 0, 0)) self.assertEqual(len(ens), 1) self.assertEqual(ens_3.id, ens[0].id) ens = self.reporter.list_by_contenidor_id_and_delta_and_review_state( contenidor_1.id, -15, date_source=datetime(2000, 1, 30, 0, 0, 0)) self.assertEqual(len(ens), 2) self.assertEqual(ens_2.id, ens[0].id) self.assertEqual(ens_3.id, ens[1].id) ens = self.reporter.list_by_contenidor_id_and_delta_and_review_state( contenidor_1.id, -29, date_source=datetime(2000, 1, 30, 0, 0, 0)) self.assertEqual(len(ens), 3) self.assertEqual(ens_1.id, ens[0].id) self.assertEqual(ens_2.id, ens[1].id) self.assertEqual(ens_3.id, ens[2].id) ens = self.reporter.list_by_contenidor_id_and_delta_and_review_state( contenidor_1.id, -14, date_source=datetime(2000, 1, 15, 0, 0, 0)) self.assertEqual(len(ens), 2) self.assertEqual(ens_1.id, ens[0].id) self.assertEqual(ens_2.id, ens[1].id)
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)
def test_taula_identificativa(self): folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) ens_1 = fixtures.create_content(folder_1, fixtures.ens_1) ens_2 = fixtures.create_content(folder_1, fixtures.ens_2) ens_3 = fixtures.create_content(folder_2, fixtures.ens_incomplete) commit() view = api.content.get_view('taula_identificativa', 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([ ens_1.title.encode('utf8'), ens_2.title.encode('utf8')], self.browser.contents) self.assertNotIn(ens_3.title.encode('utf-8'), 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.assertIn(ens_3.title.encode('utf8'), self.browser.contents) self.assertNotIn(ens_1.title.encode('utf-8'), self.browser.contents) self.assertNotIn(ens_2.title.encode('utf-8'), self.browser.contents) # Test that ens in both foler-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))) self.assertIn(ens_3.title.encode('utf8'), self.browser.contents) self.assertAppearInOrder([ ens_3.title.encode('utf8'), ens_1.title.encode('utf8'), ens_2.title.encode('utf8')], self.browser.contents) # Test that ens in all folders are shown in alphabetical order if no # folder is specified self.browser.open(view.url()) self.assertAppearInOrder([ ens_3.title.encode('utf8'), ens_1.title.encode('utf8'), ens_2.title.encode('utf8')], 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))) self.assertNotIn(ens_1.title.encode('utf-8'), self.browser.contents) self.assertNotIn(ens_2.title.encode('utf-8'), self.browser.contents) self.assertNotIn(ens_3.title.encode('utf-8'), self.browser.contents)
def test_search_results(self): # Create the following contents: # folder title fig.jur. estat description # 1 Ens 01 Fundació Pre-Alta cancel·lada desc-a # 1 Ens 02 Fundació Pre-Alta cancel·lada desc-b # 1 Ens 03 Fundació Actiu desc-a # 1 Ens 04 Fundació Actiu desc-b folder_1 = fixtures.create_content(self.portal, fixtures.folder_1) ens_list = [] for figura_juridica in (u'Fundació',): for estat in ( u'Pre-Alta cancel·lada', u'Actiu'): for description in (u'desc-a', u'desc-b'): ens_list.append(dummy.create_ens( folder_1, len(ens_list) + 1, figura_juridica=figura_juridica, estat=estat, description=description)) # Create the following contents: # folder title fig.jur. estat description # 1 Ens 05 Societat Pre-Baixa desc-a # 1 Ens 06 Societat Pre-Baixa desc-b # 1 Ens 07 Societat Pre-Alta desc-a # 1 Ens 08 Societat Pre-Alta desc-b for figura_juridica in (u'Societat',): for estat in ( u'Pre-Baixa', u'Pre-Alta'): for description in (u'desc-a', u'desc-b'): ens_list.append(dummy.create_ens( folder_1, len(ens_list) + 1, figura_juridica=figura_juridica, estat=estat, description=description)) # Create the following contents: # folder title fig.jur. estat description # 2 Ens 09 Consorci Baixa desc-c folder_2 = fixtures.create_content(self.portal, fixtures.folder_2) ens_list.append(dummy.create_ens( folder_2, len(ens_list) + 1, figura_juridica=u'Consorci', estat=u'Baixa', description=u'des-c')) commit() view = api.content.get_view('ens_search_results', self.layer['portal'], self.layer['request']) # Test that carrecs in folder-1 are shown in alphabetical order folder_list = [folder_1] # Test filtering by figura jurídica self.browser.open((view.url() + self.get_query_string( 'Fundació', '', folder_list, ''))) self.assertAppearInOrder( [ens.title.encode('utf-8') for ens in ens_list[:4]], self.browser.contents) for title in [ens.title.encode('utf-8') for ens in ens_list[4:]]: self.assertNotIn(title, self.browser.contents) # Test filtering by figura jurídica and estat self.browser.open((view.url() + self.get_query_string( 'Fundació', 'Pre-Alta cancel·lada', folder_list, ''))) self.assertAppearInOrder( [ens.title.encode('utf-8') for ens in ens_list[:2]], self.browser.contents) for title in [ens.title.encode('utf-8') for ens in ens_list[2:]]: self.assertNotIn(title, self.browser.contents) # Test filtering by figura jurídica, estat and text self.browser.open((view.url() + self.get_query_string( 'Fundació', 'Pre-Alta cancel·lada', folder_list, 'desc-a'))) self.assertAppearInOrder( [ens.title.encode('utf-8') for ens in ens_list[:1]], self.browser.contents) for title in [ens.title.encode('utf-8') for ens in ens_list[1:]]: self.assertNotIn(title, self.browser.contents) # Test that carrecs in folder-2 are shown in alphabetical order folder_list = [folder_2] self.browser.open((view.url() + self.get_query_string('', '', folder_list, ''))) self.assertIn( ens_list[-1].title.encode('utf-8'), self.browser.contents) for title in [ens.title.encode('utf-8') for ens in ens_list[:-1]]: self.assertNotIn(title, self.browser.contents)