Esempio n. 1
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)
Esempio n. 2
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)
Esempio n. 3
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)
Esempio n. 4
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)