def test_can_delete_a_member(self): mbr = Member(self.member.account, {'email': u"*****@*****.**"}) with self.assertRaises(ex.NoMemberIdError): mbr.delete() self.assertEquals(self.member.account.adapter.called, 0) self.assertFalse(self.member.is_deleted())
def test_can_delete_a_member(self): mbr = Member(self.member.account, {'email':u"*****@*****.**"}) with self.assertRaises(ex.NoMemberIdError): mbr.delete() self.assertEquals(self.member.account.adapter.called, 0) self.assertFalse(self.member.is_deleted())
def test_can_delete_a_member3(self): MockAdapter.expected = True mbr = Member(self.member.account, { 'member_id': 200, 'email': u"*****@*****.**", 'deleted_at': None }) result = mbr.delete() self.assertIsNone(result) self.assertEquals(mbr.account.adapter.called, 1) self.assertEquals(mbr.account.adapter.call, ('DELETE', '/members/200', {})) self.assertTrue(mbr.is_deleted())
def test_can_delete_a_member2(self): MockAdapter.expected = None mbr = Member( self.member.account, { 'member_id': 200, 'email': u"*****@*****.**", 'deleted_at': datetime.now().strftime(SERIALIZED_DATETIME_FORMAT) }) result = mbr.delete() self.assertIsNone(result) self.assertEquals(mbr.account.adapter.called, 0) self.assertTrue(mbr.is_deleted())
def test_can_delete_a_member2(self): MockAdapter.expected = None mbr = Member( self.member.account, { 'member_id': 200, 'email':u"*****@*****.**", 'deleted_at': datetime.now().strftime(SERIALIZED_DATETIME_FORMAT) }) result = mbr.delete() self.assertIsNone(result) self.assertEquals(mbr.account.adapter.called, 0) self.assertTrue(mbr.is_deleted())
def test_can_delete_a_member3(self): MockAdapter.expected = True mbr = Member( self.member.account, { 'member_id': 200, 'email':u"*****@*****.**", 'deleted_at': None }) result = mbr.delete() self.assertIsNone(result) self.assertEquals(mbr.account.adapter.called, 1) self.assertEquals( mbr.account.adapter.call, ('DELETE', '/members/200', {})) self.assertTrue(mbr.is_deleted())
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)
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)