示例#1
0
 def test_folder_trashed(self, create_folder, managed_folder,
                         create_shared_file, create_webhook_event,
                         ddb_items, box_folders):
     folder = create_folder(parent_folder=managed_folder)
     file1 = create_shared_file(parent_folder=folder)
     file2 = create_shared_file(parent_folder=folder)
     ddb_items.append(common.make_ddb_item(file1))
     ddb_items.append(common.make_ddb_item(file2))
     box_folders.clear()
     event = create_webhook_event("FOLDER.TRASHED", folder)
     handle_event(event)
     assert len(ddb_items) == 2
示例#2
0
def test_delete_file_item(create_shared_file, mock_ddb_table, ddb_items):
    file = create_shared_file()
    ddb_items.append(common.make_ddb_item(file))

    common.delete_file_item(mock_ddb_table, file)

    assert len(ddb_items) == 0
示例#3
0
def test_make_ddb_item(create_folder, create_shared_file, managed_folder):
    folder = create_folder(parent_folder=managed_folder)
    file = create_shared_file(parent_folder=folder)

    item = common.make_ddb_item(file)
    assert item["filepath"] == f"{folder.name}/{file.name}"
    assert item["box_file_id"] == file.id
    assert item["download_url"] == file.shared_link["download_url"]
示例#4
0
 def test_file_trashed(self, create_webhook_event, create_shared_file,
                       ddb_items, box_files):
     file = create_shared_file()
     ddb_items.append(common.make_ddb_item(file))
     box_files.remove(file)
     event = create_webhook_event("FILE.TRASHED", file)
     handle_event(event)
     assert len(ddb_items) == 1
示例#5
0
def test_get_download_url(create_shared_file, mock_ddb_table, ddb_items):
    file = create_shared_file()
    ddb_items.append(common.make_ddb_item(file))

    assert common.get_download_url(
        mock_ddb_table,
        common.get_filepath(file)) == file.shared_link["download_url"]

    assert common.get_download_url(mock_ddb_table,
                                   "non/existant/file.dat") is None
示例#6
0
    def test_sync(
        self,
        ddb_items,
        create_folder,
        create_file,
        create_shared_file,
        create_shared_folder,
        managed_folder,
        create_shared_link,
        mock_box_client,
    ):
        # supposed to exist after sync
        shared_folder = create_shared_folder(parent_folder=managed_folder)
        correct_file = create_shared_file(parent_folder=shared_folder)
        ddb_items.append(common.make_ddb_item(correct_file))

        # supposed to exist after sync
        missing_file = create_shared_file(parent_folder=shared_folder)

        # not supposed to exist after sync
        no_longer_shared_file = create_file(parent_folder=managed_folder)
        ddb_items.append(
            {
                "filepath": common.get_filepath(no_longer_shared_file),
                "box_file_id": no_longer_shared_file.id,
                "download_url": "some-bogus-download-url",
            }
        )

        # not supposed to exist after sync
        ddb_items.append(
            {
                "filepath": "some/deleted/file.dat",
                "box_file_id": "123456789",
                "download_url": "some-other-bogus-download-url",
            }
        )

        # file in a shared folder that's missing from ddb
        # supposed to exist after sync
        unshared_file = create_file(parent_folder=shared_folder)

        # shared file in an unshared folder, not supposed to exist after sync
        unshared_folder = create_folder(parent=managed_folder)
        shared_file = create_shared_file(parent=unshared_folder)

        sync.lambda_handler({}, None)

        assert len(ddb_items) == 3
        file_ids = {i["box_file_id"] for i in ddb_items}
        assert file_ids == {correct_file.id, missing_file.id, unshared_file.id}
        assert common.is_box_object_public(shared_file) is False
示例#7
0
    def test_redirect_path(self, create_redirector_event, create_folder,
                           create_shared_file, managed_folder, ddb_items,
                           filename):
        subfolder = create_folder(parent_folder=managed_folder)
        file = create_shared_file(parent_folder=subfolder, name=filename)
        ddb_items.append(common.make_ddb_item(file))

        filepath = subfolder.name + "/" + file.name
        expected_location = file.shared_link["download_url"]

        event = create_redirector_event(filepath)
        result = redirector.lambda_handler(event, None)
        assert result["statusCode"] == 302
        assert result["headers"]["Location"] == expected_location