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
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
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"]
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
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
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
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