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)
示例#2
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)
示例#3
0
    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)
示例#5
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)
示例#6
0
    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&apos;entrada UPC</dt>",
                      self.browser.contents)
        self.assertIn("<dd>11/03/2015</dd>", self.browser.contents)

        self.assertIn('<dt class="subfield">Procediment d&apos;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&apos;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&apos;interès</h3>",
            self.browser.contents)
示例#7
0
    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)
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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)