def test_validate(self): validate_json = self.load_payload('validate_json') del validate_json['dependencies'] result = v.validate( self.factory.post('/yangvalidator/v2/validate', validate_json, content_type='application/json'), 'test') self.assertEqual(result.status_code, 200) parsers = ['confd', 'pyang', 'yangdump-pro', 'yanglint'] data = json.loads(result.content) self.assertIn('output', data) self.assertIn('*****@*****.**', data['output']) self.assertEqual(data['output']['xym'], 'test') self.assertEqual( data['output']['*****@*****.**'].get('confd'), 'test') self.assertEqual( data['output']['*****@*****.**'].get( 'yangdump-pro'), 'test') self.assertEqual( data['output']['*****@*****.**'].get( 'pyang', {}).get('code'), 0) self.assertEqual( data['output']['*****@*****.**'].get( 'yanglint', {}).get('code'), 0)
def test_validate_invalid_method(self): result = v.validate(self.factory.get('/yangvalidator/v2/validate')) self.assertEqual(result.status_code, 405) self.assertJSONEqual( result.content, {'Error': 'Only POST request allowed but GET found'})
def test_validate_no_user_or_repo_modules(self): result = v.validate( mock.MagicMock(method='POST', body=json.dumps( {'modules-to-validate': { 'test': 'test' }}))) result = v.validate( self.factory.post('/yangvalidator/v2/validate', {'modules-to-validate': { 'test': 'test' }}, content_type='application/json')) self.assertEqual(result.status_code, 400) self.assertJSONEqual(result.content, {'Error': 'No module received for validation'})
def test_validate_no_module(self): result = v.validate( self.factory.post('/yangvalidator/v2/validate', {'test': 'test'}, content_type='application/json')) self.assertEqual(result.status_code, 400) self.assertJSONEqual(result.content, {'Error': 'No module received for validation'})
def test_validate_not_json(self): result = v.validate(self.factory.post('/yangvalidator/v2/validate')) self.assertEqual(result.status_code, 400) try: json.loads('not json') except ValueError as e: self.assertJSONEqual( result.content, {'Error': 'Not a json content - {}'.format(e)})
def test_validate_skip(self): validate_json = self.load_payload('validate_json') result = v.validate( self.factory.post('/yangvalidator/v2/validate', validate_json, content_type='application/json')) self.assertEqual(result.status_code, 200) warning = 'Following modules [email protected] were skipped from validation because you chose' \ ' different repo modules as a dependency with same name' self.assertJSONEqual(result.content, {'output': {'warning': warning}})
def test_validate_error(self): validate_json = self.load_payload('validate_json') result = v.validate( self.factory.post('/yangvalidator/v2/validate', validate_json, content_type='application/json')) self.assertEqual(result.status_code, 200) self.assertJSONEqual( result.content, {'output': { 'error': 'Failed to parse a document - test' }})