)]}'
{"swiftclient/utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d681365c4f025ab9e529d96d5f7833a27b4e6e77","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    :param absolute: if True then the seconds parameter is interpreted as an"},{"line_number":81,"context_line":"        absolute Unix time, otherwise seconds is interpreted as a relative time"},{"line_number":82,"context_line":"        offset from current time."},{"line_number":83,"context_line":"    :raises: ValueError if seconds is not a positive integer"},{"line_number":84,"context_line":"    :raises: TypeError if seconds is not an integer"},{"line_number":85,"context_line":"    :return: the path portion of a temporary URL"},{"line_number":86,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_a414ba9f","line":83,"updated":"2016-09-08 21:14:02.000000000","message":"...or if path is not to an object","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ad76b29c5554cd457e594504ac38021aba4473d8","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    :param absolute: if True then the seconds parameter is interpreted as an"},{"line_number":81,"context_line":"        absolute Unix time, otherwise seconds is interpreted as a relative time"},{"line_number":82,"context_line":"        offset from current time."},{"line_number":83,"context_line":"    :raises: ValueError if seconds is not a positive integer"},{"line_number":84,"context_line":"    :raises: TypeError if seconds is not an integer"},{"line_number":85,"context_line":"    :return: the path portion of a temporary URL"},{"line_number":86,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_4ed044ca","line":83,"in_reply_to":"9a89bdaa_a414ba9f","updated":"2016-09-09 10:16:11.000000000","message":"Done","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"}],"tests/unit/test_shell.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d681365c4f025ab9e529d96d5f7833a27b4e6e77","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"    def test_temp_url_error_output(self):"},{"line_number":1432,"context_line":"        expected \u003d \u0027path must be full path to an object e.g. /v1/a/c/o\\n\u0027"},{"line_number":1433,"context_line":"        for bad_path in (\u0027/v1/a/c\u0027, \u0027v1/a/c/o\u0027, \u0027http://saio/v1/a/c\u0027,"},{"line_number":1434,"context_line":"                         \u0027http://v1/a/c/o\u0027):"},{"line_number":1435,"context_line":"            argv \u003d [\"\", \"tempurl\", \"GET\", \"60\", bad_path,"},{"line_number":1436,"context_line":"                    \"secret_key\", \"--absolute\"]"},{"line_number":1437,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_05af1695","line":1434,"updated":"2016-09-08 21:14:02.000000000","message":"Worth adding things like \u0027/v1/a//o\u0027?\n\nAlso, should we have any validation on the version piece?","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ad76b29c5554cd457e594504ac38021aba4473d8","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"    def test_temp_url_error_output(self):"},{"line_number":1432,"context_line":"        expected \u003d \u0027path must be full path to an object e.g. /v1/a/c/o\\n\u0027"},{"line_number":1433,"context_line":"        for bad_path in (\u0027/v1/a/c\u0027, \u0027v1/a/c/o\u0027, \u0027http://saio/v1/a/c\u0027,"},{"line_number":1434,"context_line":"                         \u0027http://v1/a/c/o\u0027):"},{"line_number":1435,"context_line":"            argv \u003d [\"\", \"tempurl\", \"GET\", \"60\", bad_path,"},{"line_number":1436,"context_line":"                    \"secret_key\", \"--absolute\"]"},{"line_number":1437,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_0e49dc8e","line":1434,"in_reply_to":"9a89bdaa_05af1695","updated":"2016-09-09 10:16:11.000000000","message":"Yes, good catch.\n\nRe the version piece, I considered a check for \u0027v1\u0027 but I wasn\u0027t sure if the client should be so closely tied to the service API version. IDK, what do you think?","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d681365c4f025ab9e529d96d5f7833a27b4e6e77","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"},{"line_number":1438,"context_line":"                swiftclient.shell.main(argv)"},{"line_number":1439,"context_line":"            self.assertEqual(expected, output.err,"},{"line_number":1440,"context_line":"                             \u0027Expected %s but got %s for path %s\u0027 %"},{"line_number":1441,"context_line":"                             (expected, output.err, bad_path))"},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":"    @mock.patch(\u0027swiftclient.service.Connection\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_055c76ec","line":1440,"range":{"start_line":1440,"start_character":30,"end_line":1440,"end_character":52},"updated":"2016-09-08 21:14:02.000000000","message":"Given the embedded newlines, should this use %r?","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ad76b29c5554cd457e594504ac38021aba4473d8","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"},{"line_number":1438,"context_line":"                swiftclient.shell.main(argv)"},{"line_number":1439,"context_line":"            self.assertEqual(expected, output.err,"},{"line_number":1440,"context_line":"                             \u0027Expected %s but got %s for path %s\u0027 %"},{"line_number":1441,"context_line":"                             (expected, output.err, bad_path))"},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":"    @mock.patch(\u0027swiftclient.service.Connection\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_2e4ea096","line":1440,"range":{"start_line":1440,"start_character":30,"end_line":1440,"end_character":52},"in_reply_to":"9a89bdaa_055c76ec","updated":"2016-09-09 10:16:11.000000000","message":"Done","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7d9e3df6b568b17fe2537b4378a8397baa61fe1b","unresolved":false,"context_lines":[{"line_number":1434,"context_line":"                         \u0027http://saio/v1/a/c\u0027, \u0027http://v1/a/c/o\u0027):"},{"line_number":1435,"context_line":"            argv \u003d [\"\", \"tempurl\", \"GET\", \"60\", bad_path,"},{"line_number":1436,"context_line":"                    \"secret_key\", \"--absolute\"]"},{"line_number":1437,"context_line":"            print(\u0027hi\u0027)"},{"line_number":1438,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"},{"line_number":1439,"context_line":"                swiftclient.shell.main(argv)"},{"line_number":1440,"context_line":"            print (output.out)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_aad0bcca","line":1437,"updated":"2016-09-09 18:25:39.000000000","message":"hello :-)","commit_id":"16588d2ff4bf187cf1ecd3b2bf080da74fe25ced"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fd1c10e0ed54d1048fc2ad7d497952c7cf3b8638","unresolved":false,"context_lines":[{"line_number":1434,"context_line":"                         \u0027http://saio/v1/a/c\u0027, \u0027http://v1/a/c/o\u0027):"},{"line_number":1435,"context_line":"            argv \u003d [\"\", \"tempurl\", \"GET\", \"60\", bad_path,"},{"line_number":1436,"context_line":"                    \"secret_key\", \"--absolute\"]"},{"line_number":1437,"context_line":"            print(\u0027hi\u0027)"},{"line_number":1438,"context_line":"            with CaptureOutput(suppress_systemexit\u003dTrue) as output:"},{"line_number":1439,"context_line":"                swiftclient.shell.main(argv)"},{"line_number":1440,"context_line":"            print (output.out)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_eb548455","line":1437,"in_reply_to":"9a89bdaa_aad0bcca","updated":"2016-09-14 15:19:37.000000000","message":"Argh! just trying to make out test suite a little more friendly :)\n\nwill fix","commit_id":"16588d2ff4bf187cf1ecd3b2bf080da74fe25ced"}],"tests/unit/test_utils.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d681365c4f025ab9e529d96d5f7833a27b4e6e77","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        with self.assertRaises(ValueError) as exc_manager:"},{"line_number":195,"context_line":"            u.generate_temp_url(\u0027blah/v1/a/c/o\u0027, 60, self.key, self.method)"},{"line_number":196,"context_line":"        self.assertEqual(exc_manager.exception.args[0],"},{"line_number":197,"context_line":"                         \u0027path must be full path to an object e.g. /v1/a/c/o\u0027)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"class TestTempURLUnicodePathAndKey(TestTempURL):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_25d09af7","line":197,"updated":"2016-09-08 21:14:02.000000000","message":"Probably worth adding tests for things like \u0027/v1//c/o\u0027 or \u0027/v1/a/c/\u0027.","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"ad76b29c5554cd457e594504ac38021aba4473d8","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        with self.assertRaises(ValueError) as exc_manager:"},{"line_number":195,"context_line":"            u.generate_temp_url(\u0027blah/v1/a/c/o\u0027, 60, self.key, self.method)"},{"line_number":196,"context_line":"        self.assertEqual(exc_manager.exception.args[0],"},{"line_number":197,"context_line":"                         \u0027path must be full path to an object e.g. /v1/a/c/o\u0027)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"class TestTempURLUnicodePathAndKey(TestTempURL):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_a9362ae5","line":197,"in_reply_to":"9a89bdaa_25d09af7","updated":"2016-09-09 10:16:11.000000000","message":"Done","commit_id":"683274b64fc7b203d4be83736b4043f5047c1648"}]}
