disallow empty metadata dict in favour of null

This commit is contained in:
Scott Sadler 2016-11-28 17:31:35 +01:00
parent 71dcee019f
commit a6eb52d76d
3 changed files with 13 additions and 2 deletions

View File

@ -245,6 +245,7 @@ definitions:
- type: object - type: object
description: | description: |
User provided transaction metadata. This field may be ``null`` or may User provided transaction metadata. This field may be ``null`` or may
contain an object with freeform metadata. contain an non empty object with freeform metadata.
additionalProperties: true additionalProperties: true
minProperties: 1
- type: 'null' - type: 'null'

View File

@ -301,7 +301,7 @@ Metadata
-------- --------
User provided transaction metadata. This field may be ``null`` or may User provided transaction metadata. This field may be ``null`` or may
contain an object with freeform metadata. contain an non empty object with freeform metadata.

View File

@ -16,6 +16,16 @@ def test_validate_transaction_signed_transfer(signed_transfer_tx):
validate_transaction_schema(signed_transfer_tx.to_dict()) validate_transaction_schema(signed_transfer_tx.to_dict())
def test_validate_fails_metadata_empty_dict(create_tx):
create_tx.metadata = {'a': 1}
validate_transaction_schema(create_tx.to_dict())
create_tx.metadata = None
validate_transaction_schema(create_tx.to_dict())
create_tx.metadata = {}
with raises(SchemaValidationError):
validate_transaction_schema(create_tx.to_dict())
def test_validation_fails(): def test_validation_fails():
with raises(SchemaValidationError): with raises(SchemaValidationError):
validate_transaction_schema({}) validate_transaction_schema({})