Example #1
0
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"
                          }))
Example #2
0
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"}))