)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"579f148d31481f5aa0544e56b650763b4a06df4f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":268,"context_line":"        if not name:"},{"line_number":269,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":270,"context_line":"        if policy is None:"},{"line_number":271,"context_line":"            policy \u003d [\u0027affinity\u0027]"},{"line_number":272,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":273,"context_line":"        cls.server_groups.append(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_42c0c1df","line":270,"updated":"2014-06-22 10:38:44.000000000","message":"should also support \"policy \u003d\u003d []\" for backward comparability","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d82e824ff2aa2ee43c5e084b02759eb538467a7c","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":268,"context_line":"        if not name:"},{"line_number":269,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":270,"context_line":"        if policy is None:"},{"line_number":271,"context_line":"            policy \u003d [\u0027affinity\u0027]"},{"line_number":272,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":273,"context_line":"        cls.server_groups.append(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_966da734","line":270,"in_reply_to":"1ae5cdf2_42c0c1df","updated":"2014-06-23 00:40:20.000000000","message":"I did not get what you mean by backward compatibility for default values here?\n\nCan you please elaborate? \n\nBehavior of this function was if \u0027policy\u0027 is not passed than create server group with \u0027affinity\u0027 policy and that behavior is not changed So there is no backward compatibility change for this function.","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d1b0bd50f2e54d63223a24d97c33bf4970213c6f","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":268,"context_line":"        if not name:"},{"line_number":269,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":270,"context_line":"        if policy is None:"},{"line_number":271,"context_line":"            policy \u003d [\u0027affinity\u0027]"},{"line_number":272,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":273,"context_line":"        cls.server_groups.append(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_3ab2ba06","line":270,"in_reply_to":"1ae5cdf2_7dfb8a7b","updated":"2014-06-24 10:55:24.000000000","message":"OK. Actually this should not be called with empty policy ([]) as Nova does not support the empty policy. \nBut I agree with you that initialization to ([]) is better option.\n\nThanks.","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df60975eab499b8557522d36b073b9a69db1f3f0","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":268,"context_line":"        if not name:"},{"line_number":269,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":270,"context_line":"        if policy is None:"},{"line_number":271,"context_line":"            policy \u003d [\u0027affinity\u0027]"},{"line_number":272,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":273,"context_line":"        cls.server_groups.append(body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_7dfb8a7b","line":270,"in_reply_to":"1ae5cdf2_966da734","updated":"2014-06-23 11:36:39.000000000","message":"I\u0027m not familiar with this class, but previous implementation supported calling the method with an empty list_object like: cls.create_test_server_group(\"myname\", [])\nIf you are certain it\u0027s never going to be used that way then we are ok. otherwise, I suggest that instead of changing the code, you jut *add* initialization of policy to \"[]\" if None to the existing code","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"b2caeef7459d653bd21ba2282595eb30f17b4b99","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or []"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        if not policy:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_46021770","line":270,"updated":"2014-07-10 18:08:46.000000000","message":"While this line is in keeping with the change above, it would seem to add no value when lines 272-273 are considered.  An empty policy ([] or None) would seem to imply that policy should be [\u0027affinity\u0027] rather than [].  Please resolve this apparent contradiction.","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"19321d058494570abbe9e7f845cdc729ddf6b2e5","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or []"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        if not policy:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_3dcd7787","line":270,"updated":"2014-07-09 06:47:54.000000000","message":"way better than what I had in mind","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"265275211cd658fbbf704fef45b48d760f606b25","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or []"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        if not policy:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_55f38d9e","line":270,"in_reply_to":"baada198_46021770","updated":"2014-07-11 02:02:04.000000000","message":"Maru,\nI did not get your comment. if policy is not passed to this function, it is going to set as [] by L270 and in that case L273-274 set the policy to [\u0027affinity\u0027] which is as per original behavior. \n\n\u003eAn empty policy ([] or None) would seem to imply that policy should be [\u0027affinity\u0027] rather than [].\nThis behavior is still achieved. in case of policy as [] or None, policy is set as  [\u0027affinity\u0027] before passing it to client.\n\nNote- \"[]\" is considered as \"not policy\" in L273","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"8281438cc1aac0e4799b21b37d18e246c9c6e583","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or []"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        if not policy:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f73805a2","line":270,"in_reply_to":"baada198_55f38d9e","updated":"2014-07-11 18:23:17.000000000","message":"I think Maru is saying that since policy is set to [] and then [\u0027affinity\u0027] if policy is None, it would make more sense to just default to [\u0027affinity\u0027], like this:\n\n    policy \u003d policy or [\u0027affinity\u0027]","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"b8cce4d86f4e106a5bd50e6edc2f71a2e14d6c53","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or [\u0027affinity\u0027]"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":274,"context_line":"        cls.server_groups.append(body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_7bd37401","line":271,"updated":"2014-08-06 06:40:59.000000000","message":"nit: maybe the default handling should be consistent? if you have a chance for a new patch - please update these as well\n\nname \u003d name or data_utils.rand_name(cls.__name__ + \"-Server-Group\")","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"93f2c9de7a2df3dceb10acdd83a160ed9838cd87","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    @classmethod"},{"line_number":269,"context_line":"    def create_test_server_group(cls, name\u003d\"\", policy\u003dNone):"},{"line_number":270,"context_line":"        policy \u003d policy or [\u0027affinity\u0027]"},{"line_number":271,"context_line":"        if not name:"},{"line_number":272,"context_line":"            name \u003d data_utils.rand_name(cls.__name__ + \"-Server-Group\")"},{"line_number":273,"context_line":"        resp, body \u003d cls.servers_client.create_server_group(name, policy)"},{"line_number":274,"context_line":"        cls.server_groups.append(body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_946c2b37","line":271,"in_reply_to":"baada198_7bd37401","updated":"2014-08-21 01:32:15.000000000","message":"done.","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"}],"tempest/api/orchestration/base.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"b2caeef7459d653bd21ba2282595eb30f17b4b99","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def create_stack(cls, stack_name, template_data, parameters\u003dNone,"},{"line_number":66,"context_line":"                     environment\u003dNone, files\u003dNone):"},{"line_number":67,"context_line":"        parameters \u003d parameters or {}"},{"line_number":68,"context_line":"        resp, body \u003d cls.client.create_stack("},{"line_number":69,"context_line":"            stack_name,"},{"line_number":70,"context_line":"            template\u003dtemplate_data,"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_a64e93bf","line":67,"updated":"2014-07-10 18:08:46.000000000","message":"It is not good practice to use a conditional statement to set a default value.  The ternary operator is preferable if a one-liner is called for, e.g.\n\n {} if parameters is None else parameters\n\nThat said, the convention in the tempest codebase would appear to use an explicit conditional:\n\n if not parameters:\n  parameters \u003d {}\n\nSo, please avoid the current form of setting a default value and choose one of these options, mindful of the conventions followed by the code being modified.","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"265275211cd658fbbf704fef45b48d760f606b25","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def create_stack(cls, stack_name, template_data, parameters\u003dNone,"},{"line_number":66,"context_line":"                     environment\u003dNone, files\u003dNone):"},{"line_number":67,"context_line":"        parameters \u003d parameters or {}"},{"line_number":68,"context_line":"        resp, body \u003d cls.client.create_stack("},{"line_number":69,"context_line":"            stack_name,"},{"line_number":70,"context_line":"            template\u003dtemplate_data,"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_b8b6a0da","line":67,"in_reply_to":"baada198_a64e93bf","updated":"2014-07-11 02:02:04.000000000","message":"Maru, Thanks.\nBut I did not get why conditional statement used like in this code not good practice.\nI agree almost all example of handling the mutable object as default value is through explicit condition as you mentioned (even i used the same way in first place -4th patch) .\n\nBut I am not finding and able to convinced myself why  explicit condition is good practice than \"parameters \u003d parameters or {}\".\n\nPlease explain (ref link) for same. I will be happy to change if I am convinced :).","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"}],"tempest/hacking/checks.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"31c7cfb381a8a4df23dccf0bcb2c4823c13a2e8a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"SETUPCLASS_DEFINITION \u003d re.compile(r\u0027^\\s*def setUpClass\u0027)"},{"line_number":28,"context_line":"SCENARIO_DECORATOR \u003d re.compile(r\u0027\\s*@.*services\\((.*)\\)\u0027)"},{"line_number":29,"context_line":"VI_HEADER_RE \u003d re.compile(r\"^#\\s+vim?:.+\")"},{"line_number":30,"context_line":"mutable_default_args \u003d re.compile(r\"^\\s*def .+\\((.+\u003d\\{\\}|.+\u003d\\[\\])\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def import_no_clients_in_api(physical_line, filename):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_30872111","line":30,"updated":"2014-09-02 13:24:11.000000000","message":"It would be nicer if this was upper case like the rest","commit_id":"2a180b83982442275505f275ba1a4d16662e78b3"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"31c7cfb381a8a4df23dccf0bcb2c4823c13a2e8a","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    N322: Method\u0027s default argument shouldn\u0027t be mutable"},{"line_number":127,"context_line":"    \"\"\""},{"line_number":128,"context_line":"    msg \u003d \"N322: Method\u0027s default argument shouldn\u0027t be mutable!\""},{"line_number":129,"context_line":"    if mutable_default_args.match(logical_line):"},{"line_number":130,"context_line":"        yield (0, msg)"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_30ec81c7","line":128,"updated":"2014-09-02 13:24:11.000000000","message":"Not sure about the exclamation mark...","commit_id":"2a180b83982442275505f275ba1a4d16662e78b3"}],"tempest/scenario/manager.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"b2caeef7459d653bd21ba2282595eb30f17b4b99","unresolved":false,"context_lines":[{"line_number":346,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":347,"context_line":"        if flavor is None:"},{"line_number":348,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":349,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":352,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_e64a4b82","line":349,"updated":"2014-07-10 18:08:46.000000000","message":"As per my previous comment, the convention in this method is to use an explicit conditional to set the default value for a keyword argument.  Unless there is a really good reason to deviate from this convention, best practice suggests following it.","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"265275211cd658fbbf704fef45b48d760f606b25","unresolved":false,"context_lines":[{"line_number":346,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":347,"context_line":"        if flavor is None:"},{"line_number":348,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":349,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":352,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_f8b018df","line":349,"in_reply_to":"baada198_e64a4b82","updated":"2014-07-11 02:02:04.000000000","message":"same as previous comment","commit_id":"e030cd4f3b456e6d566ea00ac50ff22cc8597f76"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"53231aff2bc77e555d099f3f5f3ca8a101ffbdfa","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":373,"context_line":"        if flavor is None:"},{"line_number":374,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":375,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":378,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_796baaef","line":375,"updated":"2014-08-05 07:17:51.000000000","message":"Lines 367-374 clearly set a precedent for how default values should be set, and yet you chose to do things differently.  Why?","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"9bf6953636adc040609d1874635ac7a03062f640","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":373,"context_line":"        if flavor is None:"},{"line_number":374,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":375,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":378,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ced5bcb9","line":375,"in_reply_to":"baada198_796baaef","updated":"2014-08-05 15:04:23.000000000","message":"Maru is right... It\u0027s unfortunate but I still +1 because it\u0027s a small issue, the rest is good and needed.","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"b8cce4d86f4e106a5bd50e6edc2f71a2e14d6c53","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":373,"context_line":"        if flavor is None:"},{"line_number":374,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":375,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":378,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ea417e0b","line":375,"in_reply_to":"baada198_ced5bcb9","updated":"2014-08-06 06:40:59.000000000","message":"Coping comment from previous patchset:\n\nIMO the way things are handled now is TOO explicit, and your way is a lot more elegant.\nI do agree that consistency is an issue, but I don\u0027t think it\u0027s a cause for -1. If you can change existing code so that defaults are handled consistently, at least through the scope of each method you\u0027ve already touched, I would appreciate that.","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"93f2c9de7a2df3dceb10acdd83a160ed9838cd87","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            image \u003d CONF.compute.image_ref"},{"line_number":373,"context_line":"        if flavor is None:"},{"line_number":374,"context_line":"            flavor \u003d CONF.compute.flavor_ref"},{"line_number":375,"context_line":"        create_kwargs \u003d create_kwargs or {}"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"        fixed_network_name \u003d CONF.compute.fixed_network_name"},{"line_number":378,"context_line":"        if \u0027nics\u0027 not in create_kwargs and fixed_network_name:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1abeadc6_b475a7fb","line":375,"in_reply_to":"baada198_ea417e0b","updated":"2014-08-21 01:32:15.000000000","message":"done","commit_id":"0f4bdd30908c582f26854ef9a4cd860fdab2b7a9"}],"tempest/scenario/test_swift_basic_ops.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"579f148d31481f5aa0544e56b650763b4a06df4f","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            container_name)"},{"line_number":89,"context_line":"        # create a list with file name only"},{"line_number":90,"context_line":"        object_list \u003d [obj[\u0027name\u0027] for obj in response]"},{"line_number":91,"context_line":"        if present_obj is not None:"},{"line_number":92,"context_line":"            for obj in present_obj:"},{"line_number":93,"context_line":"                self.assertIn(obj, object_list)"},{"line_number":94,"context_line":"        if not_present_obj is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_82b64987","line":91,"updated":"2014-06-22 10:38:44.000000000","message":"I\u0027m not sure if this is better or worse than simply setting present_obj\u003d[] and leaving the code as it was","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"df60975eab499b8557522d36b073b9a69db1f3f0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            container_name)"},{"line_number":89,"context_line":"        # create a list with file name only"},{"line_number":90,"context_line":"        object_list \u003d [obj[\u0027name\u0027] for obj in response]"},{"line_number":91,"context_line":"        if present_obj is not None:"},{"line_number":92,"context_line":"            for obj in present_obj:"},{"line_number":93,"context_line":"                self.assertIn(obj, object_list)"},{"line_number":94,"context_line":"        if not_present_obj is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_1d48c6b2","line":91,"in_reply_to":"1ae5cdf2_56807fbe","updated":"2014-06-23 11:36:39.000000000","message":"What I meant was, that maybe you should *add* initialization to default ([]) value (if None) to support the option of calling the method with (present_obj\u003d[]), keeping the old behavior.","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d82e824ff2aa2ee43c5e084b02759eb538467a7c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            container_name)"},{"line_number":89,"context_line":"        # create a list with file name only"},{"line_number":90,"context_line":"        object_list \u003d [obj[\u0027name\u0027] for obj in response]"},{"line_number":91,"context_line":"        if present_obj is not None:"},{"line_number":92,"context_line":"            for obj in present_obj:"},{"line_number":93,"context_line":"                self.assertIn(obj, object_list)"},{"line_number":94,"context_line":"        if not_present_obj is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_56807fbe","line":91,"in_reply_to":"1ae5cdf2_82b64987","updated":"2014-06-23 00:40:20.000000000","message":"Well, there is nothing worst than setting mutable object as default value (original code).\nMutable object (as they carry their state among function calls) can *never* be used as default value.","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"579f148d31481f5aa0544e56b650763b4a06df4f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        if present_obj is not None:"},{"line_number":92,"context_line":"            for obj in present_obj:"},{"line_number":93,"context_line":"                self.assertIn(obj, object_list)"},{"line_number":94,"context_line":"        if not_present_obj is not None:"},{"line_number":95,"context_line":"            for obj in not_present_obj:"},{"line_number":96,"context_line":"                self.assertNotIn(obj, object_list)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_c2abf11b","line":94,"updated":"2014-06-22 10:38:44.000000000","message":"same here","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d82e824ff2aa2ee43c5e084b02759eb538467a7c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        if present_obj is not None:"},{"line_number":92,"context_line":"            for obj in present_obj:"},{"line_number":93,"context_line":"                self.assertIn(obj, object_list)"},{"line_number":94,"context_line":"        if not_present_obj is not None:"},{"line_number":95,"context_line":"            for obj in not_present_obj:"},{"line_number":96,"context_line":"                self.assertNotIn(obj, object_list)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_7683bbca","line":94,"in_reply_to":"1ae5cdf2_c2abf11b","updated":"2014-06-23 00:40:20.000000000","message":"ditto","commit_id":"559efb39f445e794bb601a56498eb27f7806cdd4"}],"tempest/tests/test_hacking.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"ecc0015802a3d453223ebafe2f391e505e2d4269","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            \"tempest/scenario/fake_test.py\"))"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def test_no_mutable_default_args(self):"},{"line_number":112,"context_line":"        self.assertEqual(1, len(list(checks.no_mutable_default_args("},{"line_number":113,"context_line":"            \" def function1(para\u003d{}):\"))))"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.assertEqual(1, len(list(checks.no_mutable_default_args("}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_86ba5321","line":112,"updated":"2014-09-02 13:59:47.000000000","message":"I\u0027m not a fan of assertEqual here because if this fails the error message will be something like: 1 !\u003d 0 which isn\u0027t very useful. This is true for all the asserts here.","commit_id":"2a180b83982442275505f275ba1a4d16662e78b3"}]}
