)]}'
{"heat/engine/resources/resource_group.py":[{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"0fd8dddc93854199a135b4960593886a497cc273","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from heat.engine import stack_resource"},{"line_number":19,"context_line":"from heat.common.exception import StackValidationFailed"},{"line_number":20,"context_line":"from heat.common.exception import InvalidTemplateAttribute"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from heat.openstack.common import log as logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"logger \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Fd5Y%3D","line":21,"updated":"2013-10-15 20:01:52.000000000","message":"I think you\u0027re missing a:\n\n from heat.openstack.common.gettextutils import _","commit_id":"0d20946b7d77e26d1db1b8e21d2702d9506c0a96"},{"author":{"_account_id":7253,"name":"Jason Dunsmore","email":"jasondunsmore@gmail.com","username":"jbd"},"change_message_id":"0fd8dddc93854199a135b4960593886a497cc273","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    properties_schema \u003d {"},{"line_number":40,"context_line":"        \"count\": {"},{"line_number":41,"context_line":"            \"Type\": \"Integer\","},{"line_number":42,"context_line":"            \"Required\": \"True\","},{"line_number":43,"context_line":"            \"Default\": 1,"},{"line_number":44,"context_line":"            \"MinValue\": 1,"},{"line_number":45,"context_line":"            \"Description\": _(\"The number of instances to create.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Fd5I%3D","line":42,"updated":"2013-10-15 20:01:52.000000000","message":"This should be:\n\n \"Required\": True,","commit_id":"0d20946b7d77e26d1db1b8e21d2702d9506c0a96"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5d0ddafb4aeb4aec956f621293db0edc29e69e93","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    nested resource definition."},{"line_number":38,"context_line":"    \"\"\""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    properties_schema \u003d {"},{"line_number":41,"context_line":"        \"count\": {"},{"line_number":42,"context_line":"            \"Type\": \"Integer\","},{"line_number":43,"context_line":"            \"Required\": True,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FT2I%3D","line":40,"updated":"2013-10-17 22:56:05.000000000","message":"Since this is a new resource could the schema be defined with properties.Schema for extra type safety? See RandomString for an example","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5d0ddafb4aeb4aec956f621293db0edc29e69e93","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \"Description\": _(\"The number of instances to create.\")"},{"line_number":47,"context_line":"        },"},{"line_number":48,"context_line":"        \"resource_def\": {"},{"line_number":49,"context_line":"            \"Type\": \"Map\","},{"line_number":50,"context_line":"            \"Required\": True,"},{"line_number":51,"context_line":"            \"Description\": _(\"Resource definition for the resources in the \""},{"line_number":52,"context_line":"                             \"group. The value of this property is the \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FT1Q%3D","line":49,"updated":"2013-10-17 22:56:05.000000000","message":"A schema for the top-level attributes would be good, that would generate docs which make it more obvious that HOT capitalization is assumed.","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5d0ddafb4aeb4aec956f621293db0edc29e69e93","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            self.resource_class \u003d stack.env.get_class(resource_type)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.properties_schema \u003d copy.deepcopy(ResourceGroup.properties_schema)"},{"line_number":75,"context_line":"        res_schema \u003d copy.deepcopy(self.resource_class.properties_schema)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.resource_schema \u003d {"},{"line_number":78,"context_line":"            \"type\": {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FT0A%3D","line":75,"updated":"2013-10-17 22:56:05.000000000","message":"Make sure this works with Schema objects as well as free-form dict schema","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5d0ddafb4aeb4aec956f621293db0edc29e69e93","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.properties_schema \u003d copy.deepcopy(ResourceGroup.properties_schema)"},{"line_number":75,"context_line":"        res_schema \u003d copy.deepcopy(self.resource_class.properties_schema)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.resource_schema \u003d {"},{"line_number":78,"context_line":"            \"type\": {"},{"line_number":79,"context_line":"                \"Type\": \"String\","},{"line_number":80,"context_line":"                \"Required\": True"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FTz8%3D","line":77,"updated":"2013-10-17 22:56:05.000000000","message":"This could be taken from resource_def rather than re-declaring","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"5d0ddafb4aeb4aec956f621293db0edc29e69e93","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        attrs \u003d self.resource_class.attributes_schema"},{"line_number":90,"context_line":"        self.attributes_schema \u003d copy.deepcopy(attrs)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        super(ResourceGroup, self).__init__(name, json_snippet, stack)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def handle_create(self):"},{"line_number":95,"context_line":"        count \u003d self.properties[\u0027count\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FTy0%3D","line":92,"updated":"2013-10-17 22:56:05.000000000","message":"Grafting in the resource schema is cool, but I worry about mixing Schema schemas and dict schemas. Maybe it will be cleaner to just implement a validate method which creates a resource and calls validate on that, then discard that resource.","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":7395,"name":"Andrew Plunk","email":"andrew.plunk@rackspace.com","username":"aplunk"},"change_message_id":"e4b80de7b7dce3fb4157fa8c71f0e3a21e99a644","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    attributes_schema \u003d {}"},{"line_number":80,"context_line":"    update_allowed_keys \u003d (\"Properties\",)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def validate(self):"},{"line_number":83,"context_line":"        # validate our basic properties"},{"line_number":84,"context_line":"        super(ResourceGroup, self).validate()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FfTI%3D","line":81,"updated":"2013-11-04 19:14:46.000000000","message":"This validate will happen before dependencies are resolved, which will cause any properties you pass in that use get_attr to resolve as none. If you rename this function and call it from handle_create the problem goes away.","commit_id":"97c60c35d0a97d5507f2d44cb2d247984626e66c"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"32c30c9720b578940c74d9f6e7de4366142dde47","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # make sure the nested resource is valid"},{"line_number":86,"context_line":"        res_def \u003d self.properties[\u0027resource_def\u0027]"},{"line_number":87,"context_line":"        res_class \u003d self.stack.env.get_class(res_def[\u0027type\u0027])"},{"line_number":88,"context_line":"        res_inst \u003d res_class(\"%s:resource_def\" % self.name, res_def,"},{"line_number":89,"context_line":"                             self.stack)"},{"line_number":90,"context_line":"        res_inst.validate()"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2FV90%3D","line":88,"updated":"2013-11-08 20:26:42.000000000","message":"res_def (json_snippet) must be translated to CFN before passing it to res_class, otherwise validate on res_inst would throw exception.","commit_id":"97c60c35d0a97d5507f2d44cb2d247984626e66c"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from heat.engine import properties"},{"line_number":20,"context_line":"from heat.engine import stack_resource"},{"line_number":21,"context_line":"from heat.common import exception"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from heat.openstack.common import log as logging"},{"line_number":24,"context_line":"from heat.openstack.common.gettextutils import _"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGFo%3D","line":22,"updated":"2013-11-14 13:52:44.000000000","message":"this empty line is redundant","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from heat.openstack.common import log as logging"},{"line_number":24,"context_line":"from heat.openstack.common.gettextutils import _"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"template_template \u003d {"},{"line_number":29,"context_line":"    \"heat_template_version\": \"2013-05-23\","}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGFc%3D","line":26,"updated":"2013-11-14 13:52:44.000000000","message":"seems to be unused","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"e3f68f461fcb1c0a274447c6d4bdfebea07287b4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from heat.openstack.common import log as logging"},{"line_number":24,"context_line":"from heat.openstack.common.gettextutils import _"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"logger \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"template_template \u003d {"},{"line_number":29,"context_line":"    \"heat_template_version\": \"2013-05-23\","}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FFTc%3D","line":26,"in_reply_to":"AAAATn%2F%2FGFc%3D","updated":"2013-11-14 17:20:09.000000000","message":"Done","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        resource_def[\u0027properties\u0027] \u003d dict((k, v)"},{"line_number":130,"context_line":"                                          for k, v"},{"line_number":131,"context_line":"                                          in resource_def[\u0027properties\u0027].items()"},{"line_number":132,"context_line":"                                          if v or include_all)"},{"line_number":133,"context_line":"        resources \u003d dict((str(k), resource_def)"},{"line_number":134,"context_line":"                         for k in range(count))"},{"line_number":135,"context_line":"        child_template[\u0027resources\u0027] \u003d resources"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGEo%3D","line":132,"updated":"2013-11-14 13:52:44.000000000","message":"maybe it makes a sense to skip it if include_all\u003d\u003dTrue?","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"e3f68f461fcb1c0a274447c6d4bdfebea07287b4","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        resource_def[\u0027properties\u0027] \u003d dict((k, v)"},{"line_number":130,"context_line":"                                          for k, v"},{"line_number":131,"context_line":"                                          in resource_def[\u0027properties\u0027].items()"},{"line_number":132,"context_line":"                                          if v or include_all)"},{"line_number":133,"context_line":"        resources \u003d dict((str(k), resource_def)"},{"line_number":134,"context_line":"                         for k in range(count))"},{"line_number":135,"context_line":"        child_template[\u0027resources\u0027] \u003d resources"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FFTE%3D","line":132,"in_reply_to":"AAAATn%2F%2FGEo%3D","updated":"2013-11-14 17:20:09.000000000","message":"Done","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"}],"heat/tests/test_resource_group.py":[{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"1001a21f89ec9423d4c00aade369100a8a3a951f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertEqual(3, len(resg.nested()))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @utils.stack_delete_after"},{"line_number":113,"context_line":"    def test_aggrigate_attribs(self):"},{"line_number":114,"context_line":"        \"\"\"Test attribute agrigation.\"\"\""},{"line_number":115,"context_line":"        resg \u003d self._create_dummy_stack()"},{"line_number":116,"context_line":"        expected \u003d [\u00270\u0027, \u00271\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FfCs%3D","line":113,"updated":"2013-10-15 15:31:25.000000000","message":"nit, I guess you meant to say \"aggregate\" ?","commit_id":"0d20946b7d77e26d1db1b8e21d2702d9506c0a96"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"1001a21f89ec9423d4c00aade369100a8a3a951f","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @utils.stack_delete_after"},{"line_number":113,"context_line":"    def test_aggrigate_attribs(self):"},{"line_number":114,"context_line":"        \"\"\"Test attribute agrigation.\"\"\""},{"line_number":115,"context_line":"        resg \u003d self._create_dummy_stack()"},{"line_number":116,"context_line":"        expected \u003d [\u00270\u0027, \u00271\u0027]"},{"line_number":117,"context_line":"        self.assertEqual(expected, resg.FnGetAtt(\u0027foo\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2FfCk%3D","line":114,"updated":"2013-10-15 15:31:25.000000000","message":"and \"aggregation\"","commit_id":"0d20946b7d77e26d1db1b8e21d2702d9506c0a96"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"841f1c61bdd9867b5a4672fb993ed97877bf3fbd","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            return templ"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        for tries in range(1, 10):"},{"line_number":73,"context_line":"            self.assertEqual(_gen_expect(tries), resg._assemble_nested(tries))"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def test_attribute_schema(self):"},{"line_number":76,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FUN0%3D","line":73,"updated":"2013-10-17 20:54:53.000000000","message":"I\u0027d rather see testing three explicitly constructed expected resources. That way the test would show the concrete expectation, rather than using logic which may or may not be right.","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"841f1c61bdd9867b5a4672fb993ed97877bf3fbd","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @utils.stack_delete_after"},{"line_number":87,"context_line":"    def test_create(self):"},{"line_number":88,"context_line":"        \"\"\"Test basic create.\"\"\""},{"line_number":89,"context_line":"        self._create_dummy_stack()"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @utils.stack_delete_after"},{"line_number":92,"context_line":"    def test_delete(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FUM8%3D","line":89,"updated":"2013-10-17 20:54:53.000000000","message":"Because this operation is at the top of each other CRUD operation, I don\u0027t think we need an explicit test just for this part. If this were to fail, those other tests would fail too at the same exact spot, producing more noise than signal.","commit_id":"5d4ab088dfa039f522b22cae840a28e74db1431d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from heat.tests import common"},{"line_number":22,"context_line":"from heat.tests import generic_resource"},{"line_number":23,"context_line":"from heat.tests import utils"},{"line_number":24,"context_line":"from heat.common.exception import InvalidTemplateAttribute"},{"line_number":25,"context_line":"from heat.common import exception"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"template \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGEA%3D","line":24,"updated":"2013-11-14 13:52:44.000000000","message":"due to hacking, we should import only modules, isn\u0027t it?\nBy the way, you import this module in a next line","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"e3f68f461fcb1c0a274447c6d4bdfebea07287b4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from heat.tests import common"},{"line_number":22,"context_line":"from heat.tests import generic_resource"},{"line_number":23,"context_line":"from heat.tests import utils"},{"line_number":24,"context_line":"from heat.common.exception import InvalidTemplateAttribute"},{"line_number":25,"context_line":"from heat.common import exception"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"template \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FFSk%3D","line":24,"in_reply_to":"AAAATn%2F%2FGEA%3D","updated":"2013-11-14 17:20:09.000000000","message":"Done","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def test_delete(self):"},{"line_number":156,"context_line":"        \"\"\"Test basic delete.\"\"\""},{"line_number":157,"context_line":"        resg \u003d self._create_dummy_stack()"},{"line_number":158,"context_line":"        self.assertTrue(resg.nested() is not None)"},{"line_number":159,"context_line":"        scheduler.TaskRunner(resg.delete)()"},{"line_number":160,"context_line":"        self.assertEqual((resg.DELETE, resg.COMPLETE), resg.nested().state)"},{"line_number":161,"context_line":"        self.assertEqual((resg.DELETE, resg.COMPLETE), resg.state)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGDM%3D","line":158,"updated":"2013-11-14 13:52:44.000000000","message":"nit: use assertIsNotNone(...)","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"e3f68f461fcb1c0a274447c6d4bdfebea07287b4","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def test_delete(self):"},{"line_number":156,"context_line":"        \"\"\"Test basic delete.\"\"\""},{"line_number":157,"context_line":"        resg \u003d self._create_dummy_stack()"},{"line_number":158,"context_line":"        self.assertTrue(resg.nested() is not None)"},{"line_number":159,"context_line":"        scheduler.TaskRunner(resg.delete)()"},{"line_number":160,"context_line":"        self.assertEqual((resg.DELETE, resg.COMPLETE), resg.nested().state)"},{"line_number":161,"context_line":"        self.assertEqual((resg.DELETE, resg.COMPLETE), resg.state)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FFSI%3D","line":158,"in_reply_to":"AAAATn%2F%2FGDM%3D","updated":"2013-11-14 17:20:09.000000000","message":"Done","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"519de4ac07c609aff47ba693a3997dd40839734b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        resg \u003d resource_group.ResourceGroup(\u0027test\u0027, snip, stack)"},{"line_number":201,"context_line":"        scheduler.TaskRunner(resg.create)()"},{"line_number":202,"context_line":"        self.stack \u003d resg.nested()"},{"line_number":203,"context_line":"        self.assertEqual(2, len(resg.nested()))"},{"line_number":204,"context_line":"        self.assertEqual((resg.CREATE, resg.COMPLETE), resg.state)"},{"line_number":205,"context_line":"        return resg"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FGBs%3D","line":203,"updated":"2013-11-14 13:52:44.000000000","message":"do we really need asserts here? Maybe it makes a sense to make test for it, instead of assert something in internal method","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"e3f68f461fcb1c0a274447c6d4bdfebea07287b4","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        resg \u003d resource_group.ResourceGroup(\u0027test\u0027, snip, stack)"},{"line_number":201,"context_line":"        scheduler.TaskRunner(resg.create)()"},{"line_number":202,"context_line":"        self.stack \u003d resg.nested()"},{"line_number":203,"context_line":"        self.assertEqual(2, len(resg.nested()))"},{"line_number":204,"context_line":"        self.assertEqual((resg.CREATE, resg.COMPLETE), resg.state)"},{"line_number":205,"context_line":"        return resg"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2FFdg%3D","line":203,"in_reply_to":"AAAATn%2F%2FGBs%3D","updated":"2013-11-14 17:20:09.000000000","message":"Since this is called in several tests, it stands in for an explicit \"create\" test, hence the asserts. See Clint\u0027s comments on patch 1 or 2.","commit_id":"ebc7655a237dce38cdac29b4193246c98672c72d"}]}
