Skip to content

Commit 87d4db2

Browse files
b-ryanmdelaurentis
authored andcommitted
Add additionalProperties support to Schema (singer-io#53)
1 parent 2a04b3e commit 87d4db2

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

singer/schema.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
'multipleOf',
1616
'maxLength',
1717
'format',
18-
'type'
18+
'type',
19+
'additionalProperties',
1920
]
2021

2122

@@ -30,7 +31,7 @@ class Schema(object): # pylint: disable=too-many-instance-attributes
3031
def __init__(self, type=None, format=None, properties=None, items=None,
3132
selected=None, inclusion=None, description=None, minimum=None,
3233
maximum=None, exclusiveMinimum=None, exclusiveMaximum=None,
33-
multipleOf=None, maxLength=None):
34+
multipleOf=None, maxLength=None, additionalProperties=None):
3435

3536
self.type = type
3637
self.properties = properties
@@ -45,6 +46,7 @@ def __init__(self, type=None, format=None, properties=None, items=None,
4546
self.multipleOf = multipleOf
4647
self.maxLength = maxLength
4748
self.format = format
49+
self.additionalProperties = additionalProperties
4850

4951
def __str__(self):
5052
return json.dumps(self.to_dict())

tests/test_schema.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class TestSchema(unittest.TestCase):
2727
'an_array': array_dict
2828
},
2929
'inclusion': 'whatever',
30+
'additionalProperties': True,
3031
}
3132

3233
# Schema object forms of the same schemas as above
@@ -39,7 +40,8 @@ class TestSchema(unittest.TestCase):
3940
object_obj = Schema(type='object',
4041
properties={'a_string': string_obj,
4142
'an_array': array_obj},
42-
inclusion='whatever')
43+
inclusion='whatever',
44+
additionalProperties=True)
4345

4446
def test_string_to_dict(self):
4547
self.assertEquals(self.string_dict, self.string_obj.to_dict())

0 commit comments

Comments
 (0)