)]}'
{"test/test_pyeclib_api.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        # 1. Prepare the expected memory allocation"},{"line_number":736,"context_line":"        encoded \u003d ec_driver.encode(b\u0027aaa\u0027)"},{"line_number":737,"context_line":"        info \u003d ec_driver.get_metadata(encoded[0], formatted\u003dTrue)"},{"line_number":738,"context_line":"        info \u003d None"},{"line_number":739,"context_line":"        loop_range \u003d range(1000)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        # 2. Get current memory usage"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_322a902d","side":"PARENT","line":738,"updated":"2016-11-30 00:25:01.000000000","message":"Does this change the memory characteristics at all? IIRC I cribbed this (or Kota provided it) for the formatted metadata leak, and I wasn\u0027t sure how necessary it was.","commit_id":"cc6f4bba26ee2a1e2dc18e17131ff5b5fbe7d6d9"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":735,"context_line":"        # 1. Prepare the expected memory allocation"},{"line_number":736,"context_line":"        encoded \u003d ec_driver.encode(b\u0027aaa\u0027)"},{"line_number":737,"context_line":"        info \u003d ec_driver.get_metadata(encoded[0], formatted\u003dTrue)"},{"line_number":738,"context_line":"        info \u003d None"},{"line_number":739,"context_line":"        loop_range \u003d range(1000)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        # 2. Get current memory usage"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_4c592c8e","side":"PARENT","line":738,"in_reply_to":"5a74a57a_322a902d","updated":"2016-11-30 02:37:52.000000000","message":"not that I could tell - looked like cargo cult to me","commit_id":"cc6f4bba26ee2a1e2dc18e17131ff5b5fbe7d6d9"}],"test/test_pyeclib_c.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                print(\"%s backend is not available in your enviromnet, skipping test\" % ec_type.name)"},{"line_number":385,"context_line":"                continue"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            print((\"\\nRunning tests for %s\" % (ec_type)))"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"            for i in range(len(self.num_datas)):"},{"line_number":390,"context_line":"                success \u003d self._test_get_required_fragments(self.num_datas[i],"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_923364f6","side":"PARENT","line":387,"updated":"2016-11-30 00:25:01.000000000","message":"I think we\u0027ve lost some useful information here. None of the assertions tell you which ec_type was under test; the only way to determine it during a failure was to read up from the bottom of the captured output, looking for this.","commit_id":"cc6f4bba26ee2a1e2dc18e17131ff5b5fbe7d6d9"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                print(\"%s backend is not available in your enviromnet, skipping test\" % ec_type.name)"},{"line_number":385,"context_line":"                continue"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            print((\"\\nRunning tests for %s\" % (ec_type)))"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"            for i in range(len(self.num_datas)):"},{"line_number":390,"context_line":"                success \u003d self._test_get_required_fragments(self.num_datas[i],"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_2c4eb096","side":"PARENT","line":387,"in_reply_to":"5a74a57a_923364f6","updated":"2016-11-30 02:37:52.000000000","message":"yes, this is a common problem with tests that hit a bunch of scenarios in a loop (again subTest, gah!)\n\nI don\u0027t think the prints are an acceptable solution either - updating the asserts would be the way to go; but i don\u0027t think it\u0027s needed and wouldn\u0027t care to do it.\n\nI fully admit the iter_availabe_types infrastructure is unrelated to the linting change - I can definitely back out the refactoring out if it\u0027s a blocker for you.","commit_id":"cc6f4bba26ee2a1e2dc18e17131ff5b5fbe7d6d9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if backend not in VALID_EC_TYPES:"},{"line_number":60,"context_line":"                raise unittest.SkipTest("},{"line_number":61,"context_line":"                    \"%s backend is not available\" % backend)"},{"line_number":62,"context_line":"            return f()"},{"line_number":63,"context_line":"        return wrapped"},{"line_number":64,"context_line":"    return decorator"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_57f7fe8b","line":62,"updated":"2016-11-30 00:25:01.000000000","message":"No *args, **kwargs?","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            if backend not in VALID_EC_TYPES:"},{"line_number":60,"context_line":"                raise unittest.SkipTest("},{"line_number":61,"context_line":"                    \"%s backend is not available\" % backend)"},{"line_number":62,"context_line":"            return f()"},{"line_number":63,"context_line":"        return wrapped"},{"line_number":64,"context_line":"    return decorator"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_cce45cae","line":62,"in_reply_to":"5a74a57a_57f7fe8b","updated":"2016-11-30 02:37:52.000000000","message":"this is quite -1\u0027able IMHO - good catch #willfix (using the suggestion below)","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                    \"%s backend is not available\" % backend)"},{"line_number":62,"context_line":"            return f()"},{"line_number":63,"context_line":"        return wrapped"},{"line_number":64,"context_line":"    return decorator"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class TestPyECLib(unittest.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_3787e2d8","line":64,"updated":"2016-11-30 00:25:01.000000000","message":"Could we just\n\n return unittest.skipIf(backend not in VALID_EC_TYPES,\n                        \"%s backend is not available\" % backend)\n\n?","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                    \"%s backend is not available\" % backend)"},{"line_number":62,"context_line":"            return f()"},{"line_number":63,"context_line":"        return wrapped"},{"line_number":64,"context_line":"    return decorator"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class TestPyECLib(unittest.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_4cd04cca","line":64,"in_reply_to":"5a74a57a_3787e2d8","updated":"2016-11-30 02:37:52.000000000","message":"I think so!  bad habit from py2.6 - good catch.","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        if not found_one:"},{"line_number":145,"context_line":"            type_list \u003d \u0027, \u0027.join(t.name for t in ec_types)"},{"line_number":146,"context_line":"            raise unittest.SkipTest(\u0027No backend available in types: %r\u0027 %"},{"line_number":147,"context_line":"                                    type_list)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def time_encode(self, num_data, num_parity, ec_type, hd,"},{"line_number":150,"context_line":"                    file_size, iterations):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_972ef6a3","line":147,"updated":"2016-11-30 00:25:01.000000000","message":"I agree that if we haven\u0027t yielded anything, it\u0027s appropriate to raise SkipTest. However, it bothers me that as a developer I could run tests, see no skips, yet still not have the full coverage I was expecting.\n\nMakes me wish for the subTest context manager from Python 3.4 [1]. I suppose we could always further marry ourselves to nose [2] or roll our own [3], though...\n\n[1] https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests\n[2] https://nose.readthedocs.io/en/latest/writing_tests.html#test-generators\n[3] http://stackoverflow.com/a/4455312","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        if not found_one:"},{"line_number":145,"context_line":"            type_list \u003d \u0027, \u0027.join(t.name for t in ec_types)"},{"line_number":146,"context_line":"            raise unittest.SkipTest(\u0027No backend available in types: %r\u0027 %"},{"line_number":147,"context_line":"                                    type_list)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def time_encode(self, num_data, num_parity, ec_type, hd,"},{"line_number":150,"context_line":"                    file_size, iterations):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_6cd508b8","line":147,"in_reply_to":"5a74a57a_972ef6a3","updated":"2016-11-30 02:37:52.000000000","message":"so want subTest :\u0027(\n\nit\u0027s probably backedported in some oslo lib we don\u0027t use :\u0027(","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"b8dfdffe240a2ad6d26fa5b12e3c5c1417f54035","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        return format(throughput, \u0027.10g\u0027)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    @require_backend(\"flat_xor_hd_3\")"},{"line_number":299,"context_line":"    def test_xor_code(self):"},{"line_number":300,"context_line":"        for (ec_type, k, m, hd) in self.xor_types:"},{"line_number":301,"context_line":"            print(\"\\nRunning tests for flat_xor_hd k\u003d%d, m\u003d%d, hd\u003d%d\" %"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_b90bdb2a","line":298,"updated":"2016-11-30 10:39:59.000000000","message":"FWIW, self.xor_types looks to have both flat_xor_hd_3 and flat_xor_hd_4 types[1] so that it may be good to let require_backend to take list (or tuple) and then check all backends are available?\n\nOr, flat_xor_hd is kind of built-in backend of liberasurecode so we may not need to assert it as require_backennd.\n\nEr, plus, another not good point is obviously,\n\n # this results in flat_xor_hd_3 and it doesn\u0027t go an Error\n ECDriver(ec_type\u003d\u0027flat_xor_hd\u0027, k\u003d10, m\u003d5)\u0027\n # but this goes to False\n \u0027flat_xor_hd\u0027 in VALID_EC_TYPES\n\nAnd more, interesting\n\n driver \u003d ECDriver(ec_type\u003d\u0027flat_xor_hd_3\u0027, k\u003d10, m\u003d5, hd\u003d4)\n # this shows likely \"ECDriver(ec_type\u003d\u0027flat_xor_hd_3\u0027, k\u003d10, m\u003d5)\" even if we set hd as 4.\n print(driver)\n\n\nAnyway, it could need more code change rather than test cleanup so it\u0027s ok to take it in another patch.\n\nhttps://github.com/openstack/pyeclib/blob/master/test/test_pyeclib_c.py#L67-L69","commit_id":"685bc061804c5d640a84c852ea282d76728f1973"}],"tox.ini":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"05fa3548108085067a8f69869f2ddfe850b720fa","unresolved":false,"context_lines":[{"line_number":10,"context_line":"[testenv:pep8]"},{"line_number":11,"context_line":"deps\u003d"},{"line_number":12,"context_line":"    pep8"},{"line_number":13,"context_line":"commands\u003d"},{"line_number":14,"context_line":"    pep8 pyeclib/ setup.py test/"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[testenv:venv]"}],"source_content_type":"text/x-properties","patch_set":3,"id":"5a74a57a_37b442d0","line":13,"updated":"2016-11-30 00:25:01.000000000","message":"Is there any sort of C linting we should be doing for src/ ?","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"9eac076b99110de795503b03c8737e291254beef","unresolved":false,"context_lines":[{"line_number":10,"context_line":"[testenv:pep8]"},{"line_number":11,"context_line":"deps\u003d"},{"line_number":12,"context_line":"    pep8"},{"line_number":13,"context_line":"commands\u003d"},{"line_number":14,"context_line":"    pep8 pyeclib/ setup.py test/"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[testenv:venv]"}],"source_content_type":"text/x-properties","patch_set":3,"id":"5a74a57a_cc053c15","line":13,"in_reply_to":"5a74a57a_37b442d0","updated":"2016-11-30 02:37:52.000000000","message":"i can\u0027t barely spell c","commit_id":"985b85900f30547c10328f57b0a5591a59e1c01e"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"b8dfdffe240a2ad6d26fa5b12e3c5c1417f54035","unresolved":false,"context_lines":[{"line_number":11,"context_line":"deps\u003d"},{"line_number":12,"context_line":"    pep8"},{"line_number":13,"context_line":"commands\u003d"},{"line_number":14,"context_line":"    pep8 pyeclib/ setup.py test/"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[testenv:venv]"},{"line_number":17,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":4,"id":"5a74a57a_8245bf18","line":14,"range":{"start_line":14,"start_character":26,"end_line":14,"end_character":32},"updated":"2016-11-30 10:39:59.000000000","message":"Love it!","commit_id":"685bc061804c5d640a84c852ea282d76728f1973"}]}
