Skip to content

Commit e185828

Browse files
committed
Fix
1 parent ff4b114 commit e185828

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

open_dubbing/utterance.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -218,16 +218,29 @@ def _create_new_utterance(self, update, new_id):
218218
return new_utterance
219219

220220
def update_utterances(self, utterance_master, utterance_update):
221-
id_to_update = {}
221+
id_to_update_or_delete = {}
222+
id_to_create = {}
222223
utterance_new = []
223224

224225
for utterance in utterance_update:
225226
id = utterance["id"]
226-
id_to_update[id] = utterance
227+
operation = utterance["operation"]
228+
if operation == "create":
229+
id_to_create[id] = utterance
230+
else:
231+
id_to_update_or_delete[id] = utterance
227232

228233
for utterance in utterance_master:
229234
id = utterance["id"]
230-
update = id_to_update.get(id, None)
235+
236+
create = id_to_create.get(id, None)
237+
if create:
238+
new_id = self._get_highest_id(utterance_master) + 1
239+
new_utterance = self._create_new_utterance(create, new_id)
240+
if new_utterance:
241+
utterance_new.append(new_utterance)
242+
243+
update = id_to_update_or_delete.get(id, None)
231244
if not update:
232245
utterance_new.append(utterance)
233246
continue
@@ -239,13 +252,6 @@ def update_utterances(self, utterance_master, utterance_update):
239252
if operation == "delete":
240253
continue
241254

242-
if operation == "create":
243-
new_id = self._get_highest_id(utterance_master) + 1
244-
utterance = self._create_new_utterance(update, new_id)
245-
if utterance:
246-
utterance_new.append(utterance)
247-
continue
248-
249255
if operation != "update":
250256
raise ValueError(f"Invalid operation {operation}")
251257

tests/utterance_test.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ def test_update_utterances_operation_create(self):
210210
)
211211
create_utterances = [
212212
{
213-
"id": 1, # Create after ID
213+
"id": 1, # Create before ID
214214
"operation": "create",
215215
"translated_text": "Bon dia",
216216
"speaker_id": "SPEAKER_01",
@@ -223,8 +223,8 @@ def test_update_utterances_operation_create(self):
223223
new_utterances = utterance.update_utterances(master, create_utterances)
224224
print(f"new_utterances: {new_utterances}")
225225
assert len(new_utterances) == 3
226-
227-
# assert new_utterances[0]["id"] == 2
226+
assert new_utterances[0]["id"] == 3
227+
assert new_utterances[1]["id"] == 1
228228

229229
def test_update_utterances_operation_delete(self):
230230

0 commit comments

Comments
 (0)