Skip to content

Commit 71d3b08

Browse files
committed
Added add_template_file method for FileCollection resource
1 parent 88d6b61 commit 71d3b08

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

office365/sharepoint/file_collection.py

+14
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,20 @@ def add(self, file_creation_information):
2323
self.add_child(file_new)
2424
return file_new
2525

26+
def add_template_file(self, url_of_file, template_file_type):
27+
"""Adds a ghosted file to an existing list or document library."""
28+
file_new = File(self.context)
29+
qry = ClientQuery.service_operation_query(self,
30+
ActionType.PostMethod,
31+
"addTemplateFile",
32+
{
33+
"urlOfFile": url_of_file,
34+
"templateFileType": template_file_type
35+
})
36+
self.context.add_query(qry, file_new)
37+
self.add_child(file_new)
38+
return file_new
39+
2640
def get_by_url(self, url):
2741
"""Retrieve File object by url"""
2842
return File(self.context, ResourcePathServiceOperation(self.context, self.resource_path, "GetByUrl", [url]))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class TemplateFileType:
2+
def __init__(self):
3+
pass
4+
5+
StandardPage = 0
6+
WikiPage = 1
7+
FormPage = 2

tests/test_file.py

+13-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from office365.sharepoint.file import File
44
from office365.sharepoint.list_creation_information import ListCreationInformation
55
from office365.sharepoint.list_template_type import ListTemplateType
6+
from office365.sharepoint.template_file_type import TemplateFileType
67
from tests import random_seed
78
from tests.sharepoint_case import SPTestCase
89
from tests.test_utilities import ListExtensions, FileExtensions, read_file_as_binary, read_file_as_text, \
@@ -68,7 +69,7 @@ def test_4_download_file(self):
6869
def test_5_move_file(self):
6970
"""Test file upload operation"""
7071
files = self.target_list.root_folder.files
71-
self.context.load(files,)
72+
self.context.load(files, )
7273
self.context.execute_query()
7374
for file in files:
7475
file_url = file.properties["ServerRelativeUrl"]
@@ -95,9 +96,18 @@ def test_6_recycle_first_file(self):
9596
files_after = self.target_list.root_folder.files
9697
self.context.load(files_after)
9798
self.context.execute_query()
98-
self.assertEqual(len(files)-1, len(files_after))
99+
self.assertEqual(len(files) - 1, len(files_after))
99100

100-
def test_7_delete_file(self):
101+
def test_7_create_template_file(self):
102+
target_folder = self.target_list.root_folder
103+
self.context.load(target_folder)
104+
self.context.execute_query()
105+
file_url = '/'.join([target_folder.properties["ServerRelativeUrl"], "WikiPage.aspx"])
106+
file_new = self.target_list.root_folder.files.add_template_file(file_url, TemplateFileType.WikiPage)
107+
self.context.execute_query()
108+
self.assertEqual(file_new.properties["ServerRelativeUrl"], file_url)
109+
110+
def test_8_delete_file(self):
101111
files_to_delete = self.target_list.root_folder.files
102112
self.context.load(files_to_delete)
103113
self.context.execute_query()
@@ -111,4 +121,3 @@ def test_7_delete_file(self):
111121
self.context.execute_query()
112122
files_items = list(result)
113123
self.assertEqual(len(files_items), 0)
114-

0 commit comments

Comments
 (0)