class ExpenseTestCase(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_expense_flow(self):
        receipt = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                               "receipt.jpg")
        expense = Expense()
        expense.setDescription("End2EndTest")
        expense.setCost('10')
        expense.setGroupId(19571167)
        expense.setSplitEqually()
        expense.setReceipt(receipt)
        # create expense
        expense, error = self.sObj.createExpense(expense)
        self.assertIsNone(error)
        self.assertIsNotNone(expense.getId())
        # delete expense
        success, error = self.sObj.deleteExpense(expense.getId())
        self.assertIsNone(error)
        self.assertTrue(success)

    def test_expense_invalidkeys_fail(self):
        sObj = Splitwise('consumerkey', 'consumersecret', {
            "oauth_token": "sdsd",
            "oauth_token_secret": "sdsdd"
        })
        expense = Expense()
        with self.assertRaises(SplitwiseUnauthorizedException):
            sObj.createExpense(expense)
Beispiel #2
0
class DeleteExpenseTestCase(unittest.TestCase):
    def setUp(self):
        self.sObj = Splitwise('consumerkey', 'consumersecret')

    def test_deleteExpense_success(self, mockMakeRequest):
        mockMakeRequest.return_value = '{"success":true}'  # noqa: E501
        success, errors = self.sObj.deleteExpense(19481273)
        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/delete_expense/19481273",
            "POST")
        self.assertTrue(success)
        self.assertIsNone(errors)

    def test_deleteExpense_error(self, mockMakeRequest):
        mockMakeRequest.return_value = '{"success":false, "errors": {"base": ["some error occured"]}}'  # noqa: E501
        success, errors = self.sObj.deleteExpense(19481273)
        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/delete_expense/19481273",
            "POST")
        self.assertFalse(success)
        self.assertIsNotNone(errors)

    def test_deleteExpense_notallowed_exception(self, mockMakeRequest):
        mockMakeRequest.side_effect = SplitwiseNotAllowedException("message")

        with self.assertRaises(SplitwiseNotAllowedException):
            self.sObj.deleteExpense(19481273)

        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/delete_expense/19481273",
            "POST")

    def test_deleteExpense_notfound_exception(self, mockMakeRequest):
        mockMakeRequest.side_effect = SplitwiseNotFoundException("message")

        with self.assertRaises(SplitwiseNotFoundException):
            self.sObj.deleteExpense(19481273)

        mockMakeRequest.assert_called_with(
            "https://secure.splitwise.com/api/v3.0/delete_expense/19481273",
            "POST")