)]}'
{"storlets/tools/extensions/ipython.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[{"line_number":266,"context_line":"    @line_magic"},{"line_number":267,"context_line":"    def get(self, line):"},{"line_number":268,"context_line":"        args \u003d magic_arguments.parse_argstring(self.get, line)"},{"line_number":269,"context_line":"        if not args.o:"},{"line_number":270,"context_line":"            raise UsageError(\u0027-o option is mandatory for the invocation\u0027)"},{"line_number":271,"context_line":"        if not args.o[0].startswith(tuple(string.ascii_letters)):"},{"line_number":272,"context_line":"            raise UsageError(\u0027The output variable name must be a valid prefix \u0027"},{"line_number":273,"context_line":"                             \u0027of a python variable, that is, start with a \u0027"},{"line_number":274,"context_line":"                             \u0027letter\u0027)"},{"line_number":275,"context_line":"        if not args.storlet:"},{"line_number":276,"context_line":"            raise UsageError(\u0027--storlet option is mandatory \u0027"},{"line_number":277,"context_line":"                             \u0027for the invocation\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_bf2cb747","line":274,"range":{"start_line":269,"start_character":0,"end_line":274,"end_character":38},"updated":"2017-04-06 05:18:11.000000000","message":"perhaps, could we have default value if no output variable defined rather than failing into UsageError?","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"}],"tests/functional/ipython/test_notebook.ipynb":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bff0334d_9c27c113","updated":"2017-04-06 05:18:11.000000000","message":"it looks cool thing we can have notebook functional tests.\n\nHow do we test this automatically in the gate? :-)","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"}],"tests/unit/tools/extensions/test_ipython.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self._fake_headers \u003d fake_headers or {}"},{"line_number":29,"context_line":"        self._fake_iter \u003d fake_iter or iter([])"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def _return_mock(self, **kwargs):"},{"line_number":32,"context_line":"        if \u0027response_dict\u0027 in kwargs:"},{"line_number":33,"context_line":"            kwargs[\u0027response_dict\u0027][\u0027status\u0027] \u003d self._fake_status"},{"line_number":34,"context_line":"            kwargs[\u0027response_dict\u0027][\u0027headers\u0027] \u003d self._fake_headers"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_bc8725d8","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":20},"updated":"2017-04-06 05:18:11.000000000","message":"ah, my fault. This doesn\u0027t return MagicMock anymore, just fake response headers and body.","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        # v1 doesn\u0027t require OS_AUTH_VERSION"},{"line_number":211,"context_line":"        del os.environ[\u0027OS_AUTH_VERSION\u0027]"},{"line_number":212,"context_line":"        try:"},{"line_number":213,"context_line":"            del os.environ[\u0027OS_IDENTITY_API_VERSION\u0027]"},{"line_number":214,"context_line":"        except Exception:"},{"line_number":215,"context_line":"            pass"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        def _set_v1_auth():"},{"line_number":218,"context_line":"            os.environ[\u0027ST_AUTH\u0027] \u003d \u0027http://localhost/v1/auth\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_1fd2835d","line":215,"range":{"start_line":212,"start_character":0,"end_line":215,"end_character":16},"updated":"2017-04-06 05:18:11.000000000","message":"why do we need try/except block here?\n\nEr, perhaps, we need to set a brand new dict for os.environ at the setUp at first to prevent reuse user-defined os.environ.","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                for key in combination:"},{"line_number":228,"context_line":"                    del os.environ[key]"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"                print(\"Testing with environ %s\" % os.environ)"},{"line_number":231,"context_line":"                with self.assertRaises(UsageError) as e:"},{"line_number":232,"context_line":"                    self._call_storletapp(line, cell)"},{"line_number":233,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_9fdc5375","line":230,"updated":"2017-04-06 05:18:11.000000000","message":"Don\u0027t leave print here.","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6014fb6494baf9751cec4b62ce5e50d87f721afd","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                        \u0027letter\u0027)"},{"line_number":283,"context_line":"            }]"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        for scenario in scenarios:"},{"line_number":286,"context_line":"            if scenario[\u0027exception\u0027]:"},{"line_number":287,"context_line":"                with self.assertRaises(UsageError) as e:"},{"line_number":288,"context_line":"                    self._call_get(scenario[\u0027line\u0027])"},{"line_number":289,"context_line":"                self.assertEqual(scenario[\u0027msg\u0027], e.exception.message)"},{"line_number":290,"context_line":"            else:"},{"line_number":291,"context_line":"                self._call_get(scenario[\u0027line\u0027])"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _test_get(self, line, outvar_name):"},{"line_number":294,"context_line":"        self._call_get(line)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_9f4a1325","line":291,"range":{"start_line":285,"start_character":0,"end_line":291,"end_character":48},"updated":"2017-04-06 05:18:11.000000000","message":"TBH, I\u0027d cleanup more this because all scenario has \u0027exception\u0027 key. But for now, it looks to work well.","commit_id":"7184834e4c43d083251d7f67f16613e72e0f5db8"}]}
