From 98adcc069202f35d38a36cfc6ae69df6443ff6e4 Mon Sep 17 00:00:00 2001 From: Vlad <55182132+titov-vv@users.noreply.github.com> Date: Fri, 24 May 2024 12:29:24 +0100 Subject: [PATCH] Fixed mistake in JalDB.locate_operation(). Trades with no number are allowed. --- jal/db/db.py | 5 ++++- jal/db/operations.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/jal/db/db.py b/jal/db/db.py index 4421536d..86da9a10 100644 --- a/jal/db/db.py +++ b/jal/db/db.py @@ -374,7 +374,10 @@ def locate_operation(self, table_name, fields, data) -> int: return 0 for field in validation_fields: if field not in data: - data[field] = fields[field]['default'] # set to default value + if 'default' in fields[field]: + data[field] = fields[field]['default'] # set to default value + else: + raise KeyError(f"Mandatory field '{field}' for table '{table_name}' is missing in {data} and have no default value") if data[field] is None: query_text += f"{field} IS NULL AND " else: diff --git a/jal/db/operations.py b/jal/db/operations.py index f23eb7a5..d648afd4 100644 --- a/jal/db/operations.py +++ b/jal/db/operations.py @@ -635,7 +635,7 @@ class Trade(LedgerTransaction): _db_fields = { "timestamp": {"mandatory": True, "validation": True}, "settlement": {"mandatory": False, "validation": False}, - "number": {"mandatory": False, "validation": True}, + "number": {"mandatory": False, "validation": True, "default": ''}, "account_id": {"mandatory": True, "validation": True}, "asset_id": {"mandatory": True, "validation": True}, "qty": {"mandatory": True, "validation": True},