)]}'
{"heat/common/template_format.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"eeb600ddb6d9a5b1419a51b71f26bc29ba4115da","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template no version section.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FXdk%3D","line":67,"updated":"2014-01-14 15:45:25.000000000","message":"I suggest \"Template format version not found.\" as the error message.","commit_id":"d2f250ac3f1c98812c58dc64a235e4ee199c96c2"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"be35a2a26d8649f809617ce7ad468a553f91911b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template no version section.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FUvg%3D","line":67,"in_reply_to":"AAAAUH%2F%2FXdk%3D","updated":"2014-01-15 01:51:00.000000000","message":"Thanks.\nDone.","commit_id":"d2f250ac3f1c98812c58dc64a235e4ee199c96c2"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"082e273660d133158e3cbeb7ae408eab4afb838f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FTR0%3D","line":66,"updated":"2014-01-15 10:09:14.000000000","message":"I\u0027d prefer it if we defined a HEAT_FORMATS constant at the top, then use a set to compare instead of all the ors, ie check the key exists in the parsed dict not that the string exists as a substring.\n\nif not set(HEAT_FORMATS) \u0026 set(tpl):\n    raise...","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"f6994ffea64309ba48b4a8ce598777f15dfaeeaf","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FMo4%3D","line":66,"in_reply_to":"AAAAUH%2F%2FN%2FI%3D","updated":"2014-01-16 14:44:59.000000000","message":"That is not set(tpl), it\u0027s set(tmpl_str)","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"6b108642603fb39ee3e7530b05fa825590dfde9e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FN%2FI%3D","line":66,"in_reply_to":"AAAAUH%2F%2FSuI%3D","updated":"2014-01-16 09:08:46.000000000","message":"I\u0027m afraid we can\u0027t use \"if not set(HEAT_FORMATS) \u0026 set(tpl):\", I made a test, as:\n\ntpl \u003d \u0027\u0027\u0027{\n  \"AWSTemplateFormatVersion\" : \"2010-09-09\",\n  \"Mappings\" : {\n    \"ValidMapping\" : {\n      \"TestKey\" : { \"TestValue\" : \"wibble\" }\n    },\n    \"InvalidMapping\" : {\n      \"ValueList\" : [ \"foo\", \"bar\" ],\n      \"ValueString\" : \"baz\"\n    },\n    \"MapList\": [ \"foo\", { \"bar\" : \"baz\" } ],\n    \"MapString\": \"foobar\"\n  }\n}\u0027\u0027\u0027\n\n\u003e\u003e\u003e import json\n\u003e\u003e\u003e json.loads(tpl)\n{u\u0027AWSTemplateFormatVersion\u0027: u\u00272010-09-09\u0027, \nu\u0027Mappings\u0027: {u\u0027ValidMapping\u0027: {u\u0027TestKey\u0027: {u\u0027TestValue\u0027: u\u0027wibble\u0027}}, u\u0027MapList\u0027: [u\u0027foo\u0027, {u\u0027bar\u0027: u\u0027baz\u0027}], u\u0027InvalidMapping\u0027: {u\u0027ValueList\u0027: [u\u0027foo\u0027, u\u0027bar\u0027], u\u0027ValueString\u0027: u\u0027baz\u0027}, u\u0027MapString\u0027: u\u0027foobar\u0027}}\n\n\u003e\u003e\u003e set(tpl)\nset([\u0027\\n\u0027, \u0027 \u0027, \u0027\"\u0027, \u0027-\u0027, \u0027,\u0027, \u00271\u0027, \u00270\u0027, \u00272\u0027, \u00279\u0027, \u0027:\u0027, \u0027A\u0027, \u0027F\u0027, \u0027I\u0027, \u0027K\u0027, \u0027M\u0027,\n \u0027L\u0027, \u0027S\u0027, \u0027T\u0027, \u0027W\u0027, \u0027V\u0027, \u0027[\u0027, \u0027]\u0027, \u0027a\u0027, \u0027b\u0027, \u0027e\u0027, \u0027d\u0027, \u0027g\u0027, \u0027f\u0027, \u0027i\u0027, \u0027m\u0027, \u0027l\u0027,\n \u0027o\u0027, \u0027n\u0027, \u0027p\u0027, \u0027s\u0027, \u0027r\u0027, \u0027u\u0027, \u0027t\u0027, \u0027w\u0027, \u0027v\u0027, \u0027y\u0027, \u0027{\u0027, \u0027z\u0027, \u0027}\u0027])\n\nThe tpl is valid template, but if we check use \"\nif not set(HEAT_FORMATS) \u0026 set(tpl):\" the exception will raised.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"8697fb7a4be33f0d5220cc64daa6a36e9c0c63bd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":64,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":65,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":66,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":67,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"},{"line_number":68,"context_line":"    if tmpl_str.startswith(\u0027{\u0027):"},{"line_number":69,"context_line":"        tpl \u003d json.loads(tmpl_str)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FSuI%3D","line":66,"in_reply_to":"AAAAUH%2F%2FTR0%3D","updated":"2014-01-15 12:01:09.000000000","message":"Done.\nThanks.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"082e273660d133158e3cbeb7ae408eab4afb838f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if tpl is None:"},{"line_number":77,"context_line":"                tpl \u003d {}"},{"line_number":78,"context_line":"            if u\u0027heat_template_version\u0027 not in tpl:"},{"line_number":79,"context_line":"                default_for_missing(tpl, u\u0027HeatTemplateFormatVersion\u0027,"},{"line_number":80,"context_line":"                                    HEAT_VERSIONS)"},{"line_number":81,"context_line":"    return tpl"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FTRc%3D","line":79,"updated":"2014-01-15 10:09:14.000000000","message":"So if version is mandatory now, we can remove default_for_missing here right?","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"625ba9a068e173b719f46374b53a27cbab51b68d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if tpl is None:"},{"line_number":77,"context_line":"                tpl \u003d {}"},{"line_number":78,"context_line":"            if u\u0027heat_template_version\u0027 not in tpl:"},{"line_number":79,"context_line":"                default_for_missing(tpl, u\u0027HeatTemplateFormatVersion\u0027,"},{"line_number":80,"context_line":"                                    HEAT_VERSIONS)"},{"line_number":81,"context_line":"    return tpl"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FPNU%3D","line":79,"in_reply_to":"AAAAUH%2F%2FPeM%3D","updated":"2014-01-16 02:18:54.000000000","message":"Definitely. Remove any and all dead code.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"0fabfefc0cef4e2d8a24031c273fe3fdef36504c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if tpl is None:"},{"line_number":77,"context_line":"                tpl \u003d {}"},{"line_number":78,"context_line":"            if u\u0027heat_template_version\u0027 not in tpl:"},{"line_number":79,"context_line":"                default_for_missing(tpl, u\u0027HeatTemplateFormatVersion\u0027,"},{"line_number":80,"context_line":"                                    HEAT_VERSIONS)"},{"line_number":81,"context_line":"    return tpl"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FPeM%3D","line":79,"in_reply_to":"AAAAUH%2F%2FRaY%3D","updated":"2014-01-16 00:31:36.000000000","message":"Done.\nAnd if remove the calling of this function. Then the function will be unused. Should I remove the function too?\nThanks.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"ef8c388dc009921a69ab129e96d0bd7097fbe107","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if tpl is None:"},{"line_number":77,"context_line":"                tpl \u003d {}"},{"line_number":78,"context_line":"            if u\u0027heat_template_version\u0027 not in tpl:"},{"line_number":79,"context_line":"                default_for_missing(tpl, u\u0027HeatTemplateFormatVersion\u0027,"},{"line_number":80,"context_line":"                                    HEAT_VERSIONS)"},{"line_number":81,"context_line":"    return tpl"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FRaY%3D","line":79,"in_reply_to":"AAAAUH%2F%2FSuM%3D","updated":"2014-01-15 16:21:55.000000000","message":"Why would we want to keep code that increases complexity and misleads the reader, but does nothing useful? It is no longer needed, so remove it.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"8697fb7a4be33f0d5220cc64daa6a36e9c0c63bd","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            if tpl is None:"},{"line_number":77,"context_line":"                tpl \u003d {}"},{"line_number":78,"context_line":"            if u\u0027heat_template_version\u0027 not in tpl:"},{"line_number":79,"context_line":"                default_for_missing(tpl, u\u0027HeatTemplateFormatVersion\u0027,"},{"line_number":80,"context_line":"                                    HEAT_VERSIONS)"},{"line_number":81,"context_line":"    return tpl"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FSuM%3D","line":79,"in_reply_to":"AAAAUH%2F%2FTRc%3D","updated":"2014-01-15 12:01:09.000000000","message":"There are so many tests related with this in heat. \nI just think that should we keep this and not remove this?","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"082e273660d133158e3cbeb7ae408eab4afb838f","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    This is currently only applied to YAML templates."},{"line_number":89,"context_line":"    \u0027\u0027\u0027"},{"line_number":90,"context_line":"    # if version is missing, implicitly use the lastest one"},{"line_number":91,"context_line":"    if version_param not in tpl:"},{"line_number":92,"context_line":"        tpl[version_param] \u003d versions[-1]"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    # create empty placeholders for any of the main dict sections"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FTRQ%3D","line":91,"updated":"2014-01-15 10:09:14.000000000","message":"And we can remove this?","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"6b108642603fb39ee3e7530b05fa825590dfde9e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    This is currently only applied to YAML templates."},{"line_number":89,"context_line":"    \u0027\u0027\u0027"},{"line_number":90,"context_line":"    # if version is missing, implicitly use the lastest one"},{"line_number":91,"context_line":"    if version_param not in tpl:"},{"line_number":92,"context_line":"        tpl[version_param] \u003d versions[-1]"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    # create empty placeholders for any of the main dict sections"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FN9o%3D","line":91,"in_reply_to":"AAAAUH%2F%2FTRQ%3D","updated":"2014-01-16 09:08:46.000000000","message":"Yes. The whole function will be removed.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"02153d2e5324cf38d94d907ca81377294b1c4be6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    if len(tmpl_str) \u003e cfg.CONF.max_template_size:"},{"line_number":60,"context_line":"        msg \u003d _(\u0027Template exceeds maximum allowed size.\u0027)"},{"line_number":61,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":62,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":63,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":64,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":65,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMoc%3D","line":62,"updated":"2014-01-16 14:51:12.000000000","message":"We should be looking for keys in the loaded template, not for substrings in the template string.","commit_id":"fcc687e717aa8e916998ffd3bee53114c53c156f"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"cbf1f7dc1a35d193d785416470602db763611476","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    if len(tmpl_str) \u003e cfg.CONF.max_template_size:"},{"line_number":60,"context_line":"        msg \u003d _(\u0027Template exceeds maximum allowed size.\u0027)"},{"line_number":61,"context_line":"        raise exception.RequestLimitExceeded(message\u003dmsg)"},{"line_number":62,"context_line":"    if not (\u0027HeatTemplateFormatVersion\u0027 in tmpl_str"},{"line_number":63,"context_line":"            or \u0027heat_template_version\u0027 in tmpl_str"},{"line_number":64,"context_line":"            or \u0027AWSTemplateFormatVersion\u0027 in tmpl_str):"},{"line_number":65,"context_line":"        raise ValueError(_(\"Template format version not found.\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMZA%3D","line":62,"in_reply_to":"AAAAUH%2F%2FMoc%3D","updated":"2014-01-16 15:35:49.000000000","message":"This is why I said this patch depends on another. I think it\u0027s better to check this after making sure \"tpl\" is dict.\nI will move this check to line 76, is it ok?","commit_id":"fcc687e717aa8e916998ffd3bee53114c53c156f"}],"heat/tests/test_api_cfn_v1.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"55a9621af33171bf81a5d5568b77adadab02684a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from heat.tests import utils"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"policy_path \u003d os.path.dirname(os.path.realpath(__file__)) + \"/policy/\""},{"line_number":33,"context_line":"template \u003d {u\u0027AWSTemplateFormatVersion\u0027: u\u00272010-09-09\u0027, u\u0027Foo\u0027: u\u0027bar\u0027}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class CfnStackControllerTest(HeatTestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F%2FCmc%3D","line":33,"updated":"2014-01-18 02:19:39.000000000","message":"This should be a class level variable, not a global.","commit_id":"c68de33256af2cd6aaf68d7f6f1f47244382390f"}],"heat/tests/test_hot.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"02153d2e5324cf38d94d907ca81377294b1c4be6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class HOTemplateTest(HeatTestCase):"},{"line_number":32,"context_line":"    \"\"\"Test processing of HOT templates.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_defaults(self):"},{"line_number":35,"context_line":"        \"\"\"Test default content behavior of HOT template.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        tmpl \u003d parser.Template(hot_tpl_empty)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMno%3D","side":"PARENT","line":34,"updated":"2014-01-16 14:51:12.000000000","message":"Why are we deleting this test? The template has a version already; it should work.","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"84a2270a9d6efb6f4d5960d1a261c3355af47657","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class HOTemplateTest(HeatTestCase):"},{"line_number":32,"context_line":"    \"\"\"Test processing of HOT templates.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_defaults(self):"},{"line_number":35,"context_line":"        \"\"\"Test default content behavior of HOT template.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        tmpl \u003d parser.Template(hot_tpl_empty)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2B5Vs%3D","side":"PARENT","line":34,"in_reply_to":"AAAAUH%2F%2FMXU%3D","updated":"2014-01-21 00:05:39.000000000","message":"That\u0027s incorrect, the parser.Template class (which is actually implemented in template.py) returns default values for all of those sections, and that\u0027s what this test is testing. It is nothing to do with the code being modified (which did not do anything to HOT templates, is called _before_ creating the Template object, and is not called in this test at all).","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"cbf1f7dc1a35d193d785416470602db763611476","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class HOTemplateTest(HeatTestCase):"},{"line_number":32,"context_line":"    \"\"\"Test processing of HOT templates.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_defaults(self):"},{"line_number":35,"context_line":"        \"\"\"Test default content behavior of HOT template.\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        tmpl \u003d parser.Template(hot_tpl_empty)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMXU%3D","side":"PARENT","line":34,"in_reply_to":"AAAAUH%2F%2FMno%3D","updated":"2014-01-16 15:35:49.000000000","message":"I think if remove the line45-48, there is no need to keep this test. And this test the default values, but now we won\u0027t set the default values. What do you think about?","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"}],"heat/tests/test_template_format.py":[{"author":{"_account_id":4330,"name":"Tomas Sedovic","email":"tsedovic@redhat.com","username":"tomas-8c8"},"change_message_id":"46f4c83c4b35917f6152b83d37d19bad72468b24","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def test_parse_no_version_format(self):"},{"line_number":109,"context_line":"        yaml \u003d \u0027\u0027"},{"line_number":110,"context_line":"        self.assertRaises(ValueError, template_format.parse, yaml)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class YamlParseExceptions(HeatTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FTSQ%3D","line":110,"updated":"2014-01-15 10:03:28.000000000","message":"Could you please add another check similar to yaml2 on the line 86?\n\ne.g. yaml2 \u003d \u0027\u0027\u0027Parameters: {}\nMappings: {}\nResources: {}\nOutputs: {}\u0027\u0027\u0027\n\nJust to make sure this isn\u0027t failing because the template is empty but because the version\u0027s missing.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"8697fb7a4be33f0d5220cc64daa6a36e9c0c63bd","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def test_parse_no_version_format(self):"},{"line_number":109,"context_line":"        yaml \u003d \u0027\u0027"},{"line_number":110,"context_line":"        self.assertRaises(ValueError, template_format.parse, yaml)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class YamlParseExceptions(HeatTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FStw%3D","line":110,"in_reply_to":"AAAAUH%2F%2FTSQ%3D","updated":"2014-01-15 12:01:09.000000000","message":"Done.","commit_id":"d4773f8bda18d5c416dadcdf484548c2adc5f72d"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"02153d2e5324cf38d94d907ca81377294b1c4be6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"class YamlMinimalTest(HeatTestCase):"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_minimal_yaml(self):"},{"line_number":85,"context_line":"        yaml1 \u003d \u0027\u0027"},{"line_number":86,"context_line":"        yaml2 \u003d \u0027\u0027\u0027HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":87,"context_line":"Parameters: {}"},{"line_number":88,"context_line":"Mappings: {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMm4%3D","side":"PARENT","line":85,"updated":"2014-01-16 14:51:12.000000000","message":"Shouldn\u0027t we just change this to including a version, rather than deleting the whole test?","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"84a2270a9d6efb6f4d5960d1a261c3355af47657","unresolved":false,"context_lines":[{"line_number":82,"context_line":"class YamlMinimalTest(HeatTestCase):"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_minimal_yaml(self):"},{"line_number":85,"context_line":"        yaml1 \u003d \u0027\u0027"},{"line_number":86,"context_line":"        yaml2 \u003d \u0027\u0027\u0027HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":87,"context_line":"Parameters: {}"},{"line_number":88,"context_line":"Mappings: {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2B5VQ%3D","side":"PARENT","line":85,"in_reply_to":"AAAAUH%2F%2FMWw%3D","updated":"2014-01-21 00:05:39.000000000","message":"You are correct about this one :)","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"cbf1f7dc1a35d193d785416470602db763611476","unresolved":false,"context_lines":[{"line_number":82,"context_line":"class YamlMinimalTest(HeatTestCase):"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_minimal_yaml(self):"},{"line_number":85,"context_line":"        yaml1 \u003d \u0027\u0027"},{"line_number":86,"context_line":"        yaml2 \u003d \u0027\u0027\u0027HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":87,"context_line":"Parameters: {}"},{"line_number":88,"context_line":"Mappings: {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FMWw%3D","side":"PARENT","line":85,"in_reply_to":"AAAAUH%2F%2FMm4%3D","updated":"2014-01-16 15:35:49.000000000","message":"No default values for Parameters, Mappings, Resources, Outputs, and I think no need to keep this test.\nWhat do you think about?","commit_id":"aaa4132b892b753e1cace20bcea268236fe18730"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"7c39831e694e53b83feaf113941008a641907f80","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Resources: {}"},{"line_number":100,"context_line":"Outputs: {}"},{"line_number":101,"context_line":"\u0027\u0027\u0027"},{"line_number":102,"context_line":"        self.assertRaises(ValueError, template_format.parse, yaml2)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class YamlParseExceptions(HeatTestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2B2yE%3D","line":102,"updated":"2014-01-21 11:46:16.000000000","message":"Will be good, if you add assertEqual for error message","commit_id":"2ef8dd989d5346f2a2a16d53557014be8845656d"},{"author":{"_account_id":8289,"name":"huangtianhua","email":"tiantian223@163.com","username":"huangtianhua"},"change_message_id":"2b46f6284e7c97d66d91a9a09d0941f93b3a9cd8","unresolved":false,"context_lines":[{"line_number":99,"context_line":"Resources: {}"},{"line_number":100,"context_line":"Outputs: {}"},{"line_number":101,"context_line":"\u0027\u0027\u0027"},{"line_number":102,"context_line":"        self.assertRaises(ValueError, template_format.parse, yaml2)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class YamlParseExceptions(HeatTestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2B1ts%3D","line":102,"in_reply_to":"AAAAUH%2F%2B2yE%3D","updated":"2014-01-21 15:13:55.000000000","message":"Thanks.\nAnother patch which depends on this patch will add assertEqual for  error message. Is it Ok?\nhttps://review.openstack.org/#/c/67396/","commit_id":"2ef8dd989d5346f2a2a16d53557014be8845656d"}]}
