|
| 1 | +""" |
| 2 | +
|
| 3 | +""" |
| 4 | +from random import randrange |
| 5 | + |
| 6 | +from faker import Faker |
| 7 | + |
| 8 | +from office365.sharepoint.client_context import ClientContext |
| 9 | +from office365.sharepoint.folders.folder import Folder |
| 10 | +from office365.sharepoint.lists.list import List |
| 11 | +from tests import test_team_site_url, test_user_credentials |
| 12 | + |
| 13 | + |
| 14 | +def run_files_import(target_folder, files_amount=None): |
| 15 | + # type: (Folder, int) -> None |
| 16 | + fake = Faker() |
| 17 | + path = "../../../tests/data/SharePoint User Guide.docx" |
| 18 | + for file_index in range(0, files_amount): |
| 19 | + file_name = fake.file_name(extension="docx") |
| 20 | + target_file = target_folder.files.upload(path, file_name).execute_query() |
| 21 | + print( |
| 22 | + "({0} of {1}) File '{2}' has been uploaded".format( |
| 23 | + file_index, files_amount, target_file.serverRelativeUrl |
| 24 | + ) |
| 25 | + ) |
| 26 | + |
| 27 | + |
| 28 | +def run_folders_import( |
| 29 | + target_lib, folders_amount, include_files=False, files_amount=None |
| 30 | +): |
| 31 | + # type: (List, int, bool, int) -> None |
| 32 | + fake = Faker() |
| 33 | + for folder_index in range(0, folders_amount): |
| 34 | + # 1. Create a folder |
| 35 | + folder_name = fake.date() |
| 36 | + target_folder = target_lib.root_folder.add(folder_name).execute_query() |
| 37 | + print( |
| 38 | + "({0} of {1}) Folder '{2}' has been created".format( |
| 39 | + folder_index, folders_amount, target_folder.serverRelativeUrl |
| 40 | + ) |
| 41 | + ) |
| 42 | + |
| 43 | + if include_files: |
| 44 | + # 2. Upload a file into a folder |
| 45 | + run_files_import(target_folder, randrange(0, files_amount)) |
| 46 | + |
| 47 | + |
| 48 | +if __name__ == "__main__": |
| 49 | + ctx = ClientContext(test_team_site_url).with_credentials(test_user_credentials) |
| 50 | + lib = ctx.web.lists.get_by_title("Documents_Archive") |
| 51 | + # run_folders_import(lib, 1, True, 1000) |
| 52 | + run_files_import(lib.root_folder, 500) |
0 commit comments