@pytest.mark.django_db
def test_save_store_fs_change_pootle_path_or_store(po_directory, tp0_store_fs):
 fs_store = tp0_store_fs
 store = fs_store.store
 other_path = '/en/project0/other.po'
 fs_store.pootle_path = other_path
 with pytest.raises(ValidationError):
  fs_store.save()
 fs_store.store = None
 fs_store.save()
 assert (fs_store.store is None)
 assert (fs_store.pootle_path == other_path)
 fs_store.store = store
 with pytest.raises(ValidationError):
  fs_store.save()
 fs_store.pootle_path = store.pootle_path
 fs_store.save()
 assert (fs_store.store == store)
 assert (fs_store.pootle_path == store.pootle_path)

@ pytest . mark . django_db def test_save_store_fs_change_pootle_path_or_store ( po_directory , tp0_store_fs ) : fs_store = tp0_store_fs store = fs_store . store other_path = '/en/project0/other.po' fs_store . pootle_path = other_path with pytest . raises ( ValidationError ) : fs_store . save ( ) fs_store . store = None fs_store . save ( ) assert ( fs_store . store is None ) assert ( fs_store . pootle_path == other_path ) fs_store . store = store with pytest . raises ( ValidationError ) : fs_store . save ( ) fs_store . pootle_path = store . pootle_path fs_store . save ( ) assert ( fs_store . store == store ) assert ( fs_store . pootle_path == store . pootle_path )
you cant change a pootle_path if a store is associated unless you also remove the store association - and vice versa .