Esempio n. 1
0
def rm_method(method):
    radu = RadulaProxy(connection=boto.connect_s3())
    radu.make_bucket(subject=TEST_BUCKET)

    # give something to rm
    args = vars(_parse_args(['up']))
    expected = []
    for i in xrange(3):
        remote_file = REMOTE_FILE + str(i)
        expected.append(remote_file)
        args.update({
            "subject": TEST_FILE,
            "target": remote_file
        })
        radu.upload(**args)

    while len(expected):
        remove_file = expected.pop()
        sys.stdout.truncate(0)
        getattr(radu, method)(subject=remove_file)

        radu.keys(subject=TEST_BUCKET)
        keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")]

        absent_key = os.path.basename(remove_file)
        assert_not_in(absent_key, keys, msg="Expecting absence of key mention '{0}'".format(absent_key))
        for expected_key in expected:
            expected_key = os.path.basename(expected_key)
            assert_in(expected_key, keys, msg="Expecting output containing '{0}'".format(expected_key))
Esempio n. 2
0
def key_slash_test():
    radu = RadulaProxy(connection=boto.connect_s3())
    radu.make_bucket(subject=TEST_BUCKET)

    # give something to download
    args = vars(_parse_args(['up']))
    expected = []
    keys_added = 3
    # some to find
    for i in xrange(keys_added):
        remote_file = os.path.join(TEST_BUCKET, "find",
                                   os.path.basename(TEST_FILE)) + str(i)
        expected.append(remote_file)
        args.update({"subject": TEST_FILE, "target": remote_file})
        radu.upload(**args)

    # some to miss
    for i in xrange(keys_added):
        remote_file = os.path.join(TEST_BUCKET, "miss",
                                   os.path.basename(TEST_FILE)) + str(i)
        args.update({"subject": TEST_FILE, "target": remote_file})
        radu.upload(**args)

    sys.stdout.truncate(0)

    # bucket/find/ (trailing slash)
    radu.keys(subject=os.path.join(TEST_BUCKET, 'find', ''))
    keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")]
    for expected_key in expected:
        expected_key = os.path.join('find', os.path.basename(expected_key))
        msg = "Expecting output containing '{0}'".format(expected_key)
        assert_in(expected_key, keys, msg=msg)
    assert_equal(keys_added, len(keys),
                 "Expected to have %d keys, got %d" % (keys_added, len(keys)))
Esempio n. 3
0
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))
Esempio n. 4
0
def key_test():
    radu = RadulaProxy(connection=boto.connect_s3())
    radu.make_bucket(subject=TEST_BUCKET)

    # give something to download
    args = vars(_parse_args(['up']))
    expected = []
    for i in xrange(3):
        remote_file = REMOTE_FILE + str(i)
        expected.append(remote_file)
        args.update({"subject": TEST_FILE, "target": remote_file})
        radu.upload(**args)
    sys.stdout.truncate(0)

    radu.keys(subject=TEST_BUCKET)
    keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")]

    for expected_key in expected:
        expected_key = os.path.basename(expected_key)
        msg = "Expecting output containing '{0}'".format(expected_key)
        assert_in(expected_key, keys, msg=msg)
Esempio n. 5
0
def key_test():
    radu = RadulaProxy(connection=boto.connect_s3())
    radu.make_bucket(subject=TEST_BUCKET)

    # give something to download
    args = vars(_parse_args(['up']))
    expected = []
    for i in xrange(3):
        remote_file = REMOTE_FILE + str(i)
        expected.append(remote_file)
        args.update({
            "subject": TEST_FILE,
            "target": remote_file
        })
        radu.upload(**args)
    sys.stdout.truncate(0)

    radu.keys(subject=TEST_BUCKET)
    keys = [k.strip() for k in sys.stdout.getvalue().strip().split("\n")]

    for expected_key in expected:
        expected_key = os.path.basename(expected_key)
        assert_in(expected_key, keys, msg="Expecting output containing '{0}'".format(expected_key))
Esempio n. 6
0
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))