from sakia.data.repositories import SourcesRepo from sakia.data.entities import Source def test_add_get_drop_source(meta_repo): sources_repo = SourcesRepo(meta_repo.conn) sources_repo.insert( Source( "testcurrency", "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn", "0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843", 3, "T", 1565, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", None, ) ) source = sources_repo.get_one( identifier="0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843" ) assert source.currency == "testcurrency" assert source.pubkey == "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn" assert source.type == "T" assert source.amount == 1565 assert source.base == 1 assert source.noffset == 3 sources_repo.drop(source) source = sources_repo.get_one( identifier="0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843" ) assert source is None def test_add_get_multiple_source(meta_repo): sources_repo = SourcesRepo(meta_repo.conn) sources_repo.insert( Source( "testcurrency", "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn", "0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843", 3, "T", 1565, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", None, ) ) sources_repo.insert( Source( "testcurrency", "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn", "2pyPsXM8UCB88jP2NRM4rUHxb63qm89JMEWbpoRrhyDK", 22635, "D", 726946, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", None, ) ) sources = sources_repo.get_all( currency="testcurrency", pubkey="FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn" ) assert "testcurrency" in [s.currency for s in sources] assert "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn" in [s.pubkey for s in sources] assert "2pyPsXM8UCB88jP2NRM4rUHxb63qm89JMEWbpoRrhyDK" in [ s.identifier for s in sources ] assert "T" in [s.type for s in sources] assert "D" in [s.type for s in sources] assert 726946 in [s.amount for s in sources] assert 1565 in [s.amount for s in sources] assert "0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843" in [ s.identifier for s in sources ] def test_consume_restore_source(meta_repo): tx_hash = "0835CEE9B4766B3866DD942971B3EE2CF953599EB9D35BFD5F1345879498B843" sources_repo = SourcesRepo(meta_repo.conn) sources_repo.insert( Source( "testcurrency", "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn", tx_hash, 3, "T", 1565, 1, "SIG(FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn)", None, ) ) source = sources_repo.get_one(identifier=tx_hash) assert source.currency == "testcurrency" assert source.pubkey == "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn" assert source.type == "T" assert source.amount == 1565 assert source.base == 1 assert source.noffset == 3 sources_repo.consume(source, tx_hash) source = sources_repo.get_one(identifier=tx_hash) assert source is None sources_repo.restore_all(tx_hash) source = sources_repo.get_one(identifier=tx_hash) assert source.currency == "testcurrency" assert source.pubkey == "FADxcH5LmXGmGFgdixSes6nWnC4Vb4pRUBYT81zQRhjn" assert source.type == "T" assert source.amount == 1565 assert source.base == 1 assert source.noffset == 3