Skip to content

Commit

Permalink
test case fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
karannaoh committed Aug 16, 2019
1 parent 0097788 commit ea3de1a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 23 deletions.
2 changes: 0 additions & 2 deletions guillotina/api/registry.py
Expand Up @@ -26,7 +26,6 @@

@configure.service(
context=IContainer, method='GET',
validate=True,
permission='guillotina.ReadConfiguration', name='@registry/{key}',
summary='Read container registry settings',
parameters=[{
Expand Down Expand Up @@ -80,7 +79,6 @@ async def __call__(self):
context=IContainer, method='GET',
permission='guillotina.ReadConfiguration', name='@registry',
summary='Read container registry settings',
validate=True,
responses={
"200": {
"description": "Successfully registered interface",
Expand Down
43 changes: 22 additions & 21 deletions guillotina/api/service.py
Expand Up @@ -49,29 +49,30 @@ def _validate_parameters(self):
if 'parameters' in self.__config__:
data = self.request.url.query
for parameter in self.__config__['parameters']:
if parameter['schema']['type'] == 'integer':
try:
int(data[parameter['name']])
except ValueError:
raise HTTPPreconditionFailed(content={
'reason': 'Schema validation error',
'message': 'can not convert {} to Int'.format(data[parameter['name']])
})
elif parameter['schema']['type'] == 'float':
try:
float(data[parameter['name']])
except ValueError:
if parameter['in'] == 'query':
if parameter['schema']['type'] == 'integer':
try:
int(data[parameter['name']])
except ValueError:
raise HTTPPreconditionFailed(content={
'reason': 'Schema validation error',
'message': 'can not convert {} to Int'.format(data[parameter['name']])
})
elif parameter['schema']['type'] == 'float':
try:
float(data[parameter['name']])
except ValueError:
raise HTTPPreconditionFailed(content={
'reason': 'Schema validation error',
'message': 'can not convert {} to Float'.format(data[parameter['name']])
})
else:
pass
if parameter['required'] and parameter['name'] not in data:
raise HTTPPreconditionFailed(content={
'reason': 'Schema validation error',
'message': 'can not convert {} to Float'.format(data[parameter['name']])
'message': '{} is required'.format(parameter['name'])
})
else:
pass
if parameter['required'] and parameter['name'] not in data:
raise HTTPPreconditionFailed(content={
'reason': 'Schema validation error',
'message': '{} is required'.format(parameter['name'])
})

@classmethod
def _get_validator(cls):
Expand Down Expand Up @@ -103,7 +104,7 @@ def _get_validator(cls):
async def validate(self):
self._validate_parameters()
schema, validator = self.__class__._get_validator()
if validator:
if validator and validator != self._sentinal:
try:
data = await self.request.json()
validator.validate(data)
Expand Down

0 comments on commit ea3de1a

Please sign in to comment.