示例#1
0
def _create_db_instance(conf):
    return database.SQLite(os.path.join(
        os.path.abspath(conf.get(Config.xlf_repo_path)),
        conf.get(Config.database_path)
    ))
示例#2
0
    def test_open_for_writing(self, open_func):
        db = database.SQLite("some_filename")
        db._open_for_writing("filename")

        open_func.assert_called_with("filename", "w", "utf-8")
示例#3
0
    def test_open_for_reading(self, open_func):
        db = database.SQLite("some_filename")
        db._open_for_reading("filename")

        open_func.assert_called_with("filename", "r")
示例#4
0
    def test_remove_old_unmapped_strings(self):
        db = database.SQLite("some_filename")

        def _connect(*args, **kwargs):
            db.dbh = sqlite3.connect(":memory:")

        def _disconnect(*args, **kwargs):
            db.dbh.close()

        db._connect = mock.Mock(side_effect=_connect)
        db.disconnect = mock.Mock(side_effect=_disconnect)

        db.connect()
        db.write_string_mapping_for_platform(
            "Mac", {
                "SomeString": "Translation for some string",
                "OtherString": "Translation for some other string",
            })

        cursor = db.dbh.cursor()
        self.assertEquals(
            cursor.execute("""
                select translation_key_no, translation_key
                from translation_keys""").fetchall(),
            [(2, u"OtherString"), (1, u"SomeString")],
        )

        cursor.execute("""
            delete from native_translations
            where translation_key_no = 1
        """)

        db.remove_old_unmapped_strings()

        self.assertEquals(
            cursor.execute("""
                select translation_key_no, translation_key
                from translation_keys""").fetchall(),
            [(2, u"OtherString"), (1, u"SomeString")],
        )

        cursor.execute("""
            update translation_keys
            set last_updated = datetime('now', '-89 days')
        """)

        db.remove_old_unmapped_strings()

        self.assertEquals(
            cursor.execute("""
                select translation_key_no, translation_key
                from translation_keys""").fetchall(),
            [(2, u"OtherString"), (1, u"SomeString")],
        )

        cursor.execute("""
            update translation_keys
            set last_updated = datetime('now', '-91 days')
        """)

        db.remove_old_unmapped_strings()

        self.assertEquals(
            cursor.execute("""
                select translation_key_no, translation_key
                from translation_keys""").fetchall(),
            [(2, u"OtherString")],
        )

        db.disconnect()
示例#5
0
    def test_write_string_mapping_for_platform(self):
        db = database.SQLite("some_filename")

        def _connect(*args, **kwargs):
            db.dbh = sqlite3.connect(":memory:")

        def _disconnect(*args, **kwargs):
            db.dbh.close()

        db._connect = mock.Mock(side_effect=_connect)
        db.disconnect = mock.Mock(side_effect=_disconnect)
        db._get_current_time = mock.Mock(
            return_value="datetime('2010-12-02 02:20:00')")

        db.connect()
        db.write_string_mapping_for_platform(
            "Mac", {
                "SomeString": "Translation for some string",
                "OtherString": "Translation for some other string",
            })

        cursor = db.dbh.cursor()
        self.assertEquals(
            cursor.execute("select * from translation_keys").fetchall(),
            [(1, u"SomeString", u"2010-12-02 02:20:00"),
             (2, u"OtherString", u"2010-12-02 02:20:00")],
        )

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [(1, 1, 1, u"Translation for some string"),
             (2, 2, 1, u"Translation for some other string")],
        )

        db._get_current_time = mock.Mock(
            return_value="datetime('2010-12-02 02:21:00')")

        db.write_string_mapping_for_platform(
            "Win", {
                "SomeString": "Translation for some string",
                "OtherString": "Translation for some other string",
            })

        self.assertEquals(
            cursor.execute("select * from translation_keys").fetchall(),
            [(1, u"SomeString", u"2010-12-02 02:21:00"),
             (2, u"OtherString", u"2010-12-02 02:21:00")],
        )

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [(1, 1, 1, u"Translation for some string"),
             (2, 2, 1, u"Translation for some other string"),
             (3, 1, 2, u"Translation for some string"),
             (4, 2, 2, u"Translation for some other string")],
        )

        db._get_current_time = mock.Mock(
            return_value="datetime('2010-12-02 02:22:00')")
        db.write_string_mapping_for_platform(
            "Mac", {
                "SomeString": "New translation for some string",
                "OtherString": "Translation for some other string",
            })

        self.assertEquals(
            cursor.execute("select * from translation_keys").fetchall(),
            [(1, u"SomeString", u"2010-12-02 02:22:00"),
             (2, u"OtherString", u"2010-12-02 02:21:00")],
        )

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [(1, 1, 1, u"New translation for some string"),
             (2, 2, 1, u"Translation for some other string"),
             (3, 1, 2, u"Translation for some string"),
             (4, 2, 2, u"Translation for some other string")],
        )

        db._get_current_time = mock.Mock(
            return_value="datetime('2010-12-02 02:23:00')")
        db.write_string_mapping_for_platform(
            "Win", {
                "SomeString": "New translation for some string",
            })

        self.assertEquals(
            cursor.execute("select * from translation_keys").fetchall(),
            [(1, u"SomeString", u"2010-12-02 02:23:00"),
             (2, u"OtherString", u"2010-12-02 02:23:00")],
        )

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [(1, 1, 1, u"New translation for some string"),
             (2, 2, 1, u"Translation for some other string"),
             (3, 1, 2, u"New translation for some string")],
        )

        db.disconnect()
示例#6
0
    def test_write_string_mapping_for_platform_translates_params(self):
        db = database.SQLite("some_filename")

        def _connect(*args, **kwargs):
            db.dbh = sqlite3.connect(":memory:")

        def _disconnect(*args, **kwargs):
            db.dbh.close()

        db._connect = mock.Mock(side_effect=_connect)
        db.disconnect = mock.Mock(side_effect=_disconnect)
        db._get_current_time = mock.Mock(
            return_value="datetime('2010-12-02 02:20:00')")

        db.connect()
        db.write_string_mapping_for_platform(
            "Mac", {
                "SomeString": "% 03d of %03.3lld for {0} %@",
            })

        cursor = db.dbh.cursor()
        self.assertEquals(
            cursor.execute("select * from translation_keys").fetchall(),
            [
                (1, u"SomeString", u"2010-12-02 02:20:00"),
            ],
        )

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [
                (1, 1, 1, "% 03d of %03.3lld for {0} %@"),
            ],
        )

        self.assertEquals(
            cursor.execute("select * from replaced_params").fetchall(),
            [
                (1, 1, 1, 0, u"% 03d"),
                (2, 1, 1, 1, u"%03.3lld"),
                (3, 1, 1, 2, u"{0}"),
                (4, 1, 1, 3, u"%@"),
            ],
        )

        db.write_string_mapping_for_platform("Mac", {
            "SomeString": "% 03d of %03.3lld",
        })

        self.assertEquals(
            cursor.execute("select * from native_translations").fetchall(),
            [
                (1, 1, 1, "% 03d of %03.3lld"),
            ],
        )

        self.assertEquals(
            cursor.execute("select * from replaced_params").fetchall(),
            [
                (1, 1, 1, 0, u"% 03d"),
                (2, 1, 1, 1, u"%03.3lld"),
            ],
        )

        db.disconnect()