Exemple #1
0
 def test_get_comment_both(self):
     index = IndexCreator('.')
     entry = polib.POEntry()
     entry.comment = 'comment'
     entry.tcomment = 'tcomment'
     comment = index._get_comment(entry)
     self.assertEquals(comment, 'tcomment\r\ncomment')
 def test_get_comment_both(self):
     index = IndexCreator('.')
     entry = polib.POEntry()
     entry.comment = 'comment'
     entry.tcomment = 'tcomment'
     comment = index._get_comment(entry)
     self.assertEquals(comment, 'tcomment\r\ncomment')
    def _create_index(self):
        '''Creates an index in RAM with the entries from data_set array'''
        self.index = IndexCreator('')
        index = self.index.create(True)

        for idx in range(0, len(self.data_set), self.FIELDS):
            self.index.write_entry(source=self.data_set[idx + 0],
                                   target=self.data_set[idx + 1],
                                   comment=u'',
                                   context=u'',
                                   project=self.data_set[idx + 2],
                                   softcatala=self.data_set[idx + 3])

        self.index.writer.commit()
        return index
    def test_process_project_plural(self):

        tmpfile = self._dump_po_to_file(self.minipo_plural)

        index = IndexCreator('.')
        index.writer = IndexWriterMock()
        index._process_file('test_project', tmpfile.name, False, set())
        stored = index.writer.store
        self.assertEquals(stored[0]['source'], u'Delete this photo from camera?')
        self.assertEquals(stored[0]['target'], u'Voleu suprimir aquesta fotografia de la càmera?')

        self.assertEquals(stored[1]['source'], u'Delete these %d photos from camera?')
        self.assertEquals(stored[1]['target'], u'Voleu suprimir aquestes %d fotografies de la càmera?')

        self.assertEquals(index.sentences, 2)
        self.assertEquals(index.sentences_indexed, 2)
    def test_process_project(self):

        tmpfile = self._dump_po_to_file()

        index = IndexCreator('.')
        index.writer = IndexWriterMock()
        index._process_file('test_project', tmpfile.name, False, set())
        stored = index.writer.store

        self.assertEquals(stored['source'], u'Power off the selected virtual machines')
        self.assertEquals(stored['target'], u'Apaga les màquines virtuals seleccionades')
        self.assertEquals(stored['context'], 'Context')
        self.assertEquals(stored['comment'], 'Please remember to do something\r\n')
        self.assertEquals(stored['softcatala'], False)
        self.assertEquals(stored['project'], 'test_project')
        self.assertEquals(index.words, 5)
        self.assertEquals(index.sentences, 1)
        self.assertEquals(index.sentences_indexed, 1)
    def test_process_project(self):

        tmpfile = self._dump_po_to_file(self.minipo)

        index = IndexCreator('.')
        index.writer = IndexWriterMock()
        index._process_file('test_project', tmpfile.name, False, set())
        stored = index.writer.store

        self.assertEquals(stored[0]['source'], u'Power off the selected virtual machines')
        self.assertEquals(stored[0]['target'], u'Apaga les màquines virtuals seleccionades')
        self.assertEquals(stored[0]['context'], 'Context')
        self.assertEquals(stored[0]['comment'], 'Please remember to do something\r\n')
        self.assertEquals(stored[0]['softcatala'], False)
        self.assertEquals(stored[0]['project'], 'test_project')
        self.assertEquals(index.words, 5)
        self.assertEquals(index.sentences, 1)
        self.assertEquals(index.sentences_indexed, 1)
Exemple #7
0
def main():
    """Create a Whoosh index for a PO file.

    Given a PO file, enumerates all the strings, and creates a Whoosh index to
    be able to search later.
    """
    print("Create Whoosh index from a PO file")
    print("Use --help for assistance")

    start_time = datetime.datetime.now()

    try:
        locale.setlocale(locale.LC_ALL, '')
    except Exception as detail:
        print("Exception: " + str(detail))

    po_directory, debug_keyword, projects_names = read_parameters()
    indexCreator = IndexCreator(po_directory, debug_keyword, projects_names)
    indexCreator.create()
    indexCreator.process_projects()

    ctx = {
        'date': datetime.date.today().strftime("%d/%m/%Y"),
        'projects': str(indexCreator.projects),
        'words': locale.format_string("%d", indexCreator.words, grouping=True),
    }
    write_index_json(ctx)

    print(
        "Time used to create the index: {0} ".format(datetime.datetime.now() -
                                                     start_time))
def main():
    """Create a Whoosh index for a PO file.

    Given a PO file, enumerates all the strings, and creates a Whoosh index to
    be able to search later.
    """
    print("Create Whoosh index from a PO file")
    print("Use --help for assistance")

    start_time = time.time()

    try:
        locale.setlocale(locale.LC_ALL, '')
    except Exception as detail:
        print("Exception: " + str(detail))

    po_directory, debug_keyword, projects_names = read_parameters()
    indexCreator = IndexCreator(po_directory, debug_keyword, projects_names)
    indexCreator.create()
    indexCreator.process_projects()

    ctx = {
        'date': datetime.date.today().strftime("%d/%m/%Y"),
        'projects': str(indexCreator.projects),
        'words': locale.format("%d", indexCreator.words, grouping=True),
    }
    process_template("web/templates/statistics.mustache", "statistics.html", ctx)

    ctx = {
        # This is the list of projects to display for the user to select.
        'options': sorted(indexCreator.options, key=lambda x: x.lower()),
    }
    process_template("web/templates/select-projects.mustache",
                     "select-projects.html", ctx)

    end_time = time.time() - start_time
    print("time used to create the index: " + str(end_time))
    def _create_index(self):
        """Creates an index in RAM with the entries from data_set array"""
        self.index = IndexCreator("")
        index = self.index.create(True)

        for idx in range(0, len(self.data_set), self.FIELDS):
            self.index.write_entry(
                source=self.data_set[idx + 0],
                target=self.data_set[idx + 1],
                comment=u"",
                context=u"",
                project=self.data_set[idx + 2],
                softcatala=self.data_set[idx + 3],
            )

        self.index.writer.commit()
        return index
def main():
    """Create a Whoosh index for a PO file.

    Given a PO file, enumerates all the strings, and creates a Whoosh index to
    be able to search later.
    """
    print("Create Whoosh index from a PO file")
    print("Use --help for assistance")

    start_time = datetime.datetime.now()

    try:
        locale.setlocale(locale.LC_ALL, '')
    except Exception as detail:
        print("Exception: " + str(detail))

    po_directory, debug_keyword, projects_names = read_parameters()
    indexCreator = IndexCreator(po_directory, debug_keyword, projects_names)
    indexCreator.create()
    indexCreator.process_projects()

    ctx = {
        'date': datetime.date.today().strftime("%d/%m/%Y"),
        'projects': str(indexCreator.projects),
        'words': locale.format_string("%d", indexCreator.words, grouping=True),
    }
    process_template("web/templates/statistics.mustache", "statistics.html",
                     ctx)

    ctx = {
        # This is the list of projects to display for the user to select.
        'options': sorted(indexCreator.options, key=lambda x: x.lower()),
    }
    process_template("web/templates/select-projects.mustache",
                     "select-projects.html", ctx)

    print(
        "Time used to create the index: {0} ".format(datetime.datetime.now() -
                                                     start_time))
class TestSearch(unittest.TestCase):

    PROJECT_GNOME = u"gnome"
    PROJECT_ABI = u"abiword"
    SC = True

    data_set = [
        u"Nox Documents Found",
        u"No s'han trobat",
        PROJECT_GNOME,
        SC,
        u"No Documents Found Today",
        u"No s'han trobat documents avui",
        PROJECT_GNOME,
        SC,
        u"No Documents Found late Yesterday",
        u"No s'han trobat documents ahir",
        PROJECT_GNOME,
        SC,
        u"Many documents found Yesterday",
        u"S'han trobat molts errors ahir",
        PROJECT_ABI,
        SC,
    ]

    FIELDS = 4

    def _create_index(self):
        """Creates an index in RAM with the entries from data_set array"""
        self.index = IndexCreator("")
        index = self.index.create(True)

        for idx in range(0, len(self.data_set), self.FIELDS):
            self.index.write_entry(
                source=self.data_set[idx + 0],
                target=self.data_set[idx + 1],
                comment=u"",
                context=u"",
                project=self.data_set[idx + 2],
                softcatala=self.data_set[idx + 3],
            )

        self.index.writer.commit()
        return index

    def test_query_simple_query_source(self):
        ix = self._create_index()
        search = Search(u"Today", None, u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")

    def test_query_simple_query_source_with_two_projects(self):
        ix = self._create_index()
        search = Search(u"Yesterday", None, u"gnome,abiword")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"], u"Many documents found Yesterday")
        self.assertEquals(results[1]["source"], u"No Documents Found late Yesterday")

    def test_query_simple_with_or_query_source(self):
        ix = self._create_index()
        search = Search(u"Today OR Yesterday", None, u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")
        self.assertEquals(results[1]["source"], u"No Documents Found late Yesterday")

    def test_query_simple_with_not_query_source(self):
        ix = self._create_index()
        search = Search(u"Documents NOT Yesterday", None, u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        for i in range(0, len(results)):
            self.assertFalse(u"Yesterday" in results[i]["source"])

    def test_query_simple_with_and_query_source(self):
        ix = self._create_index()
        search = Search(u"Documents AND late", None, u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"], u"No Documents Found late Yesterday")

    def test_query_source_target(self):
        ix = self._create_index()
        search = Search(u"Documents", u"Ahir", u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"], u"No Documents Found late Yesterday")

    def test_query_source_OR_target(self):
        ix = self._create_index()
        search = Search(u"Today OR No", u"trobat", u"gnome")
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")
        self.assertEquals(results[1]["source"], u"No Documents Found late Yesterday")

    def test_get_json(self):
        ix = self._create_index()
        search = Search(u"Today OR No", u"trobat", u"gnome")
        search.search(ix)
        results = search.get_json()

        json_array = json.loads(results)
        self.assertEquals(len(json_array), 2)
        self.assertEquals(json_array[0]["source"], u"No Documents Found Today")
        self.assertEquals(json_array[1]["source"], u"No Documents Found late Yesterday")
class TestSearch(unittest.TestCase):

    PROJECT_GNOME = u'gnome'
    PROJECT_ABI = u'abiword'
    PROJECT_MICROSOFT = u'Microsoft Terminology'
    SC = True
    NO_SC = False

    data_set = [
        u"Nox Documents Found", u"No s'han trobat", PROJECT_GNOME, SC,
        u"No Documents Found Today", u"No s'han trobat documents avui",
        PROJECT_GNOME, SC, u"No Documents Found late Yesterday",
        u"No s'han trobat documents ahir", PROJECT_GNOME, SC,
        u"Many documents found Yesterday", u"S'han trobat molts errors ahir",
        PROJECT_ABI, SC, u"Many documents found Yesterday Microsoft",
        u"S'han trobat molts errors ahir Microsoft", PROJECT_MICROSOFT, NO_SC
    ]

    FIELDS = 4

    def _create_index(self):
        '''Creates an index in RAM with the entries from data_set array'''
        self.index = IndexCreator('')
        index = self.index.create(True)

        for idx in range(0, len(self.data_set), self.FIELDS):
            self.index.write_entry(source=self.data_set[idx + 0],
                                   target=self.data_set[idx + 1],
                                   comment=u'',
                                   context=u'',
                                   project_name=self.data_set[idx + 2],
                                   project_id=self.data_set[idx + 2] + "_id",
                                   softcatala=self.data_set[idx + 3])

        self.index.writer.commit()
        return index

    def test_query_simple_query_source(self):
        ix = self._create_index()
        search = Search(u'Today', None, u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")

    def test_query_simple_query_source_with_two_projects(self):
        ix = self._create_index()
        search = Search(u'Yesterday', None, u'gnome_id,abiword_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"],
                          u"Many documents found Yesterday")
        self.assertEquals(results[1]["source"],
                          u"No Documents Found late Yesterday")

    def test_query_simple_query_source_with_three_projects_with_spaces(self):
        ix = self._create_index()
        search = Search(u'Yesterday', None,
                        u'gnome_id,abiword_id,Microsoft Terminology_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 3)
        self.assertEquals(results[0]["source"],
                          u"Many documents found Yesterday")
        self.assertEquals(results[1]["source"],
                          u"No Documents Found late Yesterday")
        self.assertEquals(results[2]["source"],
                          u"Many documents found Yesterday Microsoft")

    def test_query_simple_query_source_with_single_project_with_spaces(self):
        ix = self._create_index()
        search = Search(u'Yesterday', None, u'Microsoft Terminology_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"],
                          u"Many documents found Yesterday Microsoft")

    def test_query_simple_query_source_with_no_project(self):
        ix = self._create_index()
        search = Search(u'Yesterday', None, u'')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 3)
        self.assertEquals(results[0]["source"],
                          u"Many documents found Yesterday")
        self.assertEquals(results[1]["source"],
                          u"No Documents Found late Yesterday")
        self.assertEquals(results[2]["source"],
                          u"Many documents found Yesterday Microsoft")

    def test_query_simple_with_or_query_source(self):
        ix = self._create_index()
        search = Search(u'Today OR Yesterday', None, u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")
        self.assertEquals(results[1]["source"],
                          u"No Documents Found late Yesterday")

    def test_query_simple_with_not_query_source(self):
        ix = self._create_index()
        search = Search(u'Documents NOT Yesterday', None, u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        for i in range(0, len(results)):
            self.assertFalse(u'Yesterday' in results[i]["source"])

    def test_query_simple_with_and_query_source(self):
        ix = self._create_index()
        search = Search(u'Documents AND late', None, u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"],
                          u"No Documents Found late Yesterday")

    def test_query_source_target(self):
        ix = self._create_index()
        search = Search(u'Documents', u'Ahir', u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0]["source"],
                          u"No Documents Found late Yesterday")

    def test_query_source_OR_target(self):
        ix = self._create_index()
        search = Search(u'Today OR No', u'trobat', u'gnome_id')
        search.search(ix)
        results = search.get_results()

        self.assertEquals(len(results), 2)
        self.assertEquals(results[0]["source"], u"No Documents Found Today")
        self.assertEquals(results[1]["source"],
                          u"No Documents Found late Yesterday")

    def test_get_json(self):
        ix = self._create_index()
        search = Search(u'Today OR No', u'trobat', u'gnome_id')
        search.search(ix)
        results = search.get_json()

        json_array = json.loads(results)
        self.assertEquals(len(json_array), 2)
        self.assertEquals(json_array[0]["source"], u"No Documents Found Today")
        self.assertEquals(json_array[1]["source"],
                          u"No Documents Found late Yesterday")