)]}'
{"tests/unit/test_v3.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"5fc56f78480c3239b0ed7e595cbe1b7657295c7c","unresolved":true,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"class TestBranchCreation(ZuulTestCase):"},{"line_number":392,"context_line":"    tenant_config_file \u003d \u0027config/one-project/main.yaml\u0027"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def test_missed_branch_create(self):"},{"line_number":395,"context_line":"        # Test that if we miss a branch creation event, we can recover"}],"source_content_type":"text/x-python","patch_set":3,"id":"d32f9951_053722c8","line":392,"updated":"2022-03-14 22:50:06.000000000","message":"I\u0027m surprised we didn\u0027t already have a super basic config for tests, but looking it seems like we don\u0027t.","commit_id":"7f7c303ef468713805516aafc1f2a9b0f1b1d94a"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4ce07b552d130c184477439e07974a6deb7018f5","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"class TestBranchCreation(ZuulTestCase):"},{"line_number":392,"context_line":"    tenant_config_file \u003d \u0027config/one-project/main.yaml\u0027"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def test_missed_branch_create(self):"},{"line_number":395,"context_line":"        # Test that if we miss a branch creation event, we can recover"}],"source_content_type":"text/x-python","patch_set":3,"id":"93e4746b_75078d86","line":392,"updated":"2022-03-14 22:59:00.000000000","message":"We usually just use @simple_layout for those -- but I wanted to make sure we had in-repo config for this so that I could validate the results based on branch jobs.","commit_id":"7f7c303ef468713805516aafc1f2a9b0f1b1d94a"}],"zuul/configloader.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"4ce07b552d130c184477439e07974a6deb7018f5","unresolved":false,"context_lines":[{"line_number":1668,"context_line":"                min_ltime \u003d branch_cache_min_ltimes["},{"line_number":1669,"context_line":"                    tpc.project.source.connection.connection_name]"},{"line_number":1670,"context_line":"            except KeyError:"},{"line_number":1671,"context_line":"                min_ltime \u003d -1"},{"line_number":1672,"context_line":"        else:"},{"line_number":1673,"context_line":"            min_ltime \u003d -1"},{"line_number":1674,"context_line":"        branches \u003d sorted(tpc.project.source.getProjectBranches("}],"source_content_type":"text/x-python","patch_set":3,"id":"c30e92bf_9e3b695b","line":1671,"updated":"2022-03-14 22:59:00.000000000","message":"I agree, I did not expect that behavior either.\n\nI wrote it this way so that we\u0027re compatible with defaultdict or just a regular dict.  One of the possible values is th LayoutState.branch_cache_min_ltimes which is a regular dict (and since it\u0027s stored in ZK, would be difficult to change to a defaultdict).  All things considered, I think this may be the best solution.","commit_id":"7f7c303ef468713805516aafc1f2a9b0f1b1d94a"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"5fc56f78480c3239b0ed7e595cbe1b7657295c7c","unresolved":true,"context_lines":[{"line_number":1668,"context_line":"                min_ltime \u003d branch_cache_min_ltimes["},{"line_number":1669,"context_line":"                    tpc.project.source.connection.connection_name]"},{"line_number":1670,"context_line":"            except KeyError:"},{"line_number":1671,"context_line":"                min_ltime \u003d -1"},{"line_number":1672,"context_line":"        else:"},{"line_number":1673,"context_line":"            min_ltime \u003d -1"},{"line_number":1674,"context_line":"        branches \u003d sorted(tpc.project.source.getProjectBranches("}],"source_content_type":"text/x-python","patch_set":3,"id":"b654d4c7_e9723515","line":1671,"updated":"2022-03-14 22:50:06.000000000","message":"This was super unexpected defaultdict behavior for me. Basically bar.get(\u0027foo\u0027, -1) will return -1 rather than the defaultdict default value. However, you don\u0027t get a KeyError if you do bar[\u0027foo\u0027] and that returns the default. I wonder if we should reraise here instead of setting this to -1 to ensure we are using defaultdicts. But this should be fine as is.","commit_id":"7f7c303ef468713805516aafc1f2a9b0f1b1d94a"}]}
