def test_mozlang_update(tp0): mozlang = Format.objects.get(name="lang") tp0.project.filetypes.add(mozlang) foo_lang = StoreDBFactory( name="foo.lang", filetype=mozlang, parent=tp0.directory, translation_project=tp0) store0 = tp0.stores.get(name="store0.po") # deserialize as source foo_lang.update(store0.deserialize(store0.serialize())) # get serialized lang store serialized = foo_lang.serialize() # mark a translated unit as fuzzy translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # source is translated old_ttk = foo_lang.deserialize(serialized) foo_lang.update(old_ttk) # unit is still fuzzy translated.refresh_from_db() assert translated.state == FUZZY # source target changes state also gets updated old_ttk.findid(translated.getid()).target = "something else {ok}" foo_lang.update(old_ttk, store_revision=translated.revision) translated.refresh_from_db() assert translated.state == TRANSLATED translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # set target == "" > untranslated ttk = foo_lang.deserialize(serialized) ttkunit = ttk.findid(translated.getid()) ttkunit.target = "" foo_lang.update(ttk) # unit stays FUZZY translated = Unit.objects.get(pk=translated.pk) assert translated.state == FUZZY
def test_delete_mark_obsolete(project0_disk, store0): """Tests that the in-DB Store and Directory are marked as obsolete after the on-disk file ceased to exist. Refs. #269. """ tp = TranslationProjectFactory( project=project0_disk, language=LanguageDBFactory() ) store = StoreDBFactory(translation_project=tp, parent=tp.directory) store.update(store.deserialize(store0.serialize())) store.sync() pootle_path = store.pootle_path # Remove on-disk file os.remove(store.file.path) # Update stores by rescanning TP tp.scan_files() # Now files that ceased to exist should be marked as obsolete updated_store = Store.objects.get(pootle_path=pootle_path) assert updated_store.obsolete # The units they contained are obsolete too assert not updated_store.units.exists() assert updated_store.unit_set.filter(state=OBSOLETE).exists()
def test_delete_mark_obsolete(project0_nongnu, project0, store0): """Tests that the in-DB Store and Directory are marked as obsolete after the on-disk file ceased to exist. Refs. #269. """ tp = TranslationProjectFactory( project=project0, language=LanguageDBFactory()) store = StoreDBFactory( translation_project=tp, parent=tp.directory) store.update(store.deserialize(store0.serialize())) store.sync() pootle_path = store.pootle_path # Remove on-disk file os.remove(store.file.path) # Update stores by rescanning TP tp.scan_files() # Now files that ceased to exist should be marked as obsolete updated_store = Store.objects.get(pootle_path=pootle_path) assert updated_store.obsolete # The units they contained are obsolete too assert not updated_store.units.exists() assert updated_store.unit_set.filter(state=OBSOLETE).exists()
def test_mozlang_update(tp0): mozlang = Format.objects.get(name="lang") tp0.project.filetypes.add(mozlang) foo_lang = StoreDBFactory(name="foo.lang", filetype=mozlang, parent=tp0.directory, translation_project=tp0) store0 = tp0.stores.get(name="store0.po") # deserialize as source foo_lang.update(store0.deserialize(store0.serialize())) # get serialized lang store serialized = foo_lang.serialize() # mark a translated unit as fuzzy translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # source is translated old_ttk = foo_lang.deserialize(serialized) foo_lang.update(old_ttk) # unit is still fuzzy translated.refresh_from_db() assert translated.state == FUZZY # source target changes state also gets updated old_ttk.findid(translated.getid()).target = "something else {ok}" foo_lang.update(old_ttk, store_revision=translated.revision) translated.refresh_from_db() assert translated.state == TRANSLATED translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # set target == "" > untranslated ttk = foo_lang.deserialize(serialized) ttkunit = ttk.findid(translated.getid()) ttkunit.target = "" foo_lang.update(ttk) # unit stays FUZZY translated = Unit.objects.get(pk=translated.pk) assert translated.state == FUZZY
def ordered_po(test_fs, tp0): """Create a store with ordered units.""" store = StoreDBFactory(name="ordered.po", translation_project=tp0, parent=tp0.directory) with test_fs.open("data/po/ordered.po") as src: store.update(store.deserialize(src.read())) return store
def ordered_po(test_fs, tp0): """Create a store with ordered units.""" store = StoreDBFactory( name="ordered.po", translation_project=tp0, parent=tp0.directory) with test_fs.open("data/po/ordered.po") as src: store.update(store.deserialize(src.read())) return store
def numbered_po(test_fs, project0): """Create a store with numbered units.""" tp = TranslationProjectFactory(project=project0, language=LanguageDBFactory()) store = StoreDBFactory(name="numbered.po", translation_project=tp, parent=tp.directory) with test_fs.open("data/po/1234.po") as src: store.update(store.deserialize(src.read())) return store
def test_mozlang_update(tp0): mozlang = Format.objects.get(name="lang") tp0.project.filetypes.add(mozlang) foo_lang = StoreDBFactory( name="foo.lang", filetype=mozlang, parent=tp0.directory, translation_project=tp0) store0 = tp0.stores.get(name="store0.po") # deserialize as source foo_lang.update(store0.deserialize(store0.serialize())) # get serialized lang store serialized = foo_lang.serialize() # mark a translated unit as fuzzy translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # source is translated foo_lang.update(foo_lang.deserialize(serialized)) # unit is set back to TRANSLATED translated = Unit.objects.get(pk=translated.pk) assert translated.state == TRANSLATED translated = foo_lang.units.filter(state=TRANSLATED).first() translated.state = FUZZY translated.save() # set target == "" > untranslated ttk = foo_lang.deserialize(serialized) ttkunit = ttk.findid(translated.getid()) ttkunit.target = "" foo_lang.update(ttk) # unit stays FUZZY translated = Unit.objects.get(pk=translated.pk) assert translated.state == FUZZY
def numbered_po(test_fs, project0): """Create a store with numbered units.""" tp = TranslationProjectFactory( project=project0, language=LanguageDBFactory()) store = StoreDBFactory( name="numbered.po", translation_project=tp, parent=tp.directory) with test_fs.open("data/po/1234.po") as src: store.update(store.deserialize(src.read())) return store
def test_sync(project0_nongnu, project0, store0): """Tests that the new on-disk file is created after sync for existing in-DB Store if the corresponding on-disk file ceased to exist. """ tp = TranslationProjectFactory(project=project0, language=LanguageDBFactory()) store = StoreDBFactory(translation_project=tp, parent=tp.directory) store.update(store.deserialize(store0.serialize())) assert not store.file.exists() store.sync() assert store.file.exists() os.remove(store.file.path) assert not store.file.exists() store.sync() assert store.file.exists()
def test_sync(project0_nongnu, project0, store0): """Tests that the new on-disk file is created after sync for existing in-DB Store if the corresponding on-disk file ceased to exist. """ tp = TranslationProjectFactory( project=project0, language=LanguageDBFactory()) store = StoreDBFactory( translation_project=tp, parent=tp.directory) store.update(store.deserialize(store0.serialize())) assert not store.file.exists() store.sync() assert store.file.exists() os.remove(store.file.path) assert not store.file.exists() store.sync() assert store.file.exists()
def test_mozlang_sync(tp0): mozlang = Format.objects.get(name="lang") tp0.project.filetypes.add(mozlang) foo_lang = StoreDBFactory(name="foo.lang", filetype=mozlang, parent=tp0.directory, translation_project=tp0) store0 = tp0.stores.get(name="store0.po") # deserialize as source foo_lang.update(store0.deserialize(store0.serialize())) # mark the unit as fuzzy unit = foo_lang.units.filter(state=TRANSLATED).first() unit.markfuzzy() unit.save() ttk = foo_lang.deserialize(foo_lang.serialize()) ttk_unit = ttk.findid(unit.getid()) assert not ttk_unit.istranslated()
def test_mozlang_sync(tp0): mozlang = Format.objects.get(name="lang") tp0.project.filetypes.add(mozlang) foo_lang = StoreDBFactory( name="foo.lang", filetype=mozlang, parent=tp0.directory, translation_project=tp0) store0 = tp0.stores.get(name="store0.po") # deserialize as source foo_lang.update(store0.deserialize(store0.serialize())) # mark the unit as fuzzy unit = foo_lang.units.filter(state=TRANSLATED).first() unit.markfuzzy() unit.save() ttk = foo_lang.deserialize(foo_lang.serialize()) ttk_unit = ttk.findid(unit.getid()) assert not ttk_unit.istranslated()