Merge pull request #1018 from bigchaindb/change-tx-version

Change version in tx model to 0.9
This commit is contained in:
libscott 2017-01-13 12:07:23 +01:00 committed by GitHub
commit e08bf52fa7
3 changed files with 25 additions and 9 deletions

View File

@ -55,9 +55,8 @@ properties:
See: `Metadata`_. See: `Metadata`_.
version: version:
type: integer type: string
minimum: 1 pattern: "^0\\."
maximum: 1
description: | description: |
BigchainDB transaction schema version. BigchainDB transaction schema version.
definitions: definitions:

View File

@ -10,6 +10,7 @@ from bigchaindb.common.exceptions import (KeypairMismatchException,
InvalidHash, InvalidSignature, InvalidHash, InvalidSignature,
AmountError, AssetIdMismatch) AmountError, AssetIdMismatch)
from bigchaindb.common.utils import serialize, gen_timestamp from bigchaindb.common.utils import serialize, gen_timestamp
import bigchaindb.version
class Input(object): class Input(object):
@ -409,7 +410,7 @@ class Transaction(object):
TRANSFER = 'TRANSFER' TRANSFER = 'TRANSFER'
GENESIS = 'GENESIS' GENESIS = 'GENESIS'
ALLOWED_OPERATIONS = (CREATE, TRANSFER, GENESIS) ALLOWED_OPERATIONS = (CREATE, TRANSFER, GENESIS)
VERSION = 1 VERSION = bigchaindb.version.__version__
def __init__(self, operation, asset, inputs=None, outputs=None, def __init__(self, operation, asset, inputs=None, outputs=None,
metadata=None, version=None): metadata=None, version=None):

View File

@ -672,7 +672,7 @@ def test_create_create_transaction_single_io(user_output, user_pub, data):
} }
], ],
'operation': 'CREATE', 'operation': 'CREATE',
'version': 1, 'version': Transaction.VERSION,
} }
tx = Transaction.create([user_pub], [([user_pub], 1)], metadata=data, tx = Transaction.create([user_pub], [([user_pub], 1)], metadata=data,
@ -710,7 +710,7 @@ def test_create_create_transaction_multiple_io(user_output, user2_output, user_p
}, },
'inputs': [input], 'inputs': [input],
'operation': 'CREATE', 'operation': 'CREATE',
'version': 1 'version': Transaction.VERSION
} }
tx = Transaction.create([user_pub, user2_pub], tx = Transaction.create([user_pub, user2_pub],
[([user_pub], 1), ([user2_pub], 1)], [([user_pub], 1), ([user2_pub], 1)],
@ -757,7 +757,7 @@ def test_create_create_transaction_threshold(user_pub, user2_pub, user3_pub,
}, },
], ],
'operation': 'CREATE', 'operation': 'CREATE',
'version': 1 'version': Transaction.VERSION
} }
tx = Transaction.create([user_pub], [([user_pub, user2_pub], 1)], tx = Transaction.create([user_pub], [([user_pub, user2_pub], 1)],
metadata=data, asset=data) metadata=data, asset=data)
@ -842,7 +842,7 @@ def test_create_transfer_transaction_single_io(tx, user_pub, user2_pub,
} }
], ],
'operation': 'TRANSFER', 'operation': 'TRANSFER',
'version': 1 'version': Transaction.VERSION
} }
inputs = tx.to_inputs([0]) inputs = tx.to_inputs([0])
transfer_tx = Transaction.transfer(inputs, [([user2_pub], 1)], transfer_tx = Transaction.transfer(inputs, [([user2_pub], 1)],
@ -900,7 +900,7 @@ def test_create_transfer_transaction_multiple_io(user_pub, user_priv,
} }
], ],
'operation': 'TRANSFER', 'operation': 'TRANSFER',
'version': 1 'version': Transaction.VERSION
} }
transfer_tx = Transaction.transfer(tx.to_inputs(), transfer_tx = Transaction.transfer(tx.to_inputs(),
@ -954,8 +954,24 @@ def test_cant_add_empty_output():
def test_cant_add_empty_input(): def test_cant_add_empty_input():
import bigchaindb.version
from bigchaindb.common.transaction import Transaction from bigchaindb.common.transaction import Transaction
tx = Transaction(Transaction.CREATE, None) tx = Transaction(Transaction.CREATE, None)
with raises(TypeError): with raises(TypeError):
tx.add_input(None) tx.add_input(None)
def test_validate_version(utx):
import bigchaindb.version
from .utils import validate_transaction_model
from bigchaindb.common.exceptions import SchemaValidationError
assert utx.version == bigchaindb.version.__version__
validate_transaction_model(utx)
# At version 1, transaction version will break step with server version.
utx.version = '1.0.0'
with raises(SchemaValidationError):
validate_transaction_model(utx)