)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"859dd0d437b6c3a56876dab88fcaaafede5ec2c5","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clean up a bunch of deprecation warnings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"pytest still complains ome 20k warnings, but the vast majority are"},{"line_number":10,"context_line":"actually because of eventlet."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If48cda4ae206266bb41a4065cd90c17cbac84b7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6d067e88_303b7d8d","line":9,"range":{"start_line":9,"start_character":23,"end_line":9,"end_character":26},"updated":"2022-07-26 22:22:53.000000000","message":"\"about some\"","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"859dd0d437b6c3a56876dab88fcaaafede5ec2c5","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Clean up a bunch of deprecation warnings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"pytest still complains ome 20k warnings, but the vast majority are"},{"line_number":10,"context_line":"actually because of eventlet."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If48cda4ae206266bb41a4065cd90c17cbac84b7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"07049ff3_414d317a","line":10,"range":{"start_line":10,"start_character":20,"end_line":10,"end_character":28},"updated":"2022-07-26 22:22:53.000000000","message":"Good news is, eventlet\u0027s next release should clean them up: https://github.com/eventlet/eventlet/pull/766","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"58df62da0c1e6b3883168d1547586ac04ad119e3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Clean up a bunch of deprecation warnings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"pytest still complains ome 20k warnings, but the vast majority are"},{"line_number":10,"context_line":"actually because of eventlet."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If48cda4ae206266bb41a4065cd90c17cbac84b7f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ef7bbf95_f64beef3","line":10,"updated":"2022-07-27 08:03:12.000000000","message":"Lol, thanks evenlet :P Nice they\u0027ll be cleaned up in the future tho.","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7e3e99bb30228b559adbe2101099f8fb218924e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"83629ae7_941caa21","updated":"2022-12-12 10:42:56.000000000","message":"I refactored to make the _assertDictContainsSubset re-usable: https://review.opendev.org/c/openstack/swift/+/867207","commit_id":"401a6d6b0a051c9ec7f37e3592354ca1b9a4b202"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"01c8325422acbb2e89220247ecf1adcc14caf8aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"377465c2_0e367303","in_reply_to":"83629ae7_941caa21","updated":"2022-12-13 19:57:41.000000000","message":"Squashed in, thanks!","commit_id":"401a6d6b0a051c9ec7f37e3592354ca1b9a4b202"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"268f094965e377f6ef989ea753300fd6adc8c4f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2e99e5da_f4bfc7a1","updated":"2023-01-07 02:54:01.000000000","message":"Given how we\u0027ve seen warnings bloat test times to the point of timing out before, I feel like we probably ought to land this...","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e05356c612681161bcff04d8416a71af57cf9404","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ca138d93_e1da6333","updated":"2023-01-12 01:03:20.000000000","message":"Yup all looks like a good clean up to me. Only thing I suggest is moving the filterwarning to swift.__init__.py with the others. Once that\u0027s done I\u0027d happily land this one!\n","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b0ec91b77c63b56bda9019f32fec34285bc1b337","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"20270921_77b08e0b","updated":"2022-12-27 21:34:36.000000000","message":"check experimental","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e1866edc3e5eed442c2183d06759a23ee9e59058","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6c9fb7ea_af59b437","updated":"2023-01-07 23:14:32.000000000","message":"check experimental","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"52ca029b597c4fdc007e12d89633c16e20913027","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cedb116d_a19479a6","updated":"2023-01-18 02:34:56.000000000","message":"recheck\n\nLooks like a transient HTTP error reading the constraints file.","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"edf579382dc568ee21247b96fa1b603ad54f51dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b8bcd8e0_cc4b65e6","updated":"2023-01-17 22:14:09.000000000","message":"recheck\n\ndocs build should be fixed now, via https://review.opendev.org/c/openstack/swift/+/870853","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5d4da54575b09801b9c9feabf46a48da852bd895","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1c842e7d_5ffb596e","updated":"2023-01-18 16:25:26.000000000","message":"recheck\n\npmlogger troubles again :-/","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"a78c234bbe76134388d286e8bec2878c0503b0e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f136ee1e_bc6f25f6","updated":"2023-01-16 09:33:52.000000000","message":"recheck\n\ntempest failure looks unrelated\n\n  lib/neutron_plugins/ovn_agent:start_ovn:717 :   sudo ovn-nbctl --db\u003dunix:/var/run/ovn/ovnnb_db.sock set-ssl /opt/stack/data/CA/int-ca/private/devstack-cert.key /opt/stack/data/CA/int-ca/devstack-cert.crt /opt/stack/data/CA/int-ca/ca-chain.pem\novn-nbctl: unix:/var/run/ovn/ovnnb_db.sock: database connection failed (No such file or directory)","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"088056eaa79585e10f922e9d0f626de3fe5ca9e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"43b6099f_5dbee27a","updated":"2023-01-06 23:34:35.000000000","message":"recheck\n\ntox4 issues should be sorted now.","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"}],"swift/__init__.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"aa5b836e46ce2af43f3726cee4720abc73e44143","unresolved":true,"context_lines":[{"line_number":93,"context_line":"# Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":94,"context_line":"warnings.filterwarnings("},{"line_number":95,"context_line":"    \u0027ignore\u0027, module\u003d\u0027eventlet\u0027,"},{"line_number":96,"context_line":"    message\u003d\u0027capitalize_response_headers is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"59a33cbb_4fe6cf85","line":96,"updated":"2022-12-13 22:15:36.000000000","message":"Looks like this isn\u0027t working as intended...","commit_id":"cfd02fbdf945379f2e12e21061fd5ea9e1fa48aa"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"cd5001dfb93574ff51f9fcd3e3e6caafa7d8d480","unresolved":true,"context_lines":[{"line_number":93,"context_line":"# Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":94,"context_line":"warnings.filterwarnings("},{"line_number":95,"context_line":"    \u0027ignore\u0027, module\u003d\u0027eventlet\u0027,"},{"line_number":96,"context_line":"    message\u003d\u0027capitalize_response_headers is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e91577cb_8ec1f644","line":96,"in_reply_to":"59a33cbb_4fe6cf85","updated":"2022-12-19 20:15:29.000000000","message":"Maybe it\u0027s that pytest does all the imports as part of discover (and we set up the filters as side effects), then pytest clears all warning filters and installs its own...?","commit_id":"cfd02fbdf945379f2e12e21061fd5ea9e1fa48aa"}],"swift/common/wsgi.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e05356c612681161bcff04d8416a71af57cf9404","unresolved":true,"context_lines":[{"line_number":660,"context_line":"        ready_callback()"},{"line_number":661,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":662,"context_line":"    warnings.filterwarnings("},{"line_number":663,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":664,"context_line":"    try:"},{"line_number":665,"context_line":"        wsgi.server(sock, app, wsgi_logger, **server_kwargs)"},{"line_number":666,"context_line":"    except socket.error as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"70a8dd43_0ca98d74","line":663,"updated":"2023-01-12 01:03:20.000000000","message":"WE should probable just move this to where we specifiy the others:\n\nhttps://paste.opendev.org/show/818240/","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c4a552222ed13dd5700d748ce1d9bfa7b38ce80e","unresolved":true,"context_lines":[{"line_number":660,"context_line":"        ready_callback()"},{"line_number":661,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":662,"context_line":"    warnings.filterwarnings("},{"line_number":663,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":664,"context_line":"    try:"},{"line_number":665,"context_line":"        wsgi.server(sock, app, wsgi_logger, **server_kwargs)"},{"line_number":666,"context_line":"    except socket.error as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c72504ec_36fd6c29","line":663,"in_reply_to":"70a8dd43_0ca98d74","updated":"2023-01-12 17:52:58.000000000","message":"I tried that back on patchset 4, but it still let warnings slip by: https://zuul.opendev.org/t/openstack/build/9ad5d220310a4c90882980798f1a1ba7/log/job-output.txt#9591-9598","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"ce96bc211dd7634e4762d5b1182cfe2561e80608","unresolved":true,"context_lines":[{"line_number":660,"context_line":"        ready_callback()"},{"line_number":661,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":662,"context_line":"    warnings.filterwarnings("},{"line_number":663,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":664,"context_line":"    try:"},{"line_number":665,"context_line":"        wsgi.server(sock, app, wsgi_logger, **server_kwargs)"},{"line_number":666,"context_line":"    except socket.error as err:"}],"source_content_type":"text/x-python","patch_set":6,"id":"d161dc85_0dbfc487","line":663,"in_reply_to":"c72504ec_36fd6c29","updated":"2023-01-13 02:52:36.000000000","message":"huh, ok. I didn\u0027t notice them when I tired locally, although maybe I missed them. OK, then I wont make that a blocker in any case!","commit_id":"20b48a6900c8c53f009416256279ce8c89cecf27"}],"test/unit/common/test_db_replicator.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40361142253689b0a5499369c5a260e230c4e2d5","unresolved":true,"context_lines":[{"line_number":287,"context_line":"    info \u003d {\u0027account\u0027: TEST_ACCOUNT_NAME}"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"class _TestReplicator(db_replicator.Replicator):"},{"line_number":291,"context_line":"    server_type \u003d \u0027container\u0027"},{"line_number":292,"context_line":"    ring_file \u003d \u0027container.ring.gz\u0027"},{"line_number":293,"context_line":"    brokerclass \u003d FakeBroker"}],"source_content_type":"text/x-python","patch_set":1,"id":"71e4a00e_bee432a8","line":290,"updated":"2022-10-21 20:17:06.000000000","message":"Maybe just go with SubclassedReplicator?","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7e3e99bb30228b559adbe2101099f8fb218924e8","unresolved":true,"context_lines":[{"line_number":287,"context_line":"    info \u003d {\u0027account\u0027: TEST_ACCOUNT_NAME}"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"class _TestReplicator(db_replicator.Replicator):"},{"line_number":291,"context_line":"    server_type \u003d \u0027container\u0027"},{"line_number":292,"context_line":"    ring_file \u003d \u0027container.ring.gz\u0027"},{"line_number":293,"context_line":"    brokerclass \u003d FakeBroker"}],"source_content_type":"text/x-python","patch_set":1,"id":"9452acac_76c06669","line":290,"in_reply_to":"71e4a00e_bee432a8","updated":"2022-12-12 10:42:56.000000000","message":"or ConcreteReplicator ???\n\neither way, might be useful to distinguish from the notion of test/fake classes that we define in other scenarios","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"01c8325422acbb2e89220247ecf1adcc14caf8aa","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    info \u003d {\u0027account\u0027: TEST_ACCOUNT_NAME}"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"class _TestReplicator(db_replicator.Replicator):"},{"line_number":291,"context_line":"    server_type \u003d \u0027container\u0027"},{"line_number":292,"context_line":"    ring_file \u003d \u0027container.ring.gz\u0027"},{"line_number":293,"context_line":"    brokerclass \u003d FakeBroker"}],"source_content_type":"text/x-python","patch_set":1,"id":"0ed6ab16_cf70723d","line":290,"in_reply_to":"9452acac_76c06669","updated":"2022-12-13 19:57:41.000000000","message":"Done","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"}],"test/unit/container/test_backend.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7e3e99bb30228b559adbe2101099f8fb218924e8","unresolved":true,"context_lines":[{"line_number":2139,"context_line":""},{"line_number":2140,"context_line":"        iters \u003d 100"},{"line_number":2141,"context_line":"        for i in range(iters):"},{"line_number":2142,"context_line":"            policy_index \u003d random.randint(0, iters // 10)"},{"line_number":2143,"context_line":"            name \u003d \u0027object-%s\u0027 % random.randint(0, iters // 10)"},{"line_number":2144,"context_line":"            size \u003d random.randint(0, iters)"},{"line_number":2145,"context_line":"            broker.put_object(name, next(ts).internal, size, \u0027text/plain\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"0d5facb3_7d453b2e","line":2142,"range":{"start_line":2142,"start_character":45,"end_line":2142,"end_character":56},"updated":"2022-12-12 10:42:56.000000000","message":"iters is constant right? so do we lose much by just using the literal 10 here? is it significant to show the relationship with iters?","commit_id":"401a6d6b0a051c9ec7f37e3592354ca1b9a4b202"}],"test/unit/helpers.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40361142253689b0a5499369c5a260e230c4e2d5","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        conf, logger\u003dprosrv.logger)"},{"line_number":218,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":219,"context_line":"    warnings.filterwarnings("},{"line_number":220,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":221,"context_line":"    prospa \u003d spawn(wsgi.server, prolis, logging_prosv, nl,"},{"line_number":222,"context_line":"                   protocol\u003dSwiftHttpProtocol,"},{"line_number":223,"context_line":"                   capitalize_response_headers\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"cc13f951_c7959d68","line":220,"updated":"2022-10-21 20:17:06.000000000","message":"Maybe we should do this in swift/__init__.py like we do for some cryptography warnings?","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"784f584cc0fe0d10ac66f8e423476f5b343151a5","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        conf, logger\u003dprosrv.logger)"},{"line_number":218,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":219,"context_line":"    warnings.filterwarnings("},{"line_number":220,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":221,"context_line":"    prospa \u003d spawn(wsgi.server, prolis, logging_prosv, nl,"},{"line_number":222,"context_line":"                   protocol\u003dSwiftHttpProtocol,"},{"line_number":223,"context_line":"                   capitalize_response_headers\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"debb0839_187665a1","line":220,"in_reply_to":"cc13f951_c7959d68","updated":"2022-12-13 06:02:02.000000000","message":"Seeing as we disable capitalize_response_headers in `swift/wsgi.py`, yeah I think it makes sense to move it into `swift/__init__.py`. I mean we are specifically adding disabling it, so yeah we know eventlet.","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"01c8325422acbb2e89220247ecf1adcc14caf8aa","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        conf, logger\u003dprosrv.logger)"},{"line_number":218,"context_line":"    # Yes, eventlet, we know -- we have to support bad clients, though"},{"line_number":219,"context_line":"    warnings.filterwarnings("},{"line_number":220,"context_line":"        \u0027ignore\u0027, message\u003d\u0027capitalize_response_headers is disabled\u0027)"},{"line_number":221,"context_line":"    prospa \u003d spawn(wsgi.server, prolis, logging_prosv, nl,"},{"line_number":222,"context_line":"                   protocol\u003dSwiftHttpProtocol,"},{"line_number":223,"context_line":"                   capitalize_response_headers\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"76c87685_532fff48","line":220,"in_reply_to":"debb0839_187665a1","updated":"2022-12-13 19:57:41.000000000","message":"Done","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"}],"test/unit/obj/test_auditor.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"58df62da0c1e6b3883168d1547586ac04ad119e3","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"        should_contain \u003d {\u0027name\u0027: \u0027/a/c_ec/o\u0027, \u0027X-Object-Meta-Flavor\u0027: \u0027peach\u0027}"},{"line_number":1724,"context_line":"        self.assertEqual(should_contain, {"},{"line_number":1725,"context_line":"            k: calls[4][1][k] for k in should_contain if k in calls[4][1]})"},{"line_number":1726,"context_line":"        self.assertIn(\u0027node/sda/objects-2/0/\u0027, calls[4][2])  # data_file_path"},{"line_number":1727,"context_line":"        self.assertTrue(calls[4][2].endswith(\u0027.data\u0027))  # data_file_path"},{"line_number":1728,"context_line":"        self.assertEqual({}, calls[4][3])"}],"source_content_type":"text/x-python","patch_set":1,"id":"13d8f4ca_c9986a79","line":1725,"updated":"2022-07-27 08:03:12.000000000","message":"Can we just create our own assertDictContainsSubset? Because that would be much clearer.","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c1cfaffbffd27b31f7a6e57963e149bff2efee27","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"        should_contain \u003d {\u0027name\u0027: \u0027/a/c_ec/o\u0027, \u0027X-Object-Meta-Flavor\u0027: \u0027peach\u0027}"},{"line_number":1724,"context_line":"        self.assertEqual(should_contain, {"},{"line_number":1725,"context_line":"            k: calls[4][1][k] for k in should_contain if k in calls[4][1]})"},{"line_number":1726,"context_line":"        self.assertIn(\u0027node/sda/objects-2/0/\u0027, calls[4][2])  # data_file_path"},{"line_number":1727,"context_line":"        self.assertTrue(calls[4][2].endswith(\u0027.data\u0027))  # data_file_path"},{"line_number":1728,"context_line":"        self.assertEqual({}, calls[4][3])"}],"source_content_type":"text/x-python","patch_set":1,"id":"c0ab81ff_4a6cce97","line":1725,"in_reply_to":"13d8f4ca_c9986a79","updated":"2022-07-27 10:41:57.000000000","message":"we already have it https://github.com/openstack/swift/blob/d7c08d8ea75ebeb1a9614d13e582b53ccef34ef7/test/unit/obj/test_diskfile.py#L1015-L1042","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40361142253689b0a5499369c5a260e230c4e2d5","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"        should_contain \u003d {\u0027name\u0027: \u0027/a/c_ec/o\u0027, \u0027X-Object-Meta-Flavor\u0027: \u0027peach\u0027}"},{"line_number":1724,"context_line":"        self.assertEqual(should_contain, {"},{"line_number":1725,"context_line":"            k: calls[4][1][k] for k in should_contain if k in calls[4][1]})"},{"line_number":1726,"context_line":"        self.assertIn(\u0027node/sda/objects-2/0/\u0027, calls[4][2])  # data_file_path"},{"line_number":1727,"context_line":"        self.assertTrue(calls[4][2].endswith(\u0027.data\u0027))  # data_file_path"},{"line_number":1728,"context_line":"        self.assertEqual({}, calls[4][3])"}],"source_content_type":"text/x-python","patch_set":1,"id":"8af0e8ee_1608dd73","line":1725,"in_reply_to":"c0ab81ff_4a6cce97","updated":"2022-10-21 20:17:06.000000000","message":"+1, good call. I should probably move some of these helpers (like assertLengthEquals) up to somewhere in test/__init__.py, too...","commit_id":"3addd81d1d73df18638db9e6d60ec6792aaa3a7d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7e3e99bb30228b559adbe2101099f8fb218924e8","unresolved":true,"context_lines":[{"line_number":1717,"context_line":""},{"line_number":1718,"context_line":"        should_contain \u003d {\u0027name\u0027: \u0027/a/c/o0\u0027, \u0027X-Object-Meta-Flavor\u0027: \u0027banana\u0027}"},{"line_number":1719,"context_line":"        self.assertEqual(should_contain, {"},{"line_number":1720,"context_line":"            k: calls[2][1][k] for k in should_contain if k in calls[2][1]})"},{"line_number":1721,"context_line":"        self.assertIn(\u0027node/sda/objects/0/\u0027, calls[2][2])  # data_file_path"},{"line_number":1722,"context_line":"        self.assertTrue(calls[2][2].endswith(\u0027.data\u0027))  # data_file_path"},{"line_number":1723,"context_line":"        self.assertEqual({}, calls[2][3])"}],"source_content_type":"text/x-python","patch_set":3,"id":"0890dd61_fea0b797","line":1720,"updated":"2022-12-12 10:42:56.000000000","message":"are we going to re-use the _assertDictContainsSubset in test_diskfile?","commit_id":"401a6d6b0a051c9ec7f37e3592354ca1b9a4b202"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"a78c234bbe76134388d286e8bec2878c0503b0e9","unresolved":false,"context_lines":[{"line_number":1717,"context_line":""},{"line_number":1718,"context_line":"        should_contain \u003d {\u0027name\u0027: \u0027/a/c/o0\u0027, \u0027X-Object-Meta-Flavor\u0027: \u0027banana\u0027}"},{"line_number":1719,"context_line":"        self.assertEqual(should_contain, {"},{"line_number":1720,"context_line":"            k: calls[2][1][k] for k in should_contain if k in calls[2][1]})"},{"line_number":1721,"context_line":"        self.assertIn(\u0027node/sda/objects/0/\u0027, calls[2][2])  # data_file_path"},{"line_number":1722,"context_line":"        self.assertTrue(calls[2][2].endswith(\u0027.data\u0027))  # data_file_path"},{"line_number":1723,"context_line":"        self.assertEqual({}, calls[2][3])"}],"source_content_type":"text/x-python","patch_set":3,"id":"c0c28df9_014043ca","line":1720,"in_reply_to":"0890dd61_fea0b797","updated":"2023-01-16 09:33:52.000000000","message":"Done","commit_id":"401a6d6b0a051c9ec7f37e3592354ca1b9a4b202"}],"tox.ini":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"646f857a45666ffdb2eaa043e8a120eeb436e2ee","unresolved":true,"context_lines":[{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[pytest]"},{"line_number":7,"context_line":"#addopts \u003d --verbose --cov\u003dswift --cov-branch --cov-report\u003dhtml:cover --cov-report term"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"usedevelop \u003d True"}],"source_content_type":"text/x-properties","patch_set":5,"id":"434b5314_20549faf","line":7,"updated":"2022-12-22 00:04:31.000000000","message":"Whoops! Did that locally to reduce the console messages; didn\u0027t mean to push it up.","commit_id":"3fab0c925a98811aeb03838588b4ace90fcc982c"}]}
