Fixed #593: Python code failure caused by Model IDs with dots has been fixed

This commit is contained in:
Nadezhda Makarkina
2015-05-14 14:28:43 +03:00
parent e068ad4494
commit 3dde19bb59
3 changed files with 360 additions and 6 deletions

View File

@@ -113,9 +113,9 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
if(languageSpecificPrimitives.contains(type)) {
return type;
}
} else {
type = toModelName(swaggerType);
}
else
type = swaggerType;
return type;
}
@@ -133,9 +133,9 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
if (name.matches("^[A-Z_]*$"))
name = name.toLowerCase();
// camelize (lower first character) the variable name
// underscore the variable name
// petId => pet_id
name = underscore(name);
name = underscore(dropDots(name));
// for reserved word or word starting with number, append _
if(reservedWords.contains(name) || name.matches("^\\d.*"))
@@ -144,6 +144,10 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
return name;
}
private static String dropDots(String str) {
return str.replaceAll("\\.", "_");
}
@Override
public String toParamName(String name) {
// should be the same as variable name
@@ -168,8 +172,8 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
throw new RuntimeException(name + " (reserved word) cannot be used as a model name");
// underscore the model file name
// PhoneNumber.rb => phone_number.rb
return underscore(name);
// PhoneNumber => phone_number
return underscore(dropDots(name));
}
@Override