)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"714683d5a183ade6f45cdd2ead0a5efba3e67ece","unresolved":false,"context_lines":[{"line_number":13,"context_line":"policy file. It helps to add the path to tests/etc/policy.json"},{"line_number":14,"context_line":"as policy_file to CONF."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Add unit tests for Enforcers\u0027 methods:"},{"line_number":17,"context_line":"- clear"},{"line_number":18,"context_line":"- set_rules"},{"line_number":19,"context_line":"- load_rules"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATH%2F%2FJU4%3D","line":16,"updated":"2013-10-22 14:36:25.000000000","message":"Just  one small typo:)\n\nUse Enforcer\u0027s instead of Enforcers\u0027.","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"- set_rules"},{"line_number":19,"context_line":"- load_rules"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Oslo commit: 5d6d24c4e7d674b3f804e250983e835840b45039"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I1132b209dfe09d95ba31a741fbacb3fc499ec2cb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATH%2F%2FQRc%3D","line":21,"updated":"2013-10-19 03:30:57.000000000","message":"This link seems broken, also I could not find this commit","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"}],"glance/api/policy.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    \"\"\"Responsible for loading and enforcing rules\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, default_rule\u003d\u0027default\u0027):"},{"line_number":43,"context_line":"        self.default_rule \u003d default_rule"},{"line_number":44,"context_line":"        self.enforcer \u003d policy.Enforcer()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def set_rules(self, rules, overwrite\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQQk%3D","line":43,"updated":"2013-10-19 03:30:57.000000000","message":"I don\u0027t think this will end up with the correct default value specified in conf as policy_default_rule. It doesn\u0027t seem to matter functionally so I\u0027m not sure this variable is needed.","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def set_rules(self, rules, overwrite\u003dTrue):"},{"line_number":47,"context_line":"        \"\"\"Create a new Rules object based on the provided dict of rules\"\"\""},{"line_number":48,"context_line":"        rules_obj \u003d policy.Rules(rules, self.default_rule)"},{"line_number":49,"context_line":"        self.enforcer.set_rules(rules_obj, overwrite)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def load_rules(self, force_reload\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQQA%3D","line":48,"updated":"2013-10-19 03:30:57.000000000","message":"I can remove self.default_rule here and it does not seem to affect anything. This line is probably unnecessary also, it seems that self.enforcer will handle converting from dict to a Rules object if needed.","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"}],"glance/tests/functional/db/test_registry.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def setUp(self):"},{"line_number":71,"context_line":"        self.config(policy_file\u003d"},{"line_number":72,"context_line":"                    os.path.abspath(\u0027glance/tests/etc/policy.json\u0027))"},{"line_number":73,"context_line":"        db_tests.load(get_db, reset_db)"},{"line_number":74,"context_line":"        super(TestRegistryDriver, self).setUp()"},{"line_number":75,"context_line":"        self.addCleanup(db_tests.reset)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQO0%3D","line":72,"updated":"2013-10-19 03:30:57.000000000","message":"This should not be needed in any of the functional tests since it also copies the policy file and sets self.config policy_file for you.","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"}],"glance/tests/unit/base.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        fap.close()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class UsingPolicyFileMixinTest(test_utils.BaseTestCase):"},{"line_number":91,"context_line":"    def setUp(self):"},{"line_number":92,"context_line":"        super(UsingPolicyFileMixinTest, self).setUp()"},{"line_number":93,"context_line":"        self.config(policy_file\u003d"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQPE%3D","line":90,"updated":"2013-10-19 03:30:57.000000000","message":"It doesn\u0027t seem like this is needed for tests to pass.","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"5184e0c26a7a64d3a852f3caae178020b48f774c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        fap.close()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class UsingPolicyFileMixinTest(test_utils.BaseTestCase):"},{"line_number":90,"context_line":"    def setUp(self):"},{"line_number":91,"context_line":"        super(UsingPolicyFileMixinTest, self).setUp()"},{"line_number":92,"context_line":"        self.config(policy_file\u003d"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F9bH0%3D","line":89,"updated":"2013-12-11 17:23:32.000000000","message":"I don\u0027t think we need this. Could you please explain the reasoning behind it? I know what it does, I\u0027d like to know why this can\u0027t be moved somewhere else.","commit_id":"8360e83f2414d269fb50674e7a4377252de9f1b4"}],"glance/tests/unit/test_policy.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                            {\u0027test_rule\u0027: \u0027test_value\u0027})"},{"line_number":146,"context_line":"        self.assertIn(\u0027test_rule\u0027, enforcer.enforcer.rules)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_load_rules_forse_reload_true(self):"},{"line_number":149,"context_line":"        self.config(policy_file\u003d"},{"line_number":150,"context_line":"                    os.path.abspath(\u0027glance/tests/etc/policy.json\u0027))"},{"line_number":151,"context_line":"        enforcer \u003d glance.api.policy.Enforcer()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQPU%3D","line":148,"updated":"2013-10-19 03:30:57.000000000","message":"spelling of force","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        enforcer.load_rules(True)"},{"line_number":154,"context_line":"        self.assertNotIn(\u0027test_rule\u0027, enforcer.enforcer.rules)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_load_rules_forse_reload_false(self):"},{"line_number":157,"context_line":"        self.config(policy_file\u003d"},{"line_number":158,"context_line":"                    os.path.abspath(\u0027glance/tests/etc/policy.json\u0027))"},{"line_number":159,"context_line":"        enforcer \u003d glance.api.policy.Enforcer()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQPQ%3D","line":156,"updated":"2013-10-19 03:30:57.000000000","message":"same here :)","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"}],"glance/tests/unit/v1/test_upload_utils.py":[{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"1127791aed28482cd1d8af8619ea0e1d58605c4e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        super(TestUploadUtils, self).setUp()"},{"line_number":34,"context_line":"        self.config(verbose\u003dTrue, debug\u003dTrue)"},{"line_number":35,"context_line":"        self.mox \u003d mox.Mox()"},{"line_number":36,"context_line":"        self.config(policy_file\u003d"},{"line_number":37,"context_line":"                    os.path.abspath(\u0027glance/tests/etc/policy.json\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FQOg%3D","line":36,"updated":"2013-10-19 03:30:57.000000000","message":"This doesn\u0027t seem to be needed. Am I missing something?","commit_id":"d0408121d8d9d9969713efe643b35de41f85ca07"}]}
