def copy_method(method): handler = TestHandler(Matcher()) logger = logging.getLogger() logger.addHandler(handler) radu = RadulaProxy(connection=boto.connect_s3()) radu.make_bucket(subject=TEST_BUCKET) # give something to download args = vars(_parse_args(['up'])) args.update({ "subject": TEST_FILE, "target": REMOTE_FILE }) radu.upload(**args) sys.stdout.truncate(0) # 'threads' needed args = vars(_parse_args(['-y', method])) target_file = REMOTE_FILE + '-copy' args.update({ "subject": REMOTE_FILE, "target": target_file }) radu.streaming_copy(**args) msgs = [ "Finished uploading", "tests.s3.amazonaws.com/data.txt", "Download URL", "Key data matches!" ] for msg in msgs: fmt = "Expecting log message containing '{0}'" assert_true(handler.matches(message=msg), msg=fmt.format(msg)) radu.keys(subject=TEST_BUCKET) keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")] expected = [REMOTE_FILE, target_file] fmt = "Expecting output containing '{0}'" for expected_key in expected: expected_key = os.path.basename(expected_key) assert_in(expected_key, keys, msg=fmt.format(expected_key))
def copy_method(method): handler = TestHandler(Matcher()) logger = logging.getLogger() logger.addHandler(handler) radu = RadulaProxy(connection=boto.connect_s3()) radu.make_bucket(subject=TEST_BUCKET) # give something to download args = vars(_parse_args(['up'])) args.update({"subject": TEST_FILE, "target": REMOTE_FILE}) radu.upload(**args) sys.stdout.truncate(0) # 'threads' needed args = vars(_parse_args(['-y', method])) target_file = REMOTE_FILE + '-copy' args.update({"subject": REMOTE_FILE, "target": target_file}) radu.streaming_copy(**args) msgs = [ "Finished uploading", "tests.s3.amazonaws.com/data.txt", "Download URL", "Checksum Verified!" ] for msg in msgs: fmt = "Expecting log message containing '{0}'" assert_true(handler.matches(message=msg), msg=fmt.format(msg)) radu.keys(subject=TEST_BUCKET) keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")] expected = [REMOTE_FILE, target_file] fmt = "Expecting output containing '{0}'" for expected_key in expected: expected_key = os.path.basename(expected_key) assert_in(expected_key, keys, msg=fmt.format(expected_key))