forked from googleapis/google-cloud-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request googleapis#136 from O365/tests
Tests are up and running. we just need to expand them. At time of writing we have 25% coverage.
- Loading branch information
Showing
7 changed files
with
159 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
from O365 import Account | ||
from O365 import Message | ||
|
||
|
||
class TestAccount: | ||
|
||
def setup_class(self): | ||
credentials = ("client id","client secret") | ||
self.account = Account(credentials) | ||
|
||
def teardown_class(self): | ||
pass | ||
|
||
def test_get_message(self): | ||
message = self.account.new_message() | ||
assert isinstance(message,Message) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import pytest | ||
import json | ||
|
||
from O365.connection import Connection, Protocol, MSGraphProtocol, MSOffice365Protocol, DEFAULT_SCOPES | ||
|
||
|
||
class TestConnection: | ||
|
||
def setup_class(self): | ||
pass | ||
|
||
def teardown_class(self): | ||
pass | ||
|
||
def test_blank_connection(self): | ||
with pytest.raises(TypeError): | ||
c1 = Connection() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,31 @@ | ||
#from O365 import Account | ||
from O365 import Account | ||
import json | ||
|
||
class MockConnection: | ||
|
||
ret_value = None | ||
|
||
def get(self, url, params=None, **kwargs): | ||
self.url = url | ||
self.kwargs = kwargs | ||
|
||
class TestMailBox: | ||
|
||
def setup_class(self): | ||
pass | ||
credentials = ("client id","client secret") | ||
self.account = Account(credentials) | ||
self.mailbox = self.account.mailbox() | ||
self.mailbox.con = MockConnection() | ||
|
||
def teardown_class(self): | ||
pass | ||
|
||
def test_mailbox(self): | ||
assert self.mailbox.root | ||
|
||
# def test_get_mailbox_folders(self): | ||
# self.mailbox.con.ret_value = ['Inbox','Drafts'] | ||
# | ||
# folders = self.mailbox.get_folders(limit=5) | ||
# | ||
# assert len(folders) > 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
from pathlib import Path | ||
#from O365 import Account | ||
from O365 import Account | ||
|
||
class TestMessage: | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
import pytest | ||
import json | ||
|
||
from pytz import UnknownTimeZoneError | ||
from tzlocal import get_localzone | ||
|
||
from O365.connection import Connection, Protocol, MSGraphProtocol, MSOffice365Protocol, DEFAULT_SCOPES | ||
|
||
TEST_SCOPES = ['Contacts.Read.Shared', 'Mail.Send.Shared', 'User.Read', 'Contacts.ReadWrite.Shared', 'Mail.ReadWrite.Shared', 'Mail.Read.Shared', 'Contacts.Read', 'Sites.ReadWrite.All', 'Mail.Send', 'Mail.ReadWrite', 'offline_access', 'Mail.Read', 'Contacts.ReadWrite', 'Files.ReadWrite.All', 'Calendars.ReadWrite', 'User.ReadBasic.All'] | ||
|
||
class TestProtocol: | ||
|
||
def setup_class(self): | ||
self.proto = Protocol(protocol_url="testing", api_version="0.0") | ||
|
||
def teardown_class(self): | ||
pass | ||
|
||
def test_blank_protocol(self): | ||
with pytest.raises(ValueError): | ||
p = Protocol() | ||
|
||
def test_to_api_case(self): | ||
assert(self.proto.to_api_case("CaseTest") == "case_test") | ||
|
||
def test_get_scopes_for(self): | ||
with pytest.raises(ValueError): | ||
self.proto.get_scopes_for(123) # should error sicne it's not a list or tuple. | ||
|
||
assert(self.proto.get_scopes_for(['mailbox']) == ['mailbox']) | ||
|
||
assert(self.proto.get_scopes_for(None) == []) | ||
|
||
assert(self.proto.get_scopes_for('mailbox') == ['mailbox']) | ||
|
||
self.proto._oauth_scopes = DEFAULT_SCOPES | ||
|
||
assert(self.proto.get_scopes_for(['mailbox']) == ['Mail.Read']) | ||
|
||
# This test verifies that the scopes in the default list don't change | ||
#without us noticing. It makes sure that all the scopes we get back are | ||
#in the current set of scopes we expect. And all the scopes that we are | ||
#expecting are in the scopes we are getting back. The list contains the | ||
#same stuff but may not be in the same order and are therefore not equal | ||
scopes = self.proto.get_scopes_for(None) | ||
for scope in scopes: | ||
assert(scope in TEST_SCOPES) | ||
for scope in TEST_SCOPES: | ||
assert(scope in scopes) | ||
|
||
assert(self.proto.get_scopes_for('mailbox') == ['Mail.Read']) | ||
|
||
def test_prefix_scope(self): | ||
assert(self.proto._prefix_scope('Mail.Read') == 'Mail.Read') | ||
|
||
assert(self.proto._prefix_scope(('Mail.Read',)) == 'Mail.Read') | ||
|
||
self.proto.protocol_scope_prefix = 'test_prefix_' | ||
|
||
assert(self.proto._prefix_scope(('Mail.Read',)) == 'Mail.Read') | ||
|
||
assert(self.proto._prefix_scope('test_prefix_Mail.Read') == 'test_prefix_Mail.Read') | ||
|
||
assert(self.proto._prefix_scope('Mail.Read') == 'test_prefix_Mail.Read') | ||
|
||
def test_decendant_MSOffice365Protocol(self): | ||
# Basically we just test that it can create the class w/o erroring. | ||
msp = MSOffice365Protocol() | ||
|
||
# Make sure these don't change without going noticed. | ||
assert(msp.keyword_data_store['message_type'] == 'Microsoft.OutlookServices.Message') | ||
assert(msp.keyword_data_store['file_attachment_type'] == '#Microsoft.OutlookServices.FileAttachment') | ||
assert(msp.keyword_data_store['item_attachment_type'] == '#Microsoft.OutlookServices.ItemAttachment') | ||
assert(msp.max_top_value == 999) |