)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ee1f2d7769b73aebca3a629777579d44962a1cf1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Port libvirt.test_firewall to Python 3"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Replace filter() with a list-comprehension to get a list on Python 3"},{"line_number":10,"context_line":"* Decode proecess_input if it is bytes according to recent change in"},{"line_number":11,"context_line":"  1a2db4cdc00f9225411f8d089c9c7d70fa08928a"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially-Implements: blueprint goal-python35"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba5201f7_035db978","line":10,"updated":"2017-01-05 15:55:37.000000000","message":"s/proecss_input/process_input/","commit_id":"83923ad2272c8327d9e5fc5be1e99561c4c3f4df"}],"nova/tests/unit/virt/libvirt/test_firewall.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3064877a8deebc55515f68027e04a8b60e4db654","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        regex \u003d re.compile(\u0027\\[0\\:0\\] -A .* -j ACCEPT -p icmp \u0027"},{"line_number":281,"context_line":"                           \u0027-s 192.168.11.0/24\u0027)"},{"line_number":282,"context_line":"        match_rules \u003d [rule for rule in self.out_rules if regex.match(rule)]"},{"line_number":283,"context_line":"        self.assertGreater(len(match_rules), 0,"},{"line_number":284,"context_line":"                           \"ICMP acceptance rule wasn\u0027t added\")"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        regex \u003d re.compile(\u0027\\[0\\:0\\] -A .* -j ACCEPT -p icmp -m icmp \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_43bff4fa","line":283,"range":{"start_line":282,"start_character":0,"end_line":283,"end_character":47},"updated":"2016-12-09 07:57:08.000000000","message":"i like to just wrap filter in list but not blocking on this.","commit_id":"89cc6eca13fce6ce774ce1056a13a1350a2735ad"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"11223dcd37017d23e2a662d890450be231477056","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        regex \u003d re.compile(\u0027\\[0\\:0\\] -A .* -j ACCEPT -p icmp \u0027"},{"line_number":281,"context_line":"                           \u0027-s 192.168.11.0/24\u0027)"},{"line_number":282,"context_line":"        match_rules \u003d [rule for rule in self.out_rules if regex.match(rule)]"},{"line_number":283,"context_line":"        self.assertGreater(len(match_rules), 0,"},{"line_number":284,"context_line":"                           \"ICMP acceptance rule wasn\u0027t added\")"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        regex \u003d re.compile(\u0027\\[0\\:0\\] -A .* -j ACCEPT -p icmp -m icmp \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a71b18c_e9a2a14a","line":283,"range":{"start_line":282,"start_character":0,"end_line":283,"end_character":47},"in_reply_to":"3a71b18c_43bff4fa","updated":"2016-12-09 08:55:38.000000000","message":"Both are okay :-), I follow the guide in https://wiki.openstack.org/wiki/Python3#Common_patterns\n\nmap() and filter() if a list is needed on Python 3:\n\n    Replace map(func, data) with [func(item) for item in data]\n    Replace filter(lambda obj: test(obj), data) with [obj for obj in data if test(obj)]\n    Note: Usually, tests fail because map() or filter() objects have no length","commit_id":"89cc6eca13fce6ce774ce1056a13a1350a2735ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"493913fa2c5e6f04a0e0ddf2cdf8711a3e9cc679","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        def fake_iptables_execute(*cmd, **kwargs):"},{"line_number":230,"context_line":"            process_input \u003d kwargs.get(\u0027process_input\u0027)"},{"line_number":231,"context_line":"            if process_input is not None and isinstance(process_input, bytes):"},{"line_number":232,"context_line":"                process_input \u003d process_input.decode(\u0027utf-8\u0027)"},{"line_number":233,"context_line":"            if cmd \u003d\u003d (\u0027ip6tables-save\u0027, \u0027-c\u0027):"},{"line_number":234,"context_line":"                return \u0027\\n\u0027.join(self.in6_filter_rules), None"},{"line_number":235,"context_line":"            if cmd \u003d\u003d (\u0027iptables-save\u0027, \u0027-c\u0027):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_6447e4bb","line":232,"range":{"start_line":231,"start_character":12,"end_line":232,"end_character":61},"updated":"2017-01-02 15:54:08.000000000","message":"Could we use oslo_utils.safe_decode instead here?","commit_id":"89bf28a4391988c58ccce8f34d63f93a18083e93"}]}
