)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c70ff351c028b60745b45ef2c1d8f567cd58e288","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Martin Hickey \u003cmartin.hickey@ie.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-25 15:24:17 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_3b523b14","line":7,"updated":"2016-02-26 04:23:23.000000000","message":"\"Use unittest2 uniformly across Neutron\"","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Martin Hickey \u003cmartin.hickey@ie.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-25 15:24:17 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_6b4bff87","line":7,"in_reply_to":"9aed3d3a_3b523b14","updated":"2016-03-02 18:12:01.000000000","message":"Ok, updated.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"2b7e14e6ab7b9d1c424ee0a368fe408b01ccb702","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_f12ac67d","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":18},"updated":"2016-02-25 21:24:01.000000000","message":"unittest is deprecated??? A reference seems required","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_abe98782","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":18},"in_reply_to":"9aed3d3a_04d16a23","updated":"2016-03-02 18:12:01.000000000","message":"Thanks all for feedback. Going to unravel myself from the confusion and add a reasonable message as far as I understand! :)","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_04d16a23","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":18},"in_reply_to":"9aed3d3a_1b35b7d9","updated":"2016-02-29 11:02:28.000000000","message":"The commit message should be changed to reflect the actual reasoning.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"0282e3b854d8e86afe84a5b1562b3b9e1666953c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_f7ed9626","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":18},"in_reply_to":"9aed3d3a_f12ac67d","updated":"2016-02-25 22:09:57.000000000","message":"Deprecated is the wrong term. And it seems I got the versions wrong. See [1]: \"unittest2 is a backport of the new features added to the unittest testing framework in Python 2.7 and onwards.\"\n\nSince neutron no longer supports Python \u003c 2.7 we can stop using unittest2 and just use unittest everywhere. (Apologies for the churn Mickey.)\n\n- [1] https://pypi.python.org/pypi/unittest2","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c70ff351c028b60745b45ef2c1d8f567cd58e288","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move unittest to unittest2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_1b35b7d9","line":9,"range":{"start_line":9,"start_character":16,"end_line":9,"end_character":18},"in_reply_to":"9aed3d3a_f7ed9626","updated":"2016-02-26 04:23:23.000000000","message":"I double-checked with lifeless on IRC [1]. It turns out that unittest2 contains bug fixes to unittest for all versions of Python\u003c3.5 - so we shall stick to unittest2 for Neutron.\n\n\n- [1] http://eavesdrop.openstack.org/irclogs/%23openstack-neutron/%23openstack-neutron.2016-02-25.log.html#t2016-02-25T23:18:18","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I2d26534230ffe5d01aa0aab6ec902f81cfba774d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aed3d3a_a4851e08","line":11,"updated":"2016-02-29 11:02:28.000000000","message":"I am not sure we actually need to refer to the commit id if the commit message is/once well worded.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Python unittest is deprecated. Move unittest references to unittest2."},{"line_number":10,"context_line":"This patch is to cover comment from change id"},{"line_number":11,"context_line":"I8d03528f8f45f5f50fa467b39245a513a37c5d89"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I2d26534230ffe5d01aa0aab6ec902f81cfba774d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_4b99e31e","line":11,"in_reply_to":"9aed3d3a_a4851e08","updated":"2016-03-02 18:12:01.000000000","message":"Ok, removed.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"328cbbe265ac2a64113c30a3b8626b7960936bb9","unresolved":false,"context_lines":[{"line_number":9,"context_line":"unittest2 contains bug fixes to unittest for all versions of Python\u003c3.5."},{"line_number":10,"context_line":"Move unittest references to unittest2."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2d26534230ffe5d01aa0aab6ec902f81cfba774d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a122d0e_e98b6fc1","line":12,"updated":"2016-04-19 16:54:40.000000000","message":"You might need to depend on I0401c775e9c37903103991f2a0834cdbd31f06ed","commit_id":"2ed8f180a125e051fc9e7e3ec65077242812c784"}],"neutron/hacking/checks.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"1956ae5af7e51289455d73cffe644affd3ff3bb4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"oslo_namespace_imports_from_dot \u003d re.compile(r\"from[\\s]+oslo[.]\")"},{"line_number":60,"context_line":"oslo_namespace_imports_from_root \u003d re.compile(r\"from[\\s]+oslo[\\s]+import[\\s]+\")"},{"line_number":61,"context_line":"contextlib_nested \u003d re.compile(r\"^with (contextlib\\.)?nested\\(\")"},{"line_number":62,"context_line":"unittest_imports \u003d re.compile(r\"import[\\s]+unittest[.][^\\s]+\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def validate_log_translations(logical_line, physical_line, filename):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_4c20079c","line":62,"updated":"2016-02-25 16:26:25.000000000","message":"You are going to need to cover all the ways of importing like was done for oslo (L58-60).","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"oslo_namespace_imports_from_dot \u003d re.compile(r\"from[\\s]+oslo[.]\")"},{"line_number":60,"context_line":"oslo_namespace_imports_from_root \u003d re.compile(r\"from[\\s]+oslo[\\s]+import[\\s]+\")"},{"line_number":61,"context_line":"contextlib_nested \u003d re.compile(r\"^with (contextlib\\.)?nested\\(\")"},{"line_number":62,"context_line":"unittest_imports \u003d re.compile(r\"import[\\s]+unittest[.][^\\s]+\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def validate_log_translations(logical_line, physical_line, filename):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_8b964eee","line":62,"in_reply_to":"bae84128_4c20079c","updated":"2016-03-02 18:12:01.000000000","message":"Sure, added.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            yield (0, msg)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":244,"context_line":"    if re.match(unittest_imports, logical_line):"},{"line_number":245,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":246,"context_line":"               logical_line.replace(\u0027unittest\u0027, \u0027unitest2\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_44ac128c","line":243,"updated":"2016-02-29 11:02:28.000000000","message":"HACKING.rst file should be updated describing the check (and probably the need of it).","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            yield (0, msg)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":244,"context_line":"    if re.match(unittest_imports, logical_line):"},{"line_number":245,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":246,"context_line":"               logical_line.replace(\u0027unittest\u0027, \u0027unitest2\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_4b30c39e","line":243,"in_reply_to":"9aed3d3a_44ac128c","updated":"2016-03-02 18:12:01.000000000","message":"Sure, updated.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":243,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":244,"context_line":"    if re.match(unittest_imports, logical_line):"},{"line_number":245,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":246,"context_line":"               logical_line.replace(\u0027unittest\u0027, \u0027unitest2\u0027),"},{"line_number":247,"context_line":"               logical_line)"},{"line_number":248,"context_line":"        yield(0, msg)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_24c0ee29","line":246,"updated":"2016-02-29 11:02:28.000000000","message":"unitest2 -\u003e unittest2","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":243,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":244,"context_line":"    if re.match(unittest_imports, logical_line):"},{"line_number":245,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":246,"context_line":"               logical_line.replace(\u0027unittest\u0027, \u0027unitest2\u0027),"},{"line_number":247,"context_line":"               logical_line)"},{"line_number":248,"context_line":"        yield(0, msg)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_a8586d33","line":246,"in_reply_to":"9aed3d3a_24c0ee29","updated":"2016-03-02 18:12:01.000000000","message":"Updated.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    register(check_assertempty)"},{"line_number":265,"context_line":"    register(check_assertisinstance)"},{"line_number":266,"context_line":"    register(check_assertequal_for_httpcode)"},{"line_number":267,"context_line":"    register(check_unittest_imports)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_241c6ec0","line":267,"updated":"2016-02-29 11:02:28.000000000","message":"Introducing the check could in theory break any external subproject that relies on the hacking rules defined in neutron. I\u0027ve checked *aas repos, and seems like no tests should be affected there by the change; but other subprojects can still use unittest module.\n\nThat kind of breakage would be of bad time considering we are approaching Mitaka release.\n\nCan we maybe introduce it as disabled by default somehow, and enable for Neutron repo only? And then in Newton, we enable it for everyone?","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    register(check_assertempty)"},{"line_number":265,"context_line":"    register(check_assertisinstance)"},{"line_number":266,"context_line":"    register(check_assertequal_for_httpcode)"},{"line_number":267,"context_line":"    register(check_unittest_imports)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_6805c578","line":267,"in_reply_to":"9aed3d3a_241c6ec0","updated":"2016-03-02 18:12:01.000000000","message":"I am not sure. Any suggestions on how we do this?","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":60,"context_line":"oslo_namespace_imports_from_root \u003d re.compile(r\"from[\\s]+oslo[\\s]+import[\\s]+\")"},{"line_number":61,"context_line":"contextlib_nested \u003d re.compile(r\"^with (contextlib\\.)?nested\\(\")"},{"line_number":62,"context_line":"unittest_imports_dot \u003d re.compile(r\"import[\\s]+unittest[.][^\\s]+\")"},{"line_number":63,"context_line":"unittest_imports_from_dot \u003d re.compile(r\"from[\\s]+unittest[.]\")"},{"line_number":64,"context_line":"unittest_imports_from_root \u003d re.compile(r\"from[\\s]+unittest[\\s]+import[\\s]+\")"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_92bc9007","line":63,"updated":"2016-03-03 10:12:50.000000000","message":"I don\u0027t think you need two separate regexps for the check. You could just match for \u0027from unittest[\\s.]\u0027","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":60,"context_line":"oslo_namespace_imports_from_root \u003d re.compile(r\"from[\\s]+oslo[\\s]+import[\\s]+\")"},{"line_number":61,"context_line":"contextlib_nested \u003d re.compile(r\"^with (contextlib\\.)?nested\\(\")"},{"line_number":62,"context_line":"unittest_imports_dot \u003d re.compile(r\"import[\\s]+unittest[.][^\\s]+\")"},{"line_number":63,"context_line":"unittest_imports_from_dot \u003d re.compile(r\"from[\\s]+unittest[.]\")"},{"line_number":64,"context_line":"unittest_imports_from_root \u003d re.compile(r\"from[\\s]+unittest[\\s]+import[\\s]+\")"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_c486ef64","line":63,"in_reply_to":"7af24918_92bc9007","updated":"2016-04-13 16:01:35.000000000","message":"ok, condensed into one.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            yield (0, msg)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_52fa0876","line":245,"updated":"2016-03-03 10:12:50.000000000","message":"Should be disabled by default for all subprojects. See off_by_default decorator: https://review.openstack.org/#/c/134052/16/hacking/core.py\n\nNote that you will need to enable the check for neutron repo in tox.ini","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e4405a31eac7476aeb6c41a38a0a439e67c4e5e7","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            yield (0, msg)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_977b0428","line":245,"in_reply_to":"1af94dfe_a46c839d","updated":"2016-04-19 12:29:25.000000000","message":"To avoid breaking other projects that run those hacking checks. Alternatively, we can go into every repo that may use those and fix it before we apply the rule here.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            yield (0, msg)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_240fd3e2","line":245,"in_reply_to":"7af24918_14eb3a14","updated":"2016-04-13 16:01:35.000000000","message":"Test added to test_checks.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3109d3f45533959dfac0315503d0a673a04bb8f6","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            yield (0, msg)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_14eb3a14","line":245,"in_reply_to":"7af24918_52fa0876","updated":"2016-03-03 15:00:44.000000000","message":"Overall, this check should be covered with unit tests (see test_checks.py).","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            yield (0, msg)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_a46c839d","line":245,"in_reply_to":"7af24918_52fa0876","updated":"2016-04-13 16:01:35.000000000","message":"Why do we want this disabled by default?","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"},{"line_number":249,"context_line":"               logical_line)"},{"line_number":250,"context_line":"        yield(0, msg)"},{"line_number":251,"context_line":"    elif re.match(unittest_imports_from_root, logical_line):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_9253f0e1","line":248,"updated":"2016-03-03 10:12:50.000000000","message":"I don\u0027t think that\u0027s correct. You will get \u0027from unittest.xxx import yyy\u0027 -\u003e \u0027from unittest2xxx import yyy\u0027 which is wrong.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":245,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":246,"context_line":"    if re.match(unittest_imports_from_dot, logical_line):"},{"line_number":247,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":248,"context_line":"               logical_line.replace(\u0027unittest.\u0027, \u0027unittest2\u0027),"},{"line_number":249,"context_line":"               logical_line)"},{"line_number":250,"context_line":"        yield(0, msg)"},{"line_number":251,"context_line":"    elif re.match(unittest_imports_from_root, logical_line):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_b13155ef","line":248,"in_reply_to":"7af24918_9253f0e1","updated":"2016-04-13 16:01:35.000000000","message":"Not sure what is incorrect. If it finds \"unittest\" it creates a message which says to use unitests2.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        yield(0, msg)"},{"line_number":251,"context_line":"    elif re.match(unittest_imports_from_root, logical_line):"},{"line_number":252,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":253,"context_line":"               logical_line.replace(\u0027from unittest import \u0027,"},{"line_number":254,"context_line":"                                    \u0027import unittest2\u0027),"},{"line_number":255,"context_line":"               logical_line)"},{"line_number":256,"context_line":"        yield(0, msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_52fb28c1","line":253,"updated":"2016-03-03 10:12:50.000000000","message":"Hm. So you get \u0027from unittest import xxx\u0027 -\u003e \u0027import unittest2xxx\u0027? Doesn\u0027t seem right.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        yield(0, msg)"},{"line_number":251,"context_line":"    elif re.match(unittest_imports_from_root, logical_line):"},{"line_number":252,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":253,"context_line":"               logical_line.replace(\u0027from unittest import \u0027,"},{"line_number":254,"context_line":"                                    \u0027import unittest2\u0027),"},{"line_number":255,"context_line":"               logical_line)"},{"line_number":256,"context_line":"        yield(0, msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_d134d1df","line":253,"in_reply_to":"7af24918_52fb28c1","updated":"2016-04-13 16:01:35.000000000","message":"removed.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        yield(0, msg)"},{"line_number":257,"context_line":"    elif re.match(unittest_imports_dot, logical_line):"},{"line_number":258,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":259,"context_line":"               logical_line.replace(\u0027import\u0027, \u0027from\u0027).replace(\u0027.\u0027, \u0027 import \u0027),"},{"line_number":260,"context_line":"               logical_line)"},{"line_number":261,"context_line":"        yield(0, msg)"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_527e8819","line":259,"updated":"2016-03-03 10:12:50.000000000","message":"\u0027import unittest.xxx\u0027 -\u003e \u0027from unittest.xxx\u0027 -\u003e \u0027from unittest import xxx\u0027? I don\u0027t see were you would suggest to use unittest2 here...","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        yield(0, msg)"},{"line_number":257,"context_line":"    elif re.match(unittest_imports_dot, logical_line):"},{"line_number":258,"context_line":"        msg \u003d (\"N333: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\") % ("},{"line_number":259,"context_line":"               logical_line.replace(\u0027import\u0027, \u0027from\u0027).replace(\u0027.\u0027, \u0027 import \u0027),"},{"line_number":260,"context_line":"               logical_line)"},{"line_number":261,"context_line":"        yield(0, msg)"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_51572102","line":259,"in_reply_to":"7af24918_527e8819","updated":"2016-04-13 16:01:35.000000000","message":"Updated message.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"656636e6c09f5311ea662e39334b03fae04fd568","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    register(check_assertempty)"},{"line_number":263,"context_line":"    register(check_assertisinstance)"},{"line_number":264,"context_line":"    register(check_assertequal_for_httpcode)"},{"line_number":265,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":266,"context_line":"    register(check_log_warn_deprecated)"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":"    register(check_unittest_imports)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1af94dfe_a7776501","line":265,"updated":"2016-03-15 14:00:19.000000000","message":"oops!","commit_id":"24306338113b23b666041aa8e015f1fa82018566"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"2008fc70f4264676467f39af4857ab7cbafcfa35","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    register(check_assertempty)"},{"line_number":263,"context_line":"    register(check_assertisinstance)"},{"line_number":264,"context_line":"    register(check_assertequal_for_httpcode)"},{"line_number":265,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":266,"context_line":"    register(check_log_warn_deprecated)"},{"line_number":267,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":268,"context_line":"    register(check_unittest_imports)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_9311b860","line":265,"in_reply_to":"1af94dfe_a7776501","updated":"2016-04-08 16:08:03.000000000","message":"Yes, oops. My bad. Updated.","commit_id":"24306338113b23b666041aa8e015f1fa82018566"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"07c6a044dfa6f3153ca35211aa9b7de514814885","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            yield (0, msg)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":327,"context_line":"    if (re.match(unittest_imports_from, logical_line) or"},{"line_number":328,"context_line":"            re.match(unittest_imports_dot, logical_line)):"},{"line_number":329,"context_line":"        msg \u003d \"N334: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\" % ("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_5991cc51","line":326,"updated":"2016-04-18 15:48:22.000000000","message":"this check will be enabled for all consumers. It will probably break out of tree code that relies on those hacking checks (like *aas repos).","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"21137a921d60bd057a209c778d844c287f629f01","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            yield (0, msg)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"def check_unittest_imports(logical_line):"},{"line_number":327,"context_line":"    if (re.match(unittest_imports_from, logical_line) or"},{"line_number":328,"context_line":"            re.match(unittest_imports_dot, logical_line)):"},{"line_number":329,"context_line":"        msg \u003d \"N334: \u0027%s\u0027 must be used instead of \u0027%s\u0027.\" % ("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_f88b3bc1","line":326,"in_reply_to":"1a122d0e_5991cc51","updated":"2016-04-19 16:00:29.000000000","message":"Added off_by_default decorator. Unfortunately, hacking release needed to include the capability. Will add the dependency when patch is available for the release.","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"}],"neutron/tests/common/base.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"195b71b6e9b119b71380018bc1937d454cd5faf8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        try:"},{"line_number":63,"context_line":"            return wrapped(*args, **kwargs)"},{"line_number":64,"context_line":"        except (testtools.TestCase.skipException,"},{"line_number":65,"context_line":"            unittest2.case.SkipTest) as e:"},{"line_number":66,"context_line":"            if base.bool_from_env(\u0027OS_FAIL_ON_MISSING_DEPS\u0027):"},{"line_number":67,"context_line":"                tools.fail("},{"line_number":68,"context_line":"                    \u0027%s cannot be skipped because OS_FAIL_ON_MISSING_DEPS \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_aa4a9053","line":65,"updated":"2016-02-24 19:59:25.000000000","message":"Supernit: Indent four more spaces so that the except distinguishes from the next line.","commit_id":"59b4fbaa5c76a45d1b9d82aa326c960a60ca2a55"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"b07adb13f53a4079efd9f1cb0436e14fb427011d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        try:"},{"line_number":63,"context_line":"            return wrapped(*args, **kwargs)"},{"line_number":64,"context_line":"        except (testtools.TestCase.skipException,"},{"line_number":65,"context_line":"            unittest2.case.SkipTest) as e:"},{"line_number":66,"context_line":"            if base.bool_from_env(\u0027OS_FAIL_ON_MISSING_DEPS\u0027):"},{"line_number":67,"context_line":"                tools.fail("},{"line_number":68,"context_line":"                    \u0027%s cannot be skipped because OS_FAIL_ON_MISSING_DEPS \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_5ad43c46","line":65,"in_reply_to":"bae84128_aa4a9053","updated":"2016-02-25 15:23:39.000000000","message":"Done","commit_id":"59b4fbaa5c76a45d1b9d82aa326c960a60ca2a55"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":"import unittest2.case"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_db.sqlalchemy import test_base"},{"line_number":18,"context_line":"import testtools.testcase"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_648036c1","line":15,"updated":"2016-02-29 11:02:28.000000000","message":"Since it\u0027s 3party, should be moved into the next section.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":"import unittest2.case"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_db.sqlalchemy import test_base"},{"line_number":18,"context_line":"import testtools.testcase"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_080081a9","line":15,"in_reply_to":"9aed3d3a_648036c1","updated":"2016-03-02 18:12:01.000000000","message":"Done.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"e1a69c52f6158f1d01df6d8271e24f29217708db","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import unittest2.case"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_db.sqlalchemy import test_base"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_d7cbd451","line":15,"updated":"2016-03-02 18:26:36.000000000","message":"Is this blank line required?","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5b646ad3e6f42ec0c60c241df1940e0a11d5c51","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import unittest2.case"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_db.sqlalchemy import test_base"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_b218acd4","line":15,"in_reply_to":"7af24918_421c2077","updated":"2016-03-03 10:12:50.000000000","message":"Right. And that\u0027s why unittest2 import should belong to the next section instead of having a section of its own.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"0bc9e9f7225deb613bfff904f7730de726e53ddd","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import unittest2.case"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_db.sqlalchemy import test_base"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_f0164654","line":15,"in_reply_to":"7af24918_b218acd4","updated":"2016-04-13 16:01:35.000000000","message":"ok, updated.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"82bcfb086ce226348799692b20b69b29ca336f0c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import functools"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import unittest2.case"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_db.sqlalchemy import test_base"}],"source_content_type":"text/x-python","patch_set":3,"id":"7af24918_421c2077","line":15,"in_reply_to":"7af24918_d7cbd451","updated":"2016-03-02 18:47:42.000000000","message":"yes, functools is a std lib where unittest2 is an external lib.","commit_id":"7735ea6a489d1a81d7e710cb5c12102b0109b238"}],"neutron/tests/functional/pecan_wsgi/__init__.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"from pecan import set_config"},{"line_number":19,"context_line":"from pecan.testing import load_test_app"},{"line_number":20,"context_line":"from unittest2 import TestCase"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_e46c4637","line":17,"updated":"2016-02-29 11:02:28.000000000","message":"(No action required) os should have been split of other imports since it\u0027s stdlib.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"from pecan import set_config"},{"line_number":19,"context_line":"from pecan.testing import load_test_app"},{"line_number":20,"context_line":"from unittest2 import TestCase"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_a8dead3c","line":17,"in_reply_to":"9aed3d3a_e46c4637","updated":"2016-03-02 18:12:01.000000000","message":"ok.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"07c6a044dfa6f3153ca35211aa9b7de514814885","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import unittest2"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from pecan import set_config"},{"line_number":21,"context_line":"from pecan.testing import load_test_app"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_591c2c13","line":18,"updated":"2016-04-18 15:48:22.000000000","message":"This should go into the next section","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"21137a921d60bd057a209c778d844c287f629f01","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import unittest2"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from pecan import set_config"},{"line_number":21,"context_line":"from pecan.testing import load_test_app"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_dfc0f82c","line":18,"in_reply_to":"1a122d0e_591c2c13","updated":"2016-04-19 16:00:29.000000000","message":"Done.","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"}],"neutron/tests/tools.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"195b71b6e9b119b71380018bc1937d454cd5faf8","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    * return_value is passed to side_effect of a mocked call."},{"line_number":134,"context_line":"      A return value or an exception can be specified."},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    return_values \u003d [call[1] for call in expected_calls_and_values]"},{"line_number":138,"context_line":"    mocked_call.side_effect \u003d return_values"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_8a5eac10","line":136,"updated":"2016-02-24 19:59:25.000000000","message":"Nit: gratuitous whitespace-only change.","commit_id":"59b4fbaa5c76a45d1b9d82aa326c960a60ca2a55"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"b07adb13f53a4079efd9f1cb0436e14fb427011d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    * return_value is passed to side_effect of a mocked call."},{"line_number":134,"context_line":"      A return value or an exception can be specified."},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    return_values \u003d [call[1] for call in expected_calls_and_values]"},{"line_number":138,"context_line":"    mocked_call.side_effect \u003d return_values"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_dae32c04","line":136,"in_reply_to":"bae84128_8a5eac10","updated":"2016-02-25 15:23:39.000000000","message":"Removed.","commit_id":"59b4fbaa5c76a45d1b9d82aa326c960a60ca2a55"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"222396c729fd0e7f43f882f34519c1596f7a0b04","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.addCleanup(cleanUp)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"import unittest2"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"from neutron.common import utils"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_64ce762f","line":112,"updated":"2016-02-29 11:02:28.000000000","message":"(No action required) those imports should have been moved to the top of the file.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"a577c1377450716b74efe12b8ae8128e90fea70e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.addCleanup(cleanUp)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"import unittest2"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"from neutron.common import utils"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_e8cf157d","line":112,"in_reply_to":"9aed3d3a_64ce762f","updated":"2016-03-02 18:12:01.000000000","message":"ok.","commit_id":"41ae050f0822afde558da4b82ee8cb9398b2ab1b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"07c6a044dfa6f3153ca35211aa9b7de514814885","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(cleanUp)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"import unittest2"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"from neutron.common import utils"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_19e114ff","line":119,"updated":"2016-04-18 15:48:22.000000000","message":"Why do we keep it here? I would move it to the top while we are at it.","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"21137a921d60bd057a209c778d844c287f629f01","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        self.addCleanup(cleanUp)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"import unittest2"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"from neutron.common import utils"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_dfee38b3","line":119,"in_reply_to":"1a122d0e_19e114ff","updated":"2016-04-19 16:00:29.000000000","message":"Done.","commit_id":"76e0f1acd070ad410ec803b936698af91f9ebdfd"}],"neutron/tests/unit/hacking/test_checks.py":[{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"497ebdf85d20561a1f680ccfea26b25229a02170","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        self.assertLinePasses(f, \u0027from unitest2 import case\u0027)"},{"line_number":290,"context_line":"        self.assertLinePasses(f, \u0027unittest2.TestSuite\u0027)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        # These lines  should fail but are currently passing?"},{"line_number":293,"context_line":"        self.assertLinePasses(f, \u0027from unitest import case\u0027)"},{"line_number":294,"context_line":"        self.assertLinePasses(f, \u0027unittest.TestSuite\u0027)"},{"line_number":295,"context_line":"        self.assertLinePasses(f, \u0027import unittest\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_a0ec1390","line":292,"range":{"start_line":292,"start_character":60,"end_line":292,"end_character":61},"updated":"2016-04-13 16:05:14.000000000","message":"Not sure why these test are not failing. I have tested and it works on pep8 when I change to unittest.","commit_id":"8c280a9a88b5e0a31fbac5747412a13d3c0b7650"}],"test-requirements.txt":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b1e6575c87efde864b4937358d60d07db328b6b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# The order of packages is significant, because pip processes them in the order"},{"line_number":2,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":3,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":4,"context_line":"hacking\u003e\u003d0.11.0,\u003c0.12"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"cliff!\u003d1.16.0,!\u003d1.17.0,\u003e\u003d1.15.0 # Apache-2.0"},{"line_number":7,"context_line":"coverage\u003e\u003d3.6 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"bab6814e_e81f97b4","line":4,"updated":"2016-05-23 11:45:17.000000000","message":"this should be the same as the requirements project - https://github.com/openstack/requirements/blob/master/test-requirements.txt#L6","commit_id":"af92329aa9031adf3b8969ed9a6de00d3f3d6e5b"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7dfc0914771171234bd43dd618516ece062c9752","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# The order of packages is significant, because pip processes them in the order"},{"line_number":2,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":3,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":4,"context_line":"hacking\u003e\u003d0.11.0,\u003c0.12"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"cliff!\u003d1.16.0,!\u003d1.17.0,\u003e\u003d1.15.0 # Apache-2.0"},{"line_number":7,"context_line":"coverage\u003e\u003d3.6 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"bab6814e_e892f7f4","line":4,"in_reply_to":"bab6814e_e81f97b4","updated":"2016-05-23 11:47:32.000000000","message":"Note the patch has Depends-On that modifies the line in requirements repo...","commit_id":"af92329aa9031adf3b8969ed9a6de00d3f3d6e5b"}]}
