Exemplo n.º 1
0
    def test_can_save_a_member4(self):
        mbr = Member(
            self.member.account,
            {
                'member_id': 200,
                'email':"*****@*****.**",
                'first_name':"Emma",
                'member_status_id': MemberStatus.Active
            })
        MockAdapter.expected = False

        with self.assertRaises(ex.MemberUpdateError):
            mbr.save()
        self.assertEqual(mbr.account.adapter.called, 1)
        self.assertEqual(mbr.account.adapter.call,
            (
                'PUT',
                '/members/200',
                {
                    'member_id': 200,
                    'email':"*****@*****.**",
                    'fields': {'first_name': "Emma"},
                    'status_to': mbr['member_status_id']
                }
            ))
Exemplo n.º 2
0
    def test_can_save_a_member4(self):
        mbr = Member(
            self.member.account,
            {
                'member_id': 200,
                'email':u"*****@*****.**",
                'first_name':u"Emma",
                'member_status_id': MemberStatus.Active
            })
        MockAdapter.expected = False

        with self.assertRaises(ex.MemberUpdateError):
            mbr.save()
        self.assertEquals(mbr.account.adapter.called, 1)
        self.assertEquals(mbr.account.adapter.call,
            (
                'PUT',
                '/members/200',
                {
                    'member_id': 200,
                    'email':u"*****@*****.**",
                    'fields': {'first_name': u"Emma"},
                    'status_to': mbr['member_status_id']
                }
            ))
Exemplo n.º 3
0
    def test_can_save_a_member6(self):
        mbr = Member(
            self.member.account,
            {
                'email':u"*****@*****.**",
                'fields': {'first_name':u"Emma"}
            })
        MockAdapter.expected = {
            'status': u"a",
            'added': True,
            'member_id': 1024
        }

        result = mbr.save(group_ids=[1025])

        self.assertIsNone(result)
        self.assertEquals(mbr.account.adapter.called, 1)
        self.assertEquals(mbr.account.adapter.call,
            (
                'POST',
                '/members/add',
                {
                    'email':u"*****@*****.**",
                    'fields': {'first_name': u"Emma"},
                    'group_ids': [1025]
                }
            ))
Exemplo n.º 4
0
    def test_can_save_a_member6(self):
        mbr = Member(
            self.member.account,
            {
                'email':"*****@*****.**",
                'fields': {'first_name':"Emma"}
            })
        MockAdapter.expected = {
            'status': "a",
            'added': True,
            'member_id': 1024
        }

        result = mbr.save(group_ids=[1025])

        self.assertIsNone(result)
        self.assertEqual(mbr.account.adapter.called, 1)
        self.assertEqual(mbr.account.adapter.call,
            (
                'POST',
                '/members/add',
                {
                    'email':"*****@*****.**",
                    'fields': {'first_name': "Emma"},
                    'group_ids': [1025]
                }
            ))
Exemplo n.º 5
0
 def test_can_save_a_member(self):
     mbr = Member(self.member.account, {'email':u"*****@*****.**"})
     MockAdapter.expected = {
         'status': u"a",
         'added': True,
         'member_id': 1024
     }
     result = mbr.save()
     self.assertIsNone(result)
     self.assertEquals(mbr.account.adapter.called, 1)
     self.assertEquals(
         mbr.account.adapter.call,
         ('POST', '/members/add', {'email':u"*****@*****.**"}))
     self.assertEquals(1024, mbr['member_id'])
     self.assertEquals(MemberStatus.Active, mbr['member_status_id'])
Exemplo n.º 6
0
 def test_can_save_a_member(self):
     mbr = Member(self.member.account, {'email':"*****@*****.**"})
     MockAdapter.expected = {
         'status': "a",
         'added': True,
         'member_id': 1024
     }
     result = mbr.save()
     self.assertIsNone(result)
     self.assertEqual(mbr.account.adapter.called, 1)
     self.assertEqual(
         mbr.account.adapter.call,
         ('POST', '/members/add', {'email':"*****@*****.**"}))
     self.assertEqual(1024, mbr['member_id'])
     self.assertEqual(MemberStatus.Active, mbr['member_status_id'])
Exemplo n.º 7
0
 def test_can_save_a_member3(self):
     mbr = Member(
         self.member.account,
         {'email':u"*****@*****.**",
          'first_name':u"Emma"})
     MockAdapter.expected = {
         'status': u"a",
         'added': True,
         'member_id': 1024
     }
     result = mbr.save(signup_form_id=u"http://example.com/signup")
     self.assertIsNone(result)
     self.assertEquals(mbr.account.adapter.called, 1)
     self.assertEquals(
         mbr.account.adapter.call,
         ('POST', '/members/add', {
             'email':u"*****@*****.**",
             'fields': {'first_name': u"Emma"},
             'signup_form_id': u"http://example.com/signup"}
         ))
     self.assertEquals(1024, mbr['member_id'])
     self.assertEquals(MemberStatus.Active, mbr['member_status_id'])
Exemplo n.º 8
0
 def test_can_save_a_member3(self):
     mbr = Member(
         self.member.account,
         {'email':"*****@*****.**",
          'first_name':"Emma"})
     MockAdapter.expected = {
         'status': "a",
         'added': True,
         'member_id': 1024
     }
     result = mbr.save(signup_form_id="http://example.com/signup")
     self.assertIsNone(result)
     self.assertEqual(mbr.account.adapter.called, 1)
     self.assertEqual(
         mbr.account.adapter.call,
         ('POST', '/members/add', {
             'email':"*****@*****.**",
             'fields': {'first_name': "Emma"},
             'signup_form_id': "http://example.com/signup"}
         ))
     self.assertEqual(1024, mbr['member_id'])
     self.assertEqual(MemberStatus.Active, mbr['member_status_id'])
Exemplo n.º 9
0
 def test_can_save_a_member5(self):
     mbr = Member(
         self.member.account, {
             'member_id': 200,
             'email': u"*****@*****.**",
             'fields': {
                 'first_name': u"Emma"
             },
             'member_status_id': MemberStatus.Active
         })
     MockAdapter.expected = True
     result = mbr.save()
     self.assertIsNone(result)
     self.assertEquals(mbr.account.adapter.called, 1)
     self.assertEquals(mbr.account.adapter.call,
                       ('PUT', '/members/200', {
                           'member_id': 200,
                           'email': u"*****@*****.**",
                           'fields': {
                               'first_name': u"Emma"
                           },
                           'status_to': mbr['member_status_id']
                       }))
Exemplo n.º 10
0
 def test_can_save_a_member5(self):
     mbr = Member(
         self.member.account,
         {
             'member_id': 200,
             'email':u"*****@*****.**",
             'fields': {'first_name':u"Emma"},
             'member_status_id': MemberStatus.Active
         })
     MockAdapter.expected = True
     result = mbr.save()
     self.assertIsNone(result)
     self.assertEquals(mbr.account.adapter.called, 1)
     self.assertEquals(mbr.account.adapter.call,
         (
             'PUT',
             '/members/200',
             {
                 'member_id': 200,
                 'email':u"*****@*****.**",
                 'fields': {'first_name': u"Emma"},
                 'status_to': mbr['member_status_id']
             }
         ))
Exemplo n.º 11
0
class MemberGroupCollectionTest(unittest.TestCase):
    def setUp(self):
        Account.default_adapter = MockAdapter
        self.groups = Member(
            Account(account_id="100", public_key="xxx", private_key="yyy"), {
                'member_id': 1000,
                'email': u"*****@*****.**",
                'status': u"opt-out"
            }).groups

    def test_fetch_all_returns_a_dictionary(self):
        groups = MemberGroupCollection(Member(self.groups.member.account))
        with self.assertRaises(ex.NoMemberIdError):
            groups.fetch_all()
        self.assertEquals(groups.member.account.adapter.called, 0)

    def test_fetch_all_returns_a_dictionary2(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.assertIsInstance(self.groups.fetch_all(), dict)
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('GET', '/members/1000/groups', {}))

    def test_fetch_all_populates_collection(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.assertEquals(0, len(self.groups))
        self.groups.fetch_all()
        self.assertEquals(1, len(self.groups))

    def test_fetch_all_caches_results(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.groups.fetch_all()
        self.groups.fetch_all()
        self.assertEquals(self.groups.member.account.adapter.called, 1)

    def test_collection_can_be_accessed_like_a_dictionary(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.groups.fetch_all()
        self.assertIsInstance(self.groups, MemberGroupCollection)
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[200], Group)

    def test_factory_produces_a_group(self):
        grp = self.groups.factory()
        self.assertIsInstance(grp, Group)
        self.assertEquals(0, len(grp))

    def test_factory_produces_a_group2(self):
        grp = self.groups.factory({'member_group_id': 1024})
        self.assertIsInstance(grp, Group)
        self.assertEquals(1, len(grp))
        self.assertEquals(1024, grp['member_group_id'])

    def test_can_add_groups_to_a_member(self):
        mbr = Member(self.groups.member.account)

        with self.assertRaises(ex.NoMemberIdError):
            mbr.groups.save([mbr.groups.factory({'member_group_id': 1024})])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_add_groups_to_a_member2(self):
        MockAdapter.expected = []
        self.groups.save([])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_add_groups_to_a_member3(self):
        MockAdapter.expected = [300, 301]
        self.groups.save([
            self.groups.factory({'member_group_id': 300}),
            self.groups.factory({'member_group_id': 301})
        ])
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('PUT', '/members/1000/groups', {
                              'group_ids': [300, 301]
                          }))

    def test_can_add_groups_to_a_member4(self):
        MockAdapter.expected = [300, 301]
        self.groups.member.add_groups([300, 301])
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('PUT', '/members/1000/groups', {
                              'group_ids': [300, 301]
                          }))

    def test_can_drop_groups_from_a_member(self):
        mbr = Member(self.groups.member.account)

        with self.assertRaises(ex.NoMemberIdError):
            mbr.groups.delete([300, 301])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_drop_groups_from_a_member2(self):
        self.groups.delete()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('DELETE', '/members/1000/groups', {}))
        self.assertEquals(0, len(self.groups))

    def test_can_drop_groups_from_a_member3(self):
        MockAdapter.expected = [300, 301]
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.delete([300, 301])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('PUT', '/members/1000/groups/remove', {
                              'group_ids': [300, 301]
                          }))
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[302], Group)

    def test_can_drop_groups_from_a_member4(self):
        MockAdapter.expected = [300, 301]
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.member.drop_groups([300, 301])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('PUT', '/members/1000/groups/remove', {
                              'group_ids': [300, 301]
                          }))
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[302], Group)

    def test_can_drop_groups_from_a_member5(self):
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.delete()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('DELETE', '/members/1000/groups', {}))
        self.assertEquals(0, len(self.groups))

    def test_can_drop_groups_from_a_member6(self):
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.member.drop_groups()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('DELETE', '/members/1000/groups', {}))
        self.assertEquals(0, len(self.groups))

    def test_can_drop_a_single_group_with_del(self):
        # Setup
        MockAdapter.expected = True
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301})
        }

        del (self.groups[300])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(self.groups.member.account.adapter.call,
                          ('PUT', '/members/1000/groups/remove', {
                              'group_ids': [300]
                          }))
        self.assertEquals(1, len(self.groups))
        self.assertIn(301, self.groups)
Exemplo n.º 12
0
class MemberGroupCollectionTest(unittest.TestCase):
    def setUp(self):
        Account.default_adapter = MockAdapter
        self.groups =  Member(
            Account(account_id="100", public_key="xxx", private_key="yyy"),
            {
                'member_id':1000,
                'email':u"*****@*****.**",
                'status':u"opt-out"
            }
        ).groups

    def test_fetch_all_returns_a_dictionary(self):
        groups = MemberGroupCollection(Member(self.groups.member.account))
        with self.assertRaises(ex.NoMemberIdError):
            groups.fetch_all()
        self.assertEquals(groups.member.account.adapter.called, 0)

    def test_fetch_all_returns_a_dictionary2(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.assertIsInstance(self.groups.fetch_all(), dict)
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('GET', '/members/1000/groups', {}))

    def test_fetch_all_populates_collection(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.assertEquals(0, len(self.groups))
        self.groups.fetch_all()
        self.assertEquals(1, len(self.groups))

    def test_fetch_all_caches_results(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.groups.fetch_all()
        self.groups.fetch_all()
        self.assertEquals(self.groups.member.account.adapter.called, 1)

    def test_collection_can_be_accessed_like_a_dictionary(self):
        MockAdapter.expected = [{'member_group_id': 200}]
        self.groups.fetch_all()
        self.assertIsInstance(self.groups, MemberGroupCollection)
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[200], Group)

    def test_factory_produces_a_group(self):
        grp = self.groups.factory()
        self.assertIsInstance(grp, Group)
        self.assertEquals(0, len(grp))

    def test_factory_produces_a_group2(self):
        grp = self.groups.factory({'member_group_id':1024})
        self.assertIsInstance(grp, Group)
        self.assertEquals(1, len(grp))
        self.assertEquals(1024, grp['member_group_id'])

    def test_can_add_groups_to_a_member(self):
        mbr = Member(self.groups.member.account)

        with self.assertRaises(ex.NoMemberIdError):
            mbr.groups.save([
                mbr.groups.factory({'member_group_id':1024})
            ])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_add_groups_to_a_member2(self):
        MockAdapter.expected = []
        self.groups.save([])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_add_groups_to_a_member3(self):
        MockAdapter.expected = [300, 301]
        self.groups.save([
            self.groups.factory({'member_group_id': 300}),
            self.groups.factory({'member_group_id': 301})
        ])
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('PUT', '/members/1000/groups', {'group_ids': [300, 301]}))

    def test_can_add_groups_to_a_member4(self):
        MockAdapter.expected = [300, 301]
        self.groups.member.add_groups([300, 301])
        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('PUT', '/members/1000/groups', {'group_ids': [300, 301]}))

    def test_can_drop_groups_from_a_member(self):
        mbr = Member(self.groups.member.account)

        with self.assertRaises(ex.NoMemberIdError):
            mbr.groups.delete([300, 301])
        self.assertEquals(self.groups.member.account.adapter.called, 0)

    def test_can_drop_groups_from_a_member2(self):
        self.groups.delete()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('DELETE', '/members/1000/groups', {})
        )
        self.assertEquals(0, len(self.groups))

    def test_can_drop_groups_from_a_member3(self):
        MockAdapter.expected = [300, 301]
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.delete([300, 301])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            (
                'PUT',
                '/members/1000/groups/remove',
                {'group_ids': [300, 301]}))
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[302], Group)

    def test_can_drop_groups_from_a_member4(self):
        MockAdapter.expected = [300, 301]
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.member.drop_groups([300, 301])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            (
                'PUT',
                '/members/1000/groups/remove',
                {'group_ids': [300, 301]}))
        self.assertEquals(1, len(self.groups))
        self.assertIsInstance(self.groups[302], Group)

    def test_can_drop_groups_from_a_member5(self):
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.delete()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('DELETE', '/members/1000/groups', {})
        )
        self.assertEquals(0, len(self.groups))

    def test_can_drop_groups_from_a_member6(self):
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301}),
            302: self.groups.factory({'member_group_id': 302})
        }

        self.groups.member.drop_groups()

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            ('DELETE', '/members/1000/groups', {})
        )
        self.assertEquals(0, len(self.groups))

    def test_can_drop_a_single_group_with_del(self):
        # Setup
        MockAdapter.expected = True
        self.groups._dict = {
            300: self.groups.factory({'member_group_id': 300}),
            301: self.groups.factory({'member_group_id': 301})
        }

        del(self.groups[300])

        self.assertEquals(self.groups.member.account.adapter.called, 1)
        self.assertEquals(
            self.groups.member.account.adapter.call,
            (
                'PUT',
                '/members/1000/groups/remove',
                {'group_ids': [300]}))
        self.assertEquals(1, len(self.groups))
        self.assertIn(301, self.groups)