)]}'
{".gitignore":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6d40f8b4e5aed98cf243c6d52adde5f0540be6ad","unresolved":false,"context_lines":[{"line_number":17,"context_line":".venv"},{"line_number":18,"context_line":"dist"},{"line_number":19,"context_line":"build"},{"line_number":20,"context_line":".testrepository"},{"line_number":21,"context_line":".idea"},{"line_number":22,"context_line":".project"},{"line_number":23,"context_line":".pydevproject"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"5f2577a7_a7641a23","side":"PARENT","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":15},"updated":"2017-09-15 16:59:02.000000000","message":"I think this is still needed for unit tests. We\u0027ll be able to remove after the migration completely.","commit_id":"f78565d4de63f5dd16f47275c63edbd227214bd6"}],".stestr.conf":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6d40f8b4e5aed98cf243c6d52adde5f0540be6ad","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_path\u003d${OS_TEST_PATH:-tempest}"},{"line_number":3,"context_line":"top_dir\u003d${OS_TOP_LEVEL:-tempest/test_discover}"},{"line_number":4,"context_line":"group_regex\u003d([^\\\\.]*\\\\.)*"}],"source_content_type":"text/plain","patch_set":2,"id":"5f2577a7_ca2f2b86","line":3,"range":{"start_line":2,"start_character":0,"end_line":3,"end_character":46},"updated":"2017-09-15 16:59:02.000000000","message":"I think test_path should be tempest/test_discover and top_dir should be tempest","commit_id":"ba6a117647a4ef8cc784579f8fc2b52b4ca4dc75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d8a722c044d788e6714db7056f6d6fc224464f48","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_path\u003d${OS_TEST_PATH:-tempest/test_discover}"},{"line_number":3,"context_line":"top_dir\u003d${OS_TOP_LEVEL:-tempest}"},{"line_number":4,"context_line":"group_regex\u003d([^\\\\.]*\\\\.)*"}],"source_content_type":"text/plain","patch_set":4,"id":"7f515b1d_e66e3395","line":3,"range":{"start_line":3,"start_character":24,"end_line":3,"end_character":31},"updated":"2017-10-03 21:21:01.000000000","message":"The default top_dir was \".\" - any reason for changing it?","commit_id":"e964586b89336150685154c7ea665d11586e1805"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d8a722c044d788e6714db7056f6d6fc224464f48","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_path\u003d${OS_TEST_PATH:-tempest/test_discover}"},{"line_number":3,"context_line":"top_dir\u003d${OS_TOP_LEVEL:-tempest}"},{"line_number":4,"context_line":"group_regex\u003d([^\\\\.]*\\\\.)*"}],"source_content_type":"text/plain","patch_set":4,"id":"7f515b1d_26120b0b","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":17},"updated":"2017-10-03 21:21:01.000000000","message":"I didn\u0027t realise we had to escape the back-slash now, nice catch","commit_id":"e964586b89336150685154c7ea665d11586e1805"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"5aa73d413391eb6d86ef103975741ed5449ab6b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"test_path\u003d${OS_TEST_PATH:-tempest/test_discover}"},{"line_number":3,"context_line":"top_dir\u003d${OS_TOP_LEVEL:-tempest}"},{"line_number":4,"context_line":"group_regex\u003d([^\\\\.]*\\\\.)*"}],"source_content_type":"text/plain","patch_set":4,"id":"7f515b1d_e622b301","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":17},"in_reply_to":"7f515b1d_26120b0b","updated":"2017-10-03 21:37:10.000000000","message":"Umm, I don\u0027t think this is correct this was escaping the period because we\u0027re grouping the import paths on the class.\nThis should be a straight string pass to the re.compile() I don\u0027t know why we need to escape the \\","commit_id":"e964586b89336150685154c7ea665d11586e1805"}],"tempest/cmd/init.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6d40f8b4e5aed98cf243c6d52adde5f0540be6ad","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"TESTR_CONF \u003d\"\"\"[DEFAULT]"},{"line_number":30,"context_line":"test_path\u003d${OS_TEST_PATH:-%s}"},{"line_number":31,"context_line":"top_dir\u003d${OS_TOP_LEVEL:-%s}"},{"line_number":32,"context_line":"group_regex\u003d([^\\.]*\\.)*"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_8aa123fb","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":10},"updated":"2017-09-15 16:59:02.000000000","message":"This should be STESTR_CONF?","commit_id":"ba6a117647a4ef8cc784579f8fc2b52b4ca4dc75"}],"tempest/cmd/run.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6d40f8b4e5aed98cf243c6d52adde5f0540be6ad","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            if returncode:"},{"line_number":138,"context_line":"                sys.exit(returncode)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _create_testr_conf(self):"},{"line_number":141,"context_line":"        top_level_path \u003d os.path.dirname(os.path.dirname(__file__))"},{"line_number":142,"context_line":"        discover_path \u003d os.path.join(top_level_path, \u0027test_discover\u0027)"},{"line_number":143,"context_line":"        file_contents \u003d init.TESTR_CONF % (discover_path, top_level_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_2ac7cf98","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":26},"updated":"2017-09-15 16:59:02.000000000","message":"I feel it\u0027s better to change the method name to like _create_stestr_conf.","commit_id":"ba6a117647a4ef8cc784579f8fc2b52b4ca4dc75"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"d8a722c044d788e6714db7056f6d6fc224464f48","unresolved":false,"context_lines":[{"line_number":99,"context_line":"import tempfile"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"from cliff import command"},{"line_number":102,"context_line":"from os_testr import ostestr"},{"line_number":103,"context_line":"from os_testr import regex_builder"},{"line_number":104,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":105,"context_line":"import six"},{"line_number":106,"context_line":"from stestr import commands"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_a6fddbb2","line":103,"range":{"start_line":102,"start_character":0,"end_line":103,"end_character":34},"updated":"2017-10-03 21:21:01.000000000","message":"it\u0027s a pity we need to depend on ostestr still here.","commit_id":"e964586b89336150685154c7ea665d11586e1805"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"5aa73d413391eb6d86ef103975741ed5449ab6b7","unresolved":false,"context_lines":[{"line_number":99,"context_line":"import tempfile"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"from cliff import command"},{"line_number":102,"context_line":"from os_testr import ostestr"},{"line_number":103,"context_line":"from os_testr import regex_builder"},{"line_number":104,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":105,"context_line":"import six"},{"line_number":106,"context_line":"from stestr import commands"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_e69d1358","line":103,"range":{"start_line":102,"start_character":0,"end_line":103,"end_character":34},"in_reply_to":"7f515b1d_a6fddbb2","updated":"2017-10-03 21:37:10.000000000","message":"There should be no reason to, there should be a python API in stestr to implement everything ostestr was doing.","commit_id":"e964586b89336150685154c7ea665d11586e1805"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"421377ca5e4cf8aebef53d0820445e7cc67f3a77","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # local execution with config file mode"},{"line_number":162,"context_line":"        elif parsed_args.config_file:"},{"line_number":163,"context_line":"            self._create_stestr_conf()"},{"line_number":164,"context_line":"            self._create_stestrepository()"},{"line_number":165,"context_line":"        elif not os.path.isfile(\u0027.stestr.conf\u0027):"},{"line_number":166,"context_line":"            print(\"No .stestr.conf file was found for local execution\")"},{"line_number":167,"context_line":"            sys.exit(2)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa0c359_054bb42a","line":164,"updated":"2018-02-22 00:14:05.000000000","message":"Does this function exist? \u003e_\u003e","commit_id":"8a4396e3d3b48447a1ea1b9c20810e1cc3a6c357"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"033e4914a044d7eec2e2f28c825bcce147365273","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # local execution with config file mode"},{"line_number":162,"context_line":"        elif parsed_args.config_file:"},{"line_number":163,"context_line":"            self._create_stestr_conf()"},{"line_number":164,"context_line":"            self._create_stestrepository()"},{"line_number":165,"context_line":"        elif not os.path.isfile(\u0027.stestr.conf\u0027):"},{"line_number":166,"context_line":"            print(\"No .stestr.conf file was found for local execution\")"},{"line_number":167,"context_line":"            sys.exit(2)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa0c359_28f79d5b","line":164,"in_reply_to":"3fa0c359_054bb42a","updated":"2018-02-22 11:18:35.000000000","message":"Thanks for reporting and working on it, Fixed here: https://review.openstack.org/#/c/546822/","commit_id":"8a4396e3d3b48447a1ea1b9c20810e1cc3a6c357"}],"tempest/tests/test_list_tests.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"5aa73d413391eb6d86ef103975741ed5449ab6b7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        test_env \u003d os.environ.copy()"},{"line_number":29,"context_line":"        test_env.pop(\u0027OS_TEST_PATH\u0027)"},{"line_number":30,"context_line":"        import_failures \u003d []"},{"line_number":31,"context_line":"        p \u003d subprocess.Popen([\u0027stestr\u0027, \u0027list\u0027], stdout\u003dsubprocess.PIPE,"},{"line_number":32,"context_line":"                             env\u003dtest_env)"},{"line_number":33,"context_line":"        ids, err \u003d p.communicate()"},{"line_number":34,"context_line":"        self.assertEqual(0, p.returncode,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_26032b76","line":31,"updated":"2017-10-03 21:37:10.000000000","message":"Why do we still need to subprocess here? we should be able to just use something like::\n  out \u003d StringIO()\n  stestr.commands.list(stdout\u003dout)\n  ids \u003d out.getvalue()","commit_id":"e964586b89336150685154c7ea665d11586e1805"}]}
