)]}'
{"keystone/common/sql/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd6894a24b984f9d29471eb7e5e4738d62f77020","unresolved":false,"context_lines":[{"line_number":482,"context_line":"        id_column \u003d self.id_column"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        class _MaterializedPathParentComparator(hybrid.Comparator):"},{"line_number":485,"context_line":"            \"\"\"Use path hybrid property in query filtering\"\"\""},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"            def __eq__(self, other):"},{"line_number":488,"context_line":"                path \u003d getattr(other, path_column, None) or []"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_3ef0cf66","line":485,"range":{"start_line":485,"start_character":49,"end_line":485,"end_character":58},"updated":"2016-01-05 22:36:00.000000000","message":"nit: end with a period.","commit_id":"935297c8441c834c0d9ecfb7317fdb1d473e4a72"}],"keystone/tests/unit/common/test_sql_core.py":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"0fed54f014fceeb45250806bbf9c632c86bca4c9","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        self.assertEqual([parent_node.id], child_node.path1)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_subtree_request(self):"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        node1, node2, node3_1, node3_2 \u003d \\"},{"line_number":127,"context_line":"            [self._create_node() for _ in range(4)]"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_21e7f641","line":125,"updated":"2015-12-14 18:41:10.000000000","message":"You could put a docstring here explaining this hierarchy you created and some sort of test plan.","commit_id":"e44933b5e2a1a2f175640b87a1b9aeb3f9762985"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"7f8e4aa5cfcf215aaf474d311d797893e97eec12","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def test_subtree_request(self):"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        node1, node2, node3_1, node3_2 \u003d \\"},{"line_number":127,"context_line":"            [self._create_node() for _ in range(4)]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        session \u003d sql.get_session()"},{"line_number":130,"context_line":"        with session.begin():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_2c4e06c2","line":127,"updated":"2015-12-14 20:45:01.000000000","message":"I think we should get rid of the \u0027\\\u0027\nhttp://paste.openstack.org/show/481874/","commit_id":"e44933b5e2a1a2f175640b87a1b9aeb3f9762985"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"0fed54f014fceeb45250806bbf9c632c86bca4c9","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        subtree_query \u003d session.query(ExampleWithPathColumn).filter("},{"line_number":142,"context_line":"            ExampleWithPathColumn.parent1.startswith(node2)"},{"line_number":143,"context_line":"        )"},{"line_number":144,"context_line":"        self.assertEqual(2, subtree_query.count())"},{"line_number":145,"context_line":"        for i in subtree_query.all():"},{"line_number":146,"context_line":"            self.assertEqual([node1.id, node2.id], i.path1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_41c1e22d","line":143,"updated":"2015-12-14 18:41:10.000000000","message":"could also add tests creating more than one hierarchy and getting the parent of node1 (null)","commit_id":"e44933b5e2a1a2f175640b87a1b9aeb3f9762985"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"7f8e4aa5cfcf215aaf474d311d797893e97eec12","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        subtree_query \u003d session.query(ExampleWithPathColumn).filter("},{"line_number":142,"context_line":"            ExampleWithPathColumn.parent1.startswith(node2)"},{"line_number":143,"context_line":"        )"},{"line_number":144,"context_line":"        self.assertEqual(2, subtree_query.count())"},{"line_number":145,"context_line":"        for i in subtree_query.all():"},{"line_number":146,"context_line":"            self.assertEqual([node1.id, node2.id], i.path1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_99ff3e34","line":144,"updated":"2015-12-14 20:45:01.000000000","message":"For better output:\nself.assertThat(subtree_query.count(), matchers.HasLength(2))","commit_id":"e44933b5e2a1a2f175640b87a1b9aeb3f9762985"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"7f8e4aa5cfcf215aaf474d311d797893e97eec12","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        )"},{"line_number":144,"context_line":"        self.assertEqual(2, subtree_query.count())"},{"line_number":145,"context_line":"        for i in subtree_query.all():"},{"line_number":146,"context_line":"            self.assertEqual([node1.id, node2.id], i.path1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a710552_f99442e9","line":146,"updated":"2015-12-14 20:45:01.000000000","message":"assertListEqual may show better output here too","commit_id":"e44933b5e2a1a2f175640b87a1b9aeb3f9762985"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd6894a24b984f9d29471eb7e5e4738d62f77020","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        self.assertRaises(exception.ValidationError, raise_validation_error)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_subtree_request(self):"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        node1, node2, node3_1, node3_2 \u003d \\"},{"line_number":186,"context_line":"            [self._create_node() for _ in range(4)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_7e7f27ab","line":183,"updated":"2016-01-05 22:36:00.000000000","message":"nit: could we elaborate the test name so that it\u0027s a little more apparent what the outcome is?","commit_id":"935297c8441c834c0d9ecfb7317fdb1d473e4a72"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd6894a24b984f9d29471eb7e5e4738d62f77020","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_subtree_request(self):"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        node1, node2, node3_1, node3_2 \u003d \\"},{"line_number":186,"context_line":"            [self._create_node() for _ in range(4)]"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        session \u003d sql.get_session()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_7e56472b","line":185,"range":{"start_line":185,"start_character":22,"end_line":185,"end_character":38},"updated":"2016-01-05 22:36:00.000000000","message":"suggest adding a comment here to clarify why these variables are named the way they are.  The variable name `node3_1` doesn\u0027t clearly tell me what 3_1 means. Maybe just name them all sequentially and add a comment describing in more detail their relationships to each other.","commit_id":"935297c8441c834c0d9ecfb7317fdb1d473e4a72"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd6894a24b984f9d29471eb7e5e4738d62f77020","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_subtree_request(self):"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        node1, node2, node3_1, node3_2 \u003d \\"},{"line_number":186,"context_line":"            [self._create_node() for _ in range(4)]"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        session \u003d sql.get_session()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_9ef77b58","line":185,"range":{"start_line":185,"start_character":41,"end_line":185,"end_character":42},"updated":"2016-01-05 22:36:00.000000000","message":"suggest wrapping this in parenthesis so that we don\u0027t have to use a backslash for line continuation.","commit_id":"935297c8441c834c0d9ecfb7317fdb1d473e4a72"}]}
