예제 #1
0
def _prepare_test_files(local_only=False):
    test_names = ["__testfile{0}".format(n) for n in range(2, -1, -1)]
    name_filter = lambda f: f.filename.startswith("__testfile")
    for f in test_names:
        os.system("touch {}".format(f))
        if not local_only:
            upload.delete_file("/DCIM/{}".format(f))
    return test_names, name_filter
예제 #2
0
def _prepare_test_files(local_only=False):
    test_names = ["__testfile{0}".format(n) for n in range(2, -1, -1)]
    name_filter = lambda f: f.filename.startswith("__testfile")
    for f in test_names:
        os.system("touch {}".format(f))
        if not local_only:
            upload.delete_file("/DCIM/{}".format(f))
    return test_names, name_filter
예제 #3
0
def test_sync_up_by_time():
    names, name_filter = _prepare_test_files()
    sync.up_by_time(name_filter, remote_dir="/DCIM", count=1)
    files = command.list_files(name_filter, remote_dir="/DCIM")
    files = list(files)
    assert len(files) == 1
    assert files[0].path == "/DCIM/__testfile0"
    upload.delete_file(files[0].path)
    _teardown_test_files(names)
예제 #4
0
def test_upload_delete():
    upload.delete_file("/DCIM/README.md")
    files = command.list_files(remote_dir="/DCIM")
    assert not any(f.filename == "README.md" for f in files)
    upload.upload_file("README.md", remote_dir="/DCIM")
    files = command.list_files(remote_dir="/DCIM")
    assert any(f.filename == "README.md" for f in files)
    upload.delete_file("/DCIM/README.md")
    assert not any(f.filename == "README.md" for f in files)
예제 #5
0
def test_sync_up_by_time():
    names, name_filter = _prepare_test_files()
    sync.up_by_time(name_filter, remote_dir="/DCIM", count=1)
    files = command.list_files(name_filter, remote_dir="/DCIM")
    files = list(files)
    assert len(files) == 1
    assert files[0].path == "/DCIM/__testfile0"
    upload.delete_file(files[0].path)
    _teardown_test_files(names)
예제 #6
0
def test_upload_delete():
    upload.delete_file("/DCIM/README.md")
    files = command.list_files(remote_dir="/DCIM")
    assert not any(f.filename == "README.md" for f in files)
    upload.upload_file("README.md", remote_dir="/DCIM")
    files = command.list_files(remote_dir="/DCIM")
    assert any(f.filename == "README.md" for f in files)
    upload.delete_file("/DCIM/README.md")
    assert not any(f.filename == "README.md" for f in files)
예제 #7
0
def test_sync_up_by_name():
    names, name_filter = _prepare_test_files() 
    sync.up_by_name(name_filter, remote_dir="/DCIM", count=2)
    files = command.list_files(name_filter, remote_dir="/DCIM")
    files = list(files)
    assert len(files) == 2
    assert [f.filename for f in files] == ["__testfile2", "__testfile1"]
    for f in files:
        upload.delete_file(f.path)
    _teardown_test_files(names)
예제 #8
0
def test_sync_up_by_name():
    names, name_filter = _prepare_test_files()
    sync.up_by_name(name_filter, remote_dir="/DCIM", count=2)
    files = command.list_files(name_filter, remote_dir="/DCIM")
    files = list(files)
    assert len(files) == 2
    assert [f.filename for f in files] == ["__testfile2", "__testfile1"]
    for f in files:
        upload.delete_file(f.path)
    _teardown_test_files(names)
예제 #9
0
def test_sync_up_by_arrival_threaded():
    names, name_filter = _prepare_test_files() 
    _teardown_test_files(names)

    monitor = sync.Monitor(name_filter, remote_dir="/DCIM")
    monitor.sync_up()
    time.sleep(0.2)
    _prepare_test_files()  # files get `touch`ed
    time.sleep(2)
    monitor.stop()
    files = list(command.list_files(name_filter, remote_dir="/DCIM")) 

    for f in files:
        upload.delete_file(f.path) 
    _teardown_test_files(names)

    assert len(files) == len(names)
예제 #10
0
def test_sync_up_by_arrival_threaded():
    names, name_filter = _prepare_test_files()
    _teardown_test_files(names)

    monitor = sync.Monitor(name_filter, remote_dir="/DCIM")
    monitor.sync_up()
    time.sleep(0.2)
    _prepare_test_files()  # files get `touch`ed
    time.sleep(2)
    monitor.stop()
    files = list(command.list_files(name_filter, remote_dir="/DCIM"))

    for f in files:
        upload.delete_file(f.path)
    _teardown_test_files(names)

    assert len(files) == len(names)
예제 #11
0
def test_sync_up_by_arrival():
    names, name_filter = _prepare_test_files()
    _teardown_test_files(names)

    to_upload = sync.up_by_arrival(name_filter, remote_dir="/DCIM")
    _, new = next(to_upload)  # nothing new yet
    assert not new  # empty set
    _prepare_test_files()  # files get `touch`ed
    _, new = next(to_upload)  # should be something new to upload
    assert len(new) == len(names)
    _, new = next(to_upload)  # triggers upload, then yields an empty set again
    assert not new
    files = list(command.list_files(name_filter, remote_dir="/DCIM"))

    for f in files:
        upload.delete_file(f.path)
    _teardown_test_files(names)

    assert len(files) == len(names)
예제 #12
0
def test_sync_up_by_arrival():
    names, name_filter = _prepare_test_files()
    _teardown_test_files(names)

    to_upload = sync.up_by_arrival(name_filter, remote_dir="/DCIM")
    _, new = next(to_upload)  # nothing new yet
    assert not new  # empty set
    _prepare_test_files()  # files get `touch`ed
    _, new = next(to_upload)  # should be something new to upload
    assert len(new) == len(names)
    _, new = next(to_upload)  # triggers upload, then yields an empty set again
    assert not new
    files = list(command.list_files(name_filter, remote_dir="/DCIM"))

    for f in files:
        upload.delete_file(f.path)
    _teardown_test_files(names)

    assert len(files) == len(names)