From 9adf970522fe265e46439a532e182c7fde8dac93 Mon Sep 17 00:00:00 2001 From: vtexier <vit@free.fr> Date: Wed, 25 Mar 2020 17:43:02 +0100 Subject: [PATCH] [enh] #798 add used_by property in sources table --- src/sakia/data/entities/source.py | 3 ++- .../007_add_sources_used_by_property.sql | 5 +++++ src/sakia/data/repositories/meta.py | 14 +++++++++++++- src/sakia/services/sources.py | 1 + tests/unit/data/test_sources_repo.py | 3 +++ 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/sakia/data/repositories/007_add_sources_used_by_property.sql diff --git a/src/sakia/data/entities/source.py b/src/sakia/data/entities/source.py index 007b94df..8c5c0b1c 100644 --- a/src/sakia/data/entities/source.py +++ b/src/sakia/data/entities/source.py @@ -10,4 +10,5 @@ class Source: type = attr.ib(converter=str, validator=lambda i, a, s: s == "T" or s == "D") amount = attr.ib(converter=int, hash=False) base = attr.ib(converter=int, hash=False) - conditions = attr.ib(converter=str) + conditions = attr.ib(converter=str, hash=False) + used_by = attr.ib(converter=str, hash=False, default=None) diff --git a/src/sakia/data/repositories/007_add_sources_used_by_property.sql b/src/sakia/data/repositories/007_add_sources_used_by_property.sql new file mode 100644 index 00000000..18c783a2 --- /dev/null +++ b/src/sakia/data/repositories/007_add_sources_used_by_property.sql @@ -0,0 +1,5 @@ +BEGIN TRANSACTION; + +ALTER TABLE sources ADD COLUMN used_by VARCHAR(255) default null; + +COMMIT; diff --git a/src/sakia/data/repositories/meta.py b/src/sakia/data/repositories/meta.py index 1c25c9d8..3f932843 100644 --- a/src/sakia/data/repositories/meta.py +++ b/src/sakia/data/repositories/meta.py @@ -7,7 +7,7 @@ from .connections import ConnectionsRepo from .identities import IdentitiesRepo from .blockchains import BlockchainsRepo from .certifications import CertificationsRepo -from .transactions import TransactionsRepo, Transaction +from .transactions import TransactionsRepo from .dividends import DividendsRepo from .nodes import NodesRepo, Node from .sources import SourcesRepo @@ -90,6 +90,7 @@ class SakiaDatabase: self.drop_incorrect_nodes, self.insert_last_mass_attribute, self.add_sources_conditions_property, + self.add_sources_used_by_property, ] def upgrade_database(self, to=0): @@ -223,6 +224,17 @@ class SakiaDatabase: with self.conn: self.conn.executescript(sql_file.read()) + def add_sources_used_by_property(self): + self._logger.debug("Add sources used_by property") + sql_file = open( + os.path.join( + os.path.dirname(__file__), "007_add_sources_used_by_property.sql" + ), + "r", + ) + with self.conn: + self.conn.executescript(sql_file.read()) + def version(self): with self.conn: c = self.conn.execute("SELECT * FROM meta WHERE id=1") diff --git a/src/sakia/services/sources.py b/src/sakia/services/sources.py index 23a5a3c5..993706fa 100644 --- a/src/sakia/services/sources.py +++ b/src/sakia/services/sources.py @@ -267,6 +267,7 @@ class SourcesServices(QObject): amount=source["amount"], base=source["base"], conditions=source["conditions"], + used_by=None, ) self._sources_processor.insert(entity) except AttributeError as e: diff --git a/tests/unit/data/test_sources_repo.py b/tests/unit/data/test_sources_repo.py index a1f43c0e..5bc58cbe 100644 --- a/tests/unit/data/test_sources_repo.py +++ b/tests/unit/data/test_sources_repo.py @@ -14,6 +14,7 @@ def test_add_get_drop_source(meta_repo): 1565, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", + None, ) ) source = sources_repo.get_one( @@ -45,6 +46,7 @@ def test_add_get_multiple_source(meta_repo): 1565, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", + None, ) ) sources_repo.insert( @@ -57,6 +59,7 @@ def test_add_get_multiple_source(meta_repo): 726946, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", + None, ) ) sources = sources_repo.get_all( -- GitLab