Skip to content

Commit 77c67e1

Browse files
committed
Tested upload session does an upload
1 parent 0d4aafc commit 77c67e1

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

src/msgraph_core/models/large_file_upload_session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010

1111
@dataclass
12-
class LargeFileUploadSession:
12+
class LargeFileUploadSession(Parsable, AdditionalDataHolder):
1313
upload_url: Optional[str] = None
1414
expiration_date_time: Optional[datetime] = None
1515
additional_data: List[Dict[str, any]] = field(default_factory=list)

src/msgraph_core/tasks/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
from .page_iterator import PageIterator
22
from .large_file_upload import LargeFileUploadTask
3+
4+
__all__ = ['PageIterator', 'LargeFileUploadTask']

src/msgraph_core/tasks/large_file_upload.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def upload_session_expired(self, upload_session: Optional[Parsable] = None) -> b
6161
now = datetime.now()
6262

6363
validated_value = self.check_value_exists(
64-
upload_session or self.upload_session, 'get_expiration_date_time',
64+
upload_session or self.upload_session, 'expiration_date_time',
6565
['ExpirationDateTime', 'expirationDateTime']
6666
)
6767
if not validated_value[0]:
@@ -71,10 +71,11 @@ def upload_session_expired(self, upload_session: Optional[Parsable] = None) -> b
7171

7272
if expiry is None:
7373
raise ValueError('The upload session does not contain a valid expiry date.')
74-
75-
then = datetime.strptime(expiry, "%Y-%m-%dT%H:%M:%S")
74+
if isinstance(expiry, str):
75+
then = datetime.strptime(expiry, "%Y-%m-%dT%H:%M:%S")
76+
else:
77+
then = expiry
7678
interval = (now - then).total_seconds()
77-
7879
if interval < 0:
7980
return True
8081
return False
@@ -180,11 +181,11 @@ async def cancel(self) -> Optional[Future]:
180181

181182
await self.request_adapter.send_no_response_content_async(request_information)
182183

183-
if hasattr(self.upload_session, 'set_is_cancelled'):
184-
self.upload_session.set_is_cancelled(True)
185-
elif hasattr(self.upload_session, 'set_additional_data'
186-
) and hasattr(self.upload_session, 'get_additional_data'):
187-
current = self.upload_session.get_additional_data()
184+
if hasattr(self.upload_session, 'is_cancelled'):
185+
self.upload_session.is_cancelled = True
186+
elif hasattr(self.upload_session,
187+
'additional_data') and hasattr(self.upload_session, 'additional_data'):
188+
current = self.upload_session.additional_data
188189
new = {**current, 'is_cancelled': True}
189190
self.upload_session.set_additional_data(new)
190191

@@ -203,16 +204,16 @@ def additional_data_contains(self, parsable: Parsable,
203204
return False, None
204205

205206
def check_value_exists(
206-
self, parsable: Parsable, getter_name: str, property_names_in_additional_data: List[str]
207+
self, parsable: Parsable, attribute_name: str, property_names_in_additional_data: List[str]
207208
) -> Tuple[bool, Any]:
208209
checked_additional_data = self.additional_data_contains(
209210
parsable, property_names_in_additional_data
210211
)
211212
if issubclass(type(parsable), AdditionalDataHolder) and checked_additional_data[0]:
212213
return True, checked_additional_data[1]
213214

214-
if hasattr(parsable, getter_name):
215-
return True, getattr(parsable, getter_name)()
215+
if hasattr(parsable, attribute_name):
216+
return True, getattr(parsable, attribute_name)
216217

217218
return False, None
218219

@@ -221,7 +222,7 @@ async def resume(self) -> Future:
221222
raise RuntimeError('The upload session is expired.')
222223

223224
validated_value = self.check_value_exists(
224-
self.upload_session, 'get_next_expected_ranges',
225+
self.upload_session, 'next_expected_ranges',
225226
['NextExpectedRanges', 'nextExpectedRanges']
226227
)
227228
if not validated_value[0]:
@@ -238,7 +239,7 @@ async def resume(self) -> Future:
238239
return await self.upload()
239240

240241
def get_validated_upload_url(self, upload_session: Parsable) -> str:
241-
if not hasattr(upload_session, 'get_upload_url'):
242+
if not hasattr(upload_session, 'upload_url'):
242243
raise RuntimeError('The upload session does not contain a valid upload url')
243244
result = upload_session.get_upload_url()
244245

0 commit comments

Comments
 (0)