Add required properties field to rules schema

Added an extra field in the JSON schema for mapping rules,
that specifies which properites are required.

There is a specific remote rule that may only have a type key.
This ensures that no other keys are specified.

Change-Id: I80f0e5b4bdc275db2d6cd06a81968cef33423a4d
This commit is contained in:
Steve Martinelli 2014-01-29 14:44:34 -06:00
parent 4fc6e97097
commit 77c0fe4a1c
3 changed files with 43 additions and 1 deletions

View File

@ -51,8 +51,8 @@ MAPPING_SCHEMA = {
"definitions": {
"empty": {
"type": "object",
"required": ['type'],
"properties": {
"required": ['type'],
"type": {
"type": "string"
},

View File

@ -209,3 +209,35 @@ MAPPING_MISSING_LOCAL = {
}
]
}
MAPPING_WRONG_TYPE = {
"rules": [
{
"local": [
{
"user": "$1"
}
],
"remote": [
{
"not_type": "UserName"
}
]
}
]
}
MAPPING_MISSING_TYPE = {
"rules": [
{
"local": [
{
"user": "$1"
}
],
"remote": [
{}
]
}
]
}

View File

@ -551,3 +551,13 @@ class MappingTests(FederationTests):
url = self.MAPPING_URL + uuid.uuid4().hex
self.put(url, expected_status=400,
body={'mapping': mapping_fixtures.MAPPING_MISSING_LOCAL})
def test_create_mapping_missing_type(self):
url = self.MAPPING_URL + uuid.uuid4().hex
self.put(url, expected_status=400,
body={'mapping': mapping_fixtures.MAPPING_MISSING_TYPE})
def test_create_mapping_wrong_type(self):
url = self.MAPPING_URL + uuid.uuid4().hex
self.put(url, expected_status=400,
body={'mapping': mapping_fixtures.MAPPING_WRONG_TYPE})