Exemple #1
0
    def setUp(self):
        super(JoinGroupCmdTest, self).setUp()
        self.sms_fields = ['#create', 'group_name', 'group_code', '*****@*****.**']
        self.from_number = '0123456789'

        self.group_creator = create_test_user('*****@*****.**', phone_number='8888888888')
        self.group = create_test_group(self.group_creator.email, self.sms_fields[1], self.sms_fields[2])

        self.cmd = JoinGroupCmd(self.sms_fields[0])
Exemple #2
0
class JoinGroupCmdTest(NoMMTestCase):
    def setUp(self):
        super(JoinGroupCmdTest, self).setUp()
        self.sms_fields = ['#create', 'group_name', 'group_code', '*****@*****.**']
        self.from_number = '0123456789'

        self.group_creator = create_test_user('*****@*****.**', phone_number='8888888888')
        self.group = create_test_group(self.group_creator.email, self.sms_fields[1], self.sms_fields[2])

        self.cmd = JoinGroupCmd(self.sms_fields[0])

    def test_valid_join_group_cmd(self):
        response = str(self.cmd.execute(self.sms_fields, self.from_number))
        self.assertTrue(response.find('Success') != -1, 'Success response not returned')

        user = CustomUser.objects.get(email=self.sms_fields[3])
        email_objs = self.group.emails.all()

        # test that the group has 2 emails: the creator's and the new joiner's
        self.assertTrue(len(email_objs) == 2, 'Group has incorrect number of emails')
        self.assertTrue((email_objs[0].email == user.email) or
                (email_objs[1].email == user.email), \
                        "Group doesn't have newly joined member's email")
        self.assertTrue((email_objs[0].email == self.group_creator.email) or
                (email_objs[1].email == self.group_creator.email), \
                        "Group doesn't have original creator's email")

        # test that the user has the proper number of memberships
        memberships = user.get_memberships()
        self.assertTrue(len(memberships) == 1, 'User has incorrect number of memberships')
        self.assertTrue(memberships[0].name == self.group.name, "User's group is incorrect")

    def test_group_does_not_exist(self):
        self.sms_fields[1] = 'doesnt_exist'
        response = str(self.cmd.execute(self.sms_fields, self.from_number))
        self.assertTrue((response.find('group') != -1) and (response.find('does not exist') != -1),
                'Group-does-not-exist response not returned')

        user = CustomUser.objects.get(email=self.sms_fields[3])
        email_objs = self.group.emails.all()

        # ensure the group has 1 email: the creator's
        self.assertTrue(len(email_objs) == 1, 'Group has incorrect number of emails')
        self.assertTrue(email_objs[0].email == self.group_creator.email,
                "Group doesn't have original creator's email")

        # ensure the user isn't in the group
        self.assertTrue(len(user.get_memberships()) == 0, 'User has incorrect number of memberships')

    def test_group_code_incorrect(self):
        self.sms_fields[2] = 'incorrect_code'
        response = str(self.cmd.execute(self.sms_fields, self.from_number))
        self.assertTrue((response.find('code') != -1) and (response.find('not correct') != -1),
                'Incorrect-code response not returned')

        user = CustomUser.objects.get(email=self.sms_fields[3])
        email_objs = self.group.emails.all()

        # ensure the group has 1 email: the creator's
        self.assertTrue(len(email_objs) == 1, 'Group has incorrect number of emails')
        self.assertTrue(email_objs[0].email == self.group_creator.email,
                "Group doesn't have original creator's email")

        # ensure the user isn't in the group
        self.assertTrue(len(user.get_memberships()) == 0, 'User has incorrect number of memberships')

    def test_already_a_member(self):
        self.cmd.execute(self.sms_fields, self.from_number)
        response = str(self.cmd.execute(self.sms_fields, self.from_number))
        # we no longer complain if a user tries to join a group he's already joined
        self.assertTrue(response.find('Success') != -1,
                'Returned failure when user joined group where he was already a member.')

        user = CustomUser.objects.get(email=self.sms_fields[3])
        email_objs = self.group.emails.all()

        # test that the group has exactly 2 emails: the creator's and the new joiner's
        self.assertTrue(len(email_objs) == 2, 'Group has incorrect number of emails')
        self.assertTrue((email_objs[0].email == user.email) or
                (email_objs[1].email == user.email), \
                        "Group doesn't have newly joined member's email")
        self.assertTrue((email_objs[0].email == self.group_creator.email) or
                (email_objs[1].email == self.group_creator.email), \
                        "Group doesn't have original creator's email")

        # test that the user has the proper number of memberships
        memberships = user.get_memberships()
        self.assertTrue(len(memberships) == 1, 'User has incorrect number of memberships')
        self.assertTrue(memberships[0].name == self.group.name, "User's group is incorrect")