Support abbreviated values for "language"

This commit is contained in:
kansi 2017-10-31 16:54:47 +05:30
parent 7226584215
commit cd636101a7
2 changed files with 15 additions and 21 deletions

View File

@ -21,9 +21,11 @@ from bigchaindb.common.exceptions import ValidationError
logger = logging.getLogger(__name__)
TABLES = ('bigchain', 'backlog', 'votes', 'assets')
VALID_LANGUAGES = ('danish' 'dutch' 'english' 'finnish' 'french' 'german'
'hungarian' 'italian' 'norwegian' 'portuguese' 'romanian'
'russian' 'spanish' 'swedish' 'turkish')
VALID_LANGUAGES = ('danish', 'dutch', 'english', 'finnish', 'french', 'german',
'hungarian', 'italian', 'norwegian', 'portuguese', 'romanian',
'russian', 'spanish', 'swedish', 'turkish',
'da', 'nl', 'en', 'fi', 'fr', 'de', 'hu', 'it', 'nb', 'pt',
'ro', 'ru', 'es', 'sv', 'tr')
@singledispatch
@ -108,12 +110,12 @@ def init_database(connection=None, dbname=None):
def validate_if_exists_asset_language(tx_body):
data = tx_body['asset'].get('data', {})
if data and 'language' in data:
if data and ('language' in data):
language = data.get('language')
backend = bigchaindb.config['database']['backend']
if backend == 'mongodb' and language not in VALID_LANGUAGES:
if (backend == 'mongodb') and (language not in VALID_LANGUAGES):
error_str = ('MongoDB does not support text search for the '
'language "{}". If you do not understand this error '
'message then please rename key/field "language" to '

View File

@ -48,22 +48,14 @@ def test_post_create_transaction_endpoint(b, client):
@pytest.mark.parametrize("language,expected_status_code", [
('danish', 202),
('dutch', 202),
('english', 202),
('finnish', 202),
('french', 202),
('german', 202),
('hungarian', 202),
('italian', 202),
('norwegian', 202),
('portuguese', 202),
('romanian', 202),
('russian', 202),
('spanish', 202),
('swedish', 202),
('turkish', 202),
('any', 400),
('danish', 202), ('dutch', 202), ('english', 202), ('finnish', 202),
('french', 202), ('german', 202), ('hungarian', 202), ('italian', 202),
('norwegian', 202), ('portuguese', 202), ('romanian', 202),
('russian', 202), ('spanish', 202), ('swedish', 202), ('turkish', 202),
('da', 202), ('nl', 202), ('en', 202), ('fi', 202), ('fr', 202),
('de', 202), ('hu', 202), ('it', 202), ('nb', 202), ('pt', 202),
('ro', 202), ('ru', 202), ('es', 202), ('sv', 202), ('tr', 202),
('any', 400)
])
@pytest.mark.language
@pytest.mark.bdb