class GroupMemberCollectionTest(unittest.TestCase): def setUp(self): Account.default_adapter = MockAdapter self.members = Group( Account(account_id="100", public_key="xxx", private_key="yyy"), { 'member_group_id': 200, 'group_name': u"My Group" }).members def test_can_fetch_all_members(self): del (self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.fetch_all() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_fetch_all_members2(self): # Setup MockAdapter.expected = [{ 'member_id': 200, 'email': u"*****@*****.**" }, { 'member_id': 201, 'email': u"*****@*****.**" }, { 'member_id': 202, 'email': u"*****@*****.**" }] members = self.members.fetch_all() self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('GET', '/groups/200/members', {})) self.assertIsInstance(members, dict) self.assertEquals(3, len(members)) self.assertEquals(3, len(self.members)) self.assertIsInstance(self.members[200], Member) self.assertIsInstance(self.members[201], Member) self.assertIsInstance(self.members[202], Member) self.assertEquals(self.members[200]['email'], u"*****@*****.**") self.assertEquals(self.members[201]['email'], u"*****@*****.**") self.assertEquals(self.members[202]['email'], u"*****@*****.**") def test_can_fetch_all_members3(self): # Setup MockAdapter.expected = [{ 'member_id': 204, 'email': u"*****@*****.**" }] members = self.members.fetch_all(True) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('GET', '/groups/200/members', { 'deleted': True })) self.assertIsInstance(members, dict) self.assertEquals(1, len(members)) self.assertEquals(1, len(self.members)) self.assertIsInstance(self.members[204], Member) self.assertEquals(self.members[204]['email'], u"*****@*****.**") def test_can_add_members_by_status(self): del (self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_status( [MemberStatus.Active, MemberStatus.Error]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_status2(self): self.members.add_by_status() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_status3(self): MockAdapter.expected = False with self.assertRaises(ex.MemberCopyToGroupError): self.members.add_by_status([MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/members/200/copy', { 'member_status_id': [u"a"] })) def test_can_add_members_by_status4(self): MockAdapter.expected = True self.members.add_by_status([MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/members/200/copy', { 'member_status_id': [u"a"] })) def test_can_add_members_by_id(self): del (self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_id2(self): self.members.add_by_id() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_id3(self): MockAdapter.expected = [200, 201] self.members.add_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/groups/200/members', { 'member_ids': [200, 201] })) def test_can_add_members_by_group(self): del (self.members.group['member_group_id']) other = Group(self.members.group.account, {'member_group_id': 199}) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_group2(self): other = Group(self.members.group.account) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_group3(self): MockAdapter.expected = True other = Group(self.members.group.account, {'member_group_id': 199}) result = self.members.add_by_group(other, [MemberStatus.Active]) self.assertIsNone(result) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/groups/199/200/members/copy', { 'member_status_id': ["a"] })) def test_can_add_members_by_group4(self): MockAdapter.expected = False other = Group(self.members.group.account, {'member_group_id': 199}) with self.assertRaises(ex.MemberCopyToGroupError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/groups/199/200/members/copy', { 'member_status_id': ["a"] })) def test_can_remove_members_by_id(self): del (self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.remove_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_members_by_id2(self): self.members.remove_by_id() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_members_by_id3(self): MockAdapter.expected = [200, 201] self.members.remove_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/groups/200/members/remove', { 'member_ids': [200, 201] })) def test_can_remove_members_by_id4(self): MockAdapter.expected = [204] del (self.members[204]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('PUT', '/groups/200/members/remove', { 'member_ids': [204] })) def test_can_remove_all_members(self): del (self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.remove_all() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_all_members2(self): MockAdapter.expected = True self.members.remove_all() self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', {})) def test_can_remove_all_members3(self): MockAdapter.expected = True self.members.remove_all(MemberStatus.Active) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', { 'member_status_id': u"a" })) def test_can_remove_all_members4(self): MockAdapter.expected = True self.members.remove_all(MemberStatus.Error) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals(self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', { 'member_status_id': u"e" }))
class GroupMemberCollectionTest(unittest.TestCase): def setUp(self): Account.default_adapter = MockAdapter self.members = Group( Account(account_id="100", public_key="xxx", private_key="yyy"), {'member_group_id': 200, 'group_name': u"My Group"} ).members def test_can_fetch_all_members(self): del(self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.fetch_all() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_fetch_all_members2(self): # Setup MockAdapter.expected = [ {'member_id': 200, 'email': u"*****@*****.**"}, {'member_id': 201, 'email': u"*****@*****.**"}, {'member_id': 202, 'email': u"*****@*****.**"} ] members = self.members.fetch_all() self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('GET', '/groups/200/members', {})) self.assertIsInstance(members, dict) self.assertEquals(3, len(members)) self.assertEquals(3, len(self.members)) self.assertIsInstance(self.members[200], Member) self.assertIsInstance(self.members[201], Member) self.assertIsInstance(self.members[202], Member) self.assertEquals(self.members[200]['email'], u"*****@*****.**") self.assertEquals(self.members[201]['email'], u"*****@*****.**") self.assertEquals(self.members[202]['email'], u"*****@*****.**") def test_can_fetch_all_members3(self): # Setup MockAdapter.expected = [ {'member_id': 204, 'email': u"*****@*****.**"} ] members = self.members.fetch_all(True) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('GET', '/groups/200/members', {'deleted': True})) self.assertIsInstance(members, dict) self.assertEquals(1, len(members)) self.assertEquals(1, len(self.members)) self.assertIsInstance(self.members[204], Member) self.assertEquals(self.members[204]['email'], u"*****@*****.**") def test_can_add_members_by_status(self): del(self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_status([ MemberStatus.Active, MemberStatus.Error]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_status2(self): self.members.add_by_status() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_status3(self): MockAdapter.expected = False with self.assertRaises(ex.MemberCopyToGroupError): self.members.add_by_status([MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/members/200/copy', {'member_status_id':[u"a"]})) def test_can_add_members_by_status4(self): MockAdapter.expected = True self.members.add_by_status([MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/members/200/copy', {'member_status_id':[u"a"]})) def test_can_add_members_by_id(self): del(self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_id2(self): self.members.add_by_id() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_id3(self): MockAdapter.expected = [200, 201] self.members.add_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/groups/200/members', {'member_ids':[200, 201]})) def test_can_add_members_by_group(self): del(self.members.group['member_group_id']) other = Group(self.members.group.account, {'member_group_id': 199}) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_group2(self): other = Group(self.members.group.account) with self.assertRaises(ex.NoGroupIdError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_add_members_by_group3(self): MockAdapter.expected = True other = Group(self.members.group.account, {'member_group_id': 199}) result = self.members.add_by_group(other, [MemberStatus.Active]) self.assertIsNone(result) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/groups/199/200/members/copy', {'member_status_id': ["a"]})) def test_can_add_members_by_group4(self): MockAdapter.expected = False other = Group(self.members.group.account, {'member_group_id': 199}) with self.assertRaises(ex.MemberCopyToGroupError): self.members.add_by_group(other, [MemberStatus.Active]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/groups/199/200/members/copy', {'member_status_id': ["a"]})) def test_can_remove_members_by_id(self): del(self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.remove_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_members_by_id2(self): self.members.remove_by_id() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_members_by_id3(self): MockAdapter.expected = [200, 201] self.members.remove_by_id([200, 201]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/groups/200/members/remove', {'member_ids':[200, 201]})) def test_can_remove_members_by_id4(self): MockAdapter.expected = [204] del(self.members[204]) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('PUT', '/groups/200/members/remove', {'member_ids':[204]})) def test_can_remove_all_members(self): del(self.members.group['member_group_id']) with self.assertRaises(ex.NoGroupIdError): self.members.remove_all() self.assertEquals(self.members.group.account.adapter.called, 0) def test_can_remove_all_members2(self): MockAdapter.expected = True self.members.remove_all() self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', {})) def test_can_remove_all_members3(self): MockAdapter.expected = True self.members.remove_all(MemberStatus.Active) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', {'member_status_id': u"a"})) def test_can_remove_all_members4(self): MockAdapter.expected = True self.members.remove_all(MemberStatus.Error) self.assertEquals(self.members.group.account.adapter.called, 1) self.assertEquals( self.members.group.account.adapter.call, ('DELETE', '/groups/200/members', {'member_status_id': u"e"}))