|
from unittest import TestCase
|
|
|
|
from gcsa.attachment import Attachment
|
|
from gcsa.serializers.attachment_serializer import AttachmentSerializer
|
|
|
|
DOC_URL = 'https://bit.ly/3lZo0Cc'
|
|
|
|
|
|
class TestAttachment(TestCase):
|
|
|
|
def test_create(self):
|
|
attachment = Attachment(
|
|
file_url=DOC_URL,
|
|
title='My doc',
|
|
mime_type="application/vnd.google-apps.document"
|
|
)
|
|
self.assertEqual(attachment.title, 'My doc')
|
|
|
|
attachment = Attachment(
|
|
file_url=DOC_URL,
|
|
title='My doc',
|
|
mime_type="application/vnd.google-apps.something"
|
|
)
|
|
self.assertTrue(attachment.unsupported_mime_type)
|
|
|
|
def test_repr_str(self):
|
|
attachment = Attachment(
|
|
file_url=DOC_URL,
|
|
title='My doc',
|
|
mime_type="application/vnd.google-apps.document"
|
|
)
|
|
self.assertEqual(attachment.__repr__(), "<Attachment 'My doc' - 'https://bit.ly/3lZo0Cc'>")
|
|
self.assertEqual(attachment.__str__(), "'My doc' - 'https://bit.ly/3lZo0Cc'")
|
|
|
|
|
|
class TestAttachmentSerializer(TestCase):
|
|
|
|
def test_to_json(self):
|
|
attachment = Attachment(
|
|
file_url=DOC_URL,
|
|
title='My doc',
|
|
mime_type="application/vnd.google-apps.document"
|
|
)
|
|
attachment_json = {
|
|
'title': 'My doc',
|
|
'fileUrl': DOC_URL,
|
|
'mimeType': "application/vnd.google-apps.document"
|
|
}
|
|
self.assertDictEqual(AttachmentSerializer.to_json(attachment), attachment_json)
|
|
|
|
attachment = Attachment(
|
|
file_url=DOC_URL,
|
|
title='My doc2',
|
|
mime_type="application/vnd.google-apps.drawing",
|
|
_icon_link="https://some_link.com",
|
|
_file_id='abc123'
|
|
)
|
|
attachment_json = {
|
|
'title': 'My doc2',
|
|
'fileUrl': DOC_URL,
|
|
'mimeType': "application/vnd.google-apps.drawing",
|
|
'iconLink': "https://some_link.com",
|
|
'fileId': 'abc123'
|
|
}
|
|
serializer = AttachmentSerializer(attachment)
|
|
self.assertDictEqual(serializer.get_json(), attachment_json)
|
|
|
|
def test_to_object(self):
|
|
attachment_json = {
|
|
'title': 'My doc',
|
|
'fileUrl': DOC_URL,
|
|
'mimeType': "application/vnd.google-apps.document"
|
|
}
|
|
attachment = AttachmentSerializer.to_object(attachment_json)
|
|
|
|
self.assertEqual(attachment.title, 'My doc')
|
|
self.assertEqual(attachment.file_url, DOC_URL)
|
|
self.assertEqual(attachment.mime_type, "application/vnd.google-apps.document")
|
|
self.assertIsNone(attachment.icon_link)
|
|
self.assertIsNone(attachment.file_id)
|
|
|
|
attachment_json = {
|
|
'title': 'My doc2',
|
|
'fileUrl': DOC_URL,
|
|
'mimeType': "application/vnd.google-apps.drawing",
|
|
'iconLink': "https://some_link.com",
|
|
'fileId': 'abc123'
|
|
}
|
|
serializer = AttachmentSerializer(attachment_json)
|
|
attachment = serializer.get_object()
|
|
|
|
self.assertEqual(attachment.title, 'My doc2')
|
|
self.assertEqual(attachment.file_url, DOC_URL)
|
|
self.assertEqual(attachment.mime_type, "application/vnd.google-apps.drawing")
|
|
self.assertEqual(attachment.icon_link, "https://some_link.com")
|
|
self.assertEqual(attachment.file_id, 'abc123')
|
|
|
|
attachment_json_str = """{
|
|
"title": "My doc3",
|
|
"fileUrl": "%s",
|
|
"mimeType": "application/vnd.google-apps.drawing",
|
|
"iconLink": "https://some_link.com",
|
|
"fileId": "abc123"
|
|
}
|
|
""" % DOC_URL
|
|
attachment = AttachmentSerializer.to_object(attachment_json_str)
|
|
|
|
self.assertEqual(attachment.title, 'My doc3')
|
|
self.assertEqual(attachment.file_url, DOC_URL)
|
|
self.assertEqual(attachment.mime_type, "application/vnd.google-apps.drawing")
|
|
self.assertEqual(attachment.icon_link, "https://some_link.com")
|
|
self.assertEqual(attachment.file_id, 'abc123')
|
|
|