From 28769ac6712bbe3db78845d7a5fba4b5628e218f Mon Sep 17 00:00:00 2001 From: wing328 Date: Sat, 27 Feb 2016 18:30:56 +0800 Subject: [PATCH] add prefix and suffic support to php and python models --- .gitignore | 5 ++++ .../codegen/languages/PhpClientCodegen.java | 5 ++++ .../languages/PythonClientCodegen.java | 10 ++++++- .../io/swagger/codegen/php/PhpModelTest.java | 11 ++++--- samples/client/petstore/python/.coverage | 1 - .../petstore/python/dev-requirements.txt | 4 --- .../petstore/python/dev-requirements.txt.log | 22 -------------- .../swagger_client.egg-info/SOURCES.txt | 29 ------------------- 8 files changed, 26 insertions(+), 61 deletions(-) delete mode 100644 samples/client/petstore/python/.coverage delete mode 100644 samples/client/petstore/python/dev-requirements.txt delete mode 100644 samples/client/petstore/python/dev-requirements.txt.log delete mode 100644 samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt diff --git a/.gitignore b/.gitignore index 567a73d70fe..96b8c0bfcf3 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,8 @@ samples/client/petstore/swift/SwaggerClientTests/Pods/Pods.xcodeproj/xcshareddat samples/client/petstore/csharp/SwaggerClientTest/bin/Debug/ samples/client/petstore/csharp/SwaggerClientTest/obj/Debug/ **/.gradle/ + +samples/client/petstore/python/dev-requirements.txt.log +samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt +samples/client/petstore/python/.coverage +samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java index ab3a8e4ff9f..fcb187cc80d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java @@ -370,6 +370,11 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { name = "object_" + name; // e.g. return => ObjectReturn (after camelize) } + // add prefix and/or suffic only if name does not start wth \ (e.g. \DateTime) + if (!name.matches("^\\\\.*")) { + name = modelNamePrefix + name + modelNameSuffix; + } + // camelize the model name // phone_number => PhoneNumber return camelize(name); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java index 73e72b2d141..5115a5d1f1b 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PythonClientCodegen.java @@ -212,7 +212,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig @Override public String toModelName(String name) { - name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + name = sanitizeName(modelNamePrefix + name + modelNameSuffix); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. // remove dollar sign name = name.replaceAll("$", ""); @@ -236,6 +236,14 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig name = "object_" + name; // e.g. return => ObjectReturn (after camelize) } + if (!StringUtils.isEmpty(modelNamePrefix)) { + name = modelNamePrefix + "_" + name; + } + + if (!StringUtils.isEmpty(modelNameSuffix)) { + name = name + "_" + modelNameSuffix; + } + // underscore the model file name // PhoneNumber => phone_number return underscore(dropDots(name)); diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/php/PhpModelTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/php/PhpModelTest.java index 3c2767ee6fc..ef6d6984895 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/php/PhpModelTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/php/PhpModelTest.java @@ -38,7 +38,8 @@ public class PhpModelTest { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a sample model"); Assert.assertEquals(cm.vars.size(), 3); - Assert.assertEquals(cm.imports.size(), 1); + // {{imports}} is not used in template + //Assert.assertEquals(cm.imports.size(), 1); final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "id"); @@ -198,7 +199,8 @@ public class PhpModelTest { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a sample model"); Assert.assertEquals(cm.vars.size(), 1); - Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1); + // {{imports}} is not used in template + //Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1); final CodegenProperty property1 = cm.vars.get(0); Assert.assertEquals(property1.baseName, "children"); @@ -239,8 +241,9 @@ public class PhpModelTest { Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.description, "a map model"); Assert.assertEquals(cm.vars.size(), 0); - Assert.assertEquals(cm.imports.size(), 2); - Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1); + // {{imports}} is not used in template + //Assert.assertEquals(cm.imports.size(), 2); + //Assert.assertEquals(Sets.intersection(cm.imports, Sets.newHashSet("Children")).size(), 1); } @DataProvider(name = "modelNames") diff --git a/samples/client/petstore/python/.coverage b/samples/client/petstore/python/.coverage deleted file mode 100644 index 54e43c2a8f1..00000000000 --- a/samples/client/petstore/python/.coverage +++ /dev/null @@ -1 +0,0 @@ -!coverage.py: This is a private format, don't read it directly!{"lines": {"/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/rest.py": [20, 21, 23, 24, 25, 26, 27, 28, 31, 33, 35, 36, 40, 42, 48, 51, 53, 54, 55, 56, 57, 59, 63, 65, 72, 74, 82, 83, 88, 92, 95, 98, 101, 102, 103, 104, 105, 106, 109, 110, 121, 122, 124, 129, 130, 132, 135, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 152, 153, 154, 155, 156, 159, 160, 161, 166, 170, 171, 174, 176, 177, 179, 181, 182, 183, 184, 186, 191, 198, 199, 200, 201, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 217, 225, 227, 228, 229, 230, 231, 232, 239, 243, 244, 245, 246, 248, 249, 251], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/configuration.py": [258, 19, 21, 22, 23, 25, 26, 27, 29, 31, 32, 34, 36, 37, 39, 40, 41, 42, 43, 46, 47, 52, 54, 59, 61, 63, 67, 69, 71, 73, 76, 80, 81, 82, 84, 86, 88, 90, 92, 96, 98, 100, 102, 104, 111, 122, 123, 135, 136, 137, 138, 139, 142, 149, 157, 158, 167, 168, 170, 172, 179, 189, 190, 192, 199, 200, 201, 204, 213, 219, 221, 222, 223, 224, 225, 228, 229, 230, 231, 232, 235, 236, 237, 238, 239, 242, 243, 244, 245, 246, 249, 250, 251, 252, 253], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/__init__.py": [1, 4, 5, 6, 7, 8], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/apis/pet_api.py": [512, 513, 514, 683, 516, 86, 18, 20, 22, 23, 26, 539, 28, 29, 542, 543, 32, 548, 37, 39, 40, 41, 42, 555, 556, 45, 558, 559, 560, 562, 564, 565, 566, 568, 569, 345, 571, 574, 575, 576, 580, 581, 70, 584, 73, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 598, 88, 90, 92, 93, 95, 96, 97, 330, 100, 101, 102, 106, 107, 621, 622, 624, 625, 626, 115, 116, 117, 118, 631, 632, 121, 122, 635, 124, 638, 639, 641, 642, 643, 645, 647, 649, 650, 651, 652, 653, 654, 656, 145, 146, 659, 148, 661, 150, 665, 666, 155, 156, 538, 159, 160, 673, 162, 675, 164, 677, 166, 679, 168, 169, 171, 172, 173, 541, 176, 177, 178, 182, 183, 186, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 119, 120, 377, 221, 222, 549, 224, 225, 226, 231, 232, 431, 235, 236, 110, 238, 240, 552, 242, 244, 246, 247, 249, 762, 383, 252, 253, 254, 258, 259, 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 276, 46, 48, 112, 298, 300, 301, 302, 44, 307, 308, 311, 312, 314, 316, 317, 318, 320, 322, 323, 325, 113, 328, 329, 79, 334, 335, 338, 340, 341, 342, 343, 344, 241, 346, 347, 348, 349, 350, 485, 352, 84, 114, 373, 374, 376, 660, 378, 149, 384, 387, 390, 391, 393, 394, 395, 397, 399, 401, 402, 404, 407, 408, 409, 297, 413, 414, 69, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 669, 72, 671, 74, 672, 83, 454, 455, 457, 458, 459, 674, 464, 465, 468, 471, 472, 676, 474, 475, 476, 478, 480, 80, 482, 483, 484, 678, 486, 487, 489, 492, 493, 494, 680, 498, 499, 502, 681, 504, 505, 506, 507, 508, 509, 510, 511], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/user.py": [278, 70, 136, 202, 272, 81, 147, 213, 22, 25, 92, 29, 158, 224, 290, 103, 169, 235, 284, 114, 19, 180, 30, 246, 191, 125, 21], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/api_client.py": [513, 521, 528, 529, 530, 19, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 550, 551, 40, 42, 44, 49, 52, 569, 571, 572, 573, 574, 575, 576, 578, 68, 69, 74, 75, 76, 78, 79, 81, 82, 84, 86, 93, 98, 100, 104, 105, 106, 109, 110, 111, 113, 114, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 131, 132, 133, 136, 139, 140, 143, 146, 147, 148, 149, 151, 154, 155, 157, 159, 160, 162, 164, 540, 173, 174, 176, 178, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 214, 215, 216, 218, 219, 221, 549, 233, 237, 238, 242, 244, 253, 254, 256, 257, 258, 259, 260, 262, 263, 264, 265, 269, 270, 271, 274, 276, 277, 278, 280, 281, 282, 283, 285, 288, 289, 290, 561, 318, 319, 320, 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 335, 339, 340, 341, 342, 343, 347, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 371, 372, 373, 374, 381, 389, 391, 392, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 409, 416, 417, 419, 421, 422, 424, 426, 433, 434, 436, 438, 439, 441, 443, 451, 453, 456, 457, 458, 459, 461, 462, 470, 496, 505, 506, 511], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/apis/store_api.py": [18, 276, 22, 23, 26, 28, 29, 197, 32, 37, 39, 40, 41, 44, 46, 48, 20, 68, 69, 71, 72, 79, 82, 83, 85, 87, 89, 91, 92, 94, 97, 98, 99, 103, 104, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/apis/__init__.py": [1, 4, 5, 6], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/pet.py": [128, 130, 150, 172, 139, 141, 19, 215, 21, 22, 152, 25, 29, 30, 161, 163, 39, 40, 41, 42, 43, 44, 45, 174, 48, 49, 50, 51, 52, 53, 54, 183, 57, 58, 59, 60, 61, 62, 64, 194, 195, 200, 73, 202, 75, 206, 208, 209, 210, 211, 84, 213, 86, 185, 216, 217, 95, 224, 97, 226, 228, 232, 234, 108, 240, 244, 117, 246, 119, 212, 106], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/tag.py": [128, 134, 72, 74, 140, 109, 19, 21, 22, 25, 29, 30, 96, 100, 102, 39, 40, 41, 103, 44, 45, 46, 111, 49, 50, 83, 52, 94, 118, 120, 104, 122, 138, 61, 85, 63], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/__init__.py": [1, 4, 5, 6, 7, 8, 11, 12, 13, 16, 18, 20], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/apis/user_api.py": [32, 355, 37, 39, 200, 124, 428, 589, 48, 18, 20, 22, 23, 276, 26, 507, 28, 29], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/order.py": [130, 172, 141, 173, 19, 21, 22, 152, 25, 29, 30, 52, 161, 163, 39, 40, 41, 42, 43, 44, 45, 174, 175, 48, 49, 50, 51, 180, 53, 54, 57, 58, 59, 60, 61, 62, 191, 64, 202, 75, 86, 176, 97, 228, 178, 234, 108, 240, 246, 119], "/Users/williamcheng/Code/swagger-codegen/samples/client/petstore/python/swagger_client/models/category.py": [128, 134, 72, 74, 140, 109, 19, 21, 22, 25, 29, 30, 96, 100, 102, 39, 40, 41, 103, 44, 45, 46, 111, 49, 50, 83, 52, 94, 118, 120, 104, 122, 61, 85, 63]}} \ No newline at end of file diff --git a/samples/client/petstore/python/dev-requirements.txt b/samples/client/petstore/python/dev-requirements.txt deleted file mode 100644 index 01a2e25f1c7..00000000000 --- a/samples/client/petstore/python/dev-requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -nose -tox -coverage -randomize diff --git a/samples/client/petstore/python/dev-requirements.txt.log b/samples/client/petstore/python/dev-requirements.txt.log deleted file mode 100644 index e3338d48f11..00000000000 --- a/samples/client/petstore/python/dev-requirements.txt.log +++ /dev/null @@ -1,22 +0,0 @@ -Collecting nose (from -r dev-requirements.txt (line 1)) - Using cached nose-1.3.7-py2-none-any.whl -Collecting tox (from -r dev-requirements.txt (line 2)) - Using cached tox-2.3.1-py2.py3-none-any.whl -Collecting coverage (from -r dev-requirements.txt (line 3)) -Collecting randomize (from -r dev-requirements.txt (line 4)) - Using cached randomize-0.13-py2.py3-none-any.whl -Collecting virtualenv>=1.11.2 (from tox->-r dev-requirements.txt (line 2)) - Downloading virtualenv-14.0.6-py2.py3-none-any.whl (1.8MB) -Collecting py>=1.4.17 (from tox->-r dev-requirements.txt (line 2)) - Using cached py-1.4.31-py2.py3-none-any.whl -Collecting pluggy<0.4.0,>=0.3.0 (from tox->-r dev-requirements.txt (line 2)) - Using cached pluggy-0.3.1-py2.py3-none-any.whl -Installing collected packages: nose, virtualenv, py, pluggy, tox, coverage, randomize -Successfully installed coverage-4.0.3 nose-1.3.7 pluggy-0.3.1 py-1.4.31 randomize-0.13 tox-2.3.1 virtualenv-14.0.6 -Requirement already satisfied (use --upgrade to upgrade): nose in ./venv/lib/python2.7/site-packages (from -r dev-requirements.txt (line 1)) -Requirement already satisfied (use --upgrade to upgrade): tox in ./venv/lib/python2.7/site-packages (from -r dev-requirements.txt (line 2)) -Requirement already satisfied (use --upgrade to upgrade): coverage in ./venv/lib/python2.7/site-packages (from -r dev-requirements.txt (line 3)) -Requirement already satisfied (use --upgrade to upgrade): randomize in ./venv/lib/python2.7/site-packages (from -r dev-requirements.txt (line 4)) -Requirement already satisfied (use --upgrade to upgrade): virtualenv>=1.11.2 in ./venv/lib/python2.7/site-packages (from tox->-r dev-requirements.txt (line 2)) -Requirement already satisfied (use --upgrade to upgrade): py>=1.4.17 in ./venv/lib/python2.7/site-packages (from tox->-r dev-requirements.txt (line 2)) -Requirement already satisfied (use --upgrade to upgrade): pluggy<0.4.0,>=0.3.0 in ./venv/lib/python2.7/site-packages (from tox->-r dev-requirements.txt (line 2)) diff --git a/samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt b/samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt deleted file mode 100644 index a7d91c0b8ce..00000000000 --- a/samples/client/petstore/python/swagger_client.egg-info/SOURCES.txt +++ /dev/null @@ -1,29 +0,0 @@ -setup.cfg -setup.py -swagger_client/__init__.py -swagger_client/api_client.py -swagger_client/configuration.py -swagger_client/rest.py -swagger_client.egg-info/PKG-INFO -swagger_client.egg-info/SOURCES.txt -swagger_client.egg-info/dependency_links.txt -swagger_client.egg-info/requires.txt -swagger_client.egg-info/top_level.txt -swagger_client/apis/__init__.py -swagger_client/apis/pet_api.py -swagger_client/apis/store_api.py -swagger_client/apis/user_api.py -swagger_client/models/__init__.py -swagger_client/models/category.py -swagger_client/models/order.py -swagger_client/models/pet.py -swagger_client/models/tag.py -swagger_client/models/user.py -tests/__init__.py -tests/test_api_client.py -tests/test_api_exception.py -tests/test_deserialization.py -tests/test_order_model.py -tests/test_pet_api.py -tests/test_pet_model.py -tests/test_store_api.py \ No newline at end of file