Beispiel #1
0
 def test_group_invalidkeys_fail(self):
     sObj = Splitwise('consumerkey', 'consumersecret', {
         "oauth_token": "sdsd",
         "oauth_token_secret": "sdsdd"
     })
     group = Group()
     with self.assertRaises(SplitwiseUnauthorizedException):
         sObj.createGroup(group)
Beispiel #2
0
def createGroup(info,groupName):
    # info contains, list of lists which have name and email
    sObj = Splitwise(consumer_key, secret_key)
    sObj.setAccessToken(session['access_token'])
    group = Group()
    group.setName(groupName)
    users = []
    for data in info:
        newUser = createUser(data[0], data[1], data[2])
        users.append(newUser)
    group.setMembers(users)
    sObj.createGroup(group)
Beispiel #3
0
class GroupTestCase(unittest.TestCase):
    def setUp(self):
        consumer_key = os.environ['CONSUMER_KEY']
        consumer_secret = os.environ['CONSUMER_SECRET']
        oauth_token = os.environ['OAUTH_TOKEN']
        oauth_token_secret = os.environ['OAUTH_TOKEN_SECRET']

        self.sObj = Splitwise(consumer_key, consumer_secret)
        self.sObj.setAccessToken({
            'oauth_token': oauth_token,
            'oauth_token_secret': oauth_token_secret
        })

    def test_group_flow(self):
        group = Group()
        group.setName("Splitwise_test_case")
        # Create Group
        group, error = self.sObj.createGroup(group)
        self.assertIsNotNone(group.getId())
        # Delete Group
        self.sObj.deleteGroup(group.getId())

    def test_group_invalidkeys_fail(self):
        sObj = Splitwise('consumerkey', 'consumersecret', {
            "oauth_token": "sdsd",
            "oauth_token_secret": "sdsdd"
        })
        group = Group()
        with self.assertRaises(SplitwiseUnauthorizedException):
            sObj.createGroup(group)
Beispiel #4
0
class CreateGroupTestCase(unittest.TestCase):
    def setUp(self):
        self.sObj = Splitwise('consumerkey', 'consumersecret')

    def test_createGroup_success(self, mockMakeRequest):
        mockMakeRequest.return_value = '{"group":{"id":19481273,"name":"TestName","created_at":"2020-06-24T05:02:06Z","updated_at":"2020-06-24T05:02:06Z","members":[{"id":79774,"first_name":"Naman","last_name":"Aggarwal","picture":{"small":"https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/small_mypic.jpg","medium":"https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/medium_mypic.jpg","large":"https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/large_mypic.jpg"},"custom_picture":true,"email":"*****@*****.**","registration_status":"confirmed","balance":[]},{"id":784241,"first_name":"ruks","last_name":null,"picture":{"small":"https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-50px.png","medium":"https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-100px.png","large":"https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-200px.png"},"custom_picture":false,"email":"*****@*****.**","registration_status":"confirmed","balance":[]}],"simplify_by_default":false,"original_debts":[],"simplified_debts":[],"whiteboard":null,"group_type":"apartment","invite_link":"https://www.splitwise.com/join/1EUrTyyCHj7+1pjy","avatar":{"original":null,"xxlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-1000px.png","xlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-500px.png","large":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-200px.png","medium":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-100px.png","small":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-50px.png"},"custom_avatar":false,"cover_photo":{"xxlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-1000px.png","xlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-500px.png"}}}'  # noqa: E501
        group = Group()
        group.setName("TestName")
        group.setWhiteBoard("test Whiteboard")
        group.setType("apartment")
        user = FriendGroup()
        user.setId(784241)
        group.addMember(user)
        user2 = FriendGroup()
        user2.setId(123)
        group.addMember(user2)
        groupRes, error = self.sObj.createGroup(group)
        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/create_group", "POST", {
                "users__0__user_id": 784241,
                "users__1__user_id": 123,
                "name": "TestName",
                "whiteboard": "test Whiteboard",
                "group_type": "apartment"
            })
        self.assertIsNone(error)
        self.assertEqual(groupRes.getId(), 19481273)
        self.assertEqual(groupRes.getName(), "TestName")
        self.assertEqual(groupRes.getCreatedAt(), "2020-06-24T05:02:06Z")
        self.assertEqual(groupRes.getUpdatedAt(), "2020-06-24T05:02:06Z")
        self.assertEqual(len(groupRes.getMembers()), 2)
        self.assertEqual(groupRes.getMembers()[0].getId(), 79774)
        self.assertEqual(groupRes.getMembers()[0].getFirstName(), "Naman")
        self.assertEqual(groupRes.getMembers()[0].getLastName(), "Aggarwal")
        self.assertEqual(
            groupRes.getMembers()[0].getPicture().getSmall(),
            "https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/small_mypic.jpg"
        )
        self.assertEqual(
            groupRes.getMembers()[0].getPicture().getMedium(),
            "https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/medium_mypic.jpg"
        )
        self.assertEqual(
            groupRes.getMembers()[0].getPicture().getLarge(),
            "https://splitwise.s3.amazonaws.com/uploads/user/avatar/79774/large_mypic.jpg"
        )
        self.assertEqual(groupRes.getMembers()[0].getEmail(),
                         "*****@*****.**")
        self.assertEqual(groupRes.getMembers()[0].getRegistrationStatus(),
                         "confirmed")
        self.assertEqual(len(groupRes.getMembers()[0].getBalances()), 0)
        self.assertEqual(groupRes.getMembers()[1].getId(), 784241)
        self.assertEqual(groupRes.getMembers()[1].getFirstName(), "ruks")
        self.assertEqual(groupRes.getMembers()[1].getLastName(), None)
        self.assertEqual(
            groupRes.getMembers()[1].getPicture().getSmall(),
            "https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-50px.png"
        )
        self.assertEqual(
            groupRes.getMembers()[1].getPicture().getMedium(),
            "https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-100px.png"
        )
        self.assertEqual(
            groupRes.getMembers()[1].getPicture().getLarge(),
            "https://s3.amazonaws.com/splitwise/uploads/user/default_avatars/avatar-ruby47-200px.png"
        )
        self.assertEqual(groupRes.getMembers()[1].getEmail(),
                         "*****@*****.**")
        self.assertEqual(groupRes.getMembers()[1].getRegistrationStatus(),
                         "confirmed")
        self.assertEqual(len(groupRes.getMembers()[1].getBalances()), 0)
        self.assertEqual(len(groupRes.getOriginalDebts()), 0)
        self.assertEqual(len(groupRes.getSimplifiedDebts()), 0)
        self.assertEqual(groupRes.getWhiteBoard(), None)
        self.assertEqual(groupRes.getType(), "apartment")
        self.assertEqual(groupRes.getInviteLink(),
                         "https://www.splitwise.com/join/1EUrTyyCHj7+1pjy")
        # self.assertEqual(groupRes.getAvatar().getOriginal(), None)
        # self.assertEqual(groupRes.getAvatar().getXxlarge(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-1000px.png")
        # self.assertEqual(groupRes.getAvatar().getXlarge(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-500px.png")
        # self.assertEqual(groupRes.getAvatar().getLarge(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-200px.png")
        # self.assertEqual(groupRes.getAvatar().getMedium(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-100px.png")
        # self.assertEqual(groupRes.getAvatar().getSmall(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-ruby9-house-50px.png")
        # self.assertEqual(groupRes.getCoverPhoto().getXxlarge(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-1000px.png")
        # self.assertEqual(groupRes.getCoverPhoto().getXlarge(),
        # "https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-ruby-500px.png")

    def test_createGroup_error(self, mockMakeRequest):
        mockMakeRequest.return_value = '{"group":{"id":null,"name":null,"created_at":null,"updated_at":null,"members":[],"simplify_by_default":false,"original_debts":[],"simplified_debts":[],"whiteboard":null,"group_type":"apartment","invite_link":"https://www.splitwise.com/join/vmz4CdiY3LM+1pjy","errors":{"name":["can\'t be blank"]},"avatar":{"original":null,"xxlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-teal1-house-1000px.png","xlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-teal1-house-500px.png","large":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-teal1-house-200px.png","medium":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-teal1-house-100px.png","small":"https://s3.amazonaws.com/splitwise/uploads/group/default_avatars/avatar-teal1-house-50px.png"},"custom_avatar":false,"cover_photo":{"xxlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-teal-1000px.png","xlarge":"https://s3.amazonaws.com/splitwise/uploads/group/default_cover_photos/coverphoto-teal-500px.png"}}}'  # noqa: E501
        group = Group()
        user = FriendGroup()
        user.setId(784241)
        group.addMember(user)
        groupRes, error = self.sObj.createGroup(group)
        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/create_group", "POST",
            {"users__0__user_id": 784241})
        self.assertEqual(error.getErrors(), {"name": ["can\'t be blank"]})

    def test_createGroup_exception(self, mockMakeRequest):
        mockMakeRequest.side_effect = Exception(
            "Invalid response %s. Please check your consumer key and secret." %
            404)
        group = Group()
        user = FriendGroup()
        user.setId(784241)
        group.addMember(user)
        with self.assertRaises(Exception):
            self.sObj.createGroup(group)
        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/create_group", "POST",
            {"users__0__user_id": 784241})