Esempio n. 1
0
 def test_handle_error(self, mock):
     self.Response = namedtuple('Response', 'status_code')
     response = self.Response(status_code=400)
     content = json.dumps(
         dict(title='rave api', body='sdk for rave', userId=1))
     status_code = 400
     Api.handle_response(response, content)
     self.assertEqual(response.status_code, 400)
Esempio n. 2
0
 def test_ravepay_config(self):
     self.api_dev = Api(public_key='dummy',
                        secret_key='dummy',
                        production=False)
     self.api_live = Api(public_key='dummy',
                         secret_key='dummy',
                         production=True)
     self.assertEqual(self.api_dev.url,
                      'https://ravesandboxapi.flutterwave.com')
     self.assertEqual(self.api_live.url, 'https://api.ravepay.co')
     self.assertEqual(self.api_dev.secret_key, 'dummy')
     self.assertEqual(self.api_dev.public_key, 'dummy')
Esempio n. 3
0
 def setUp(self):
     self.api = Api(secret_key=os.environ.get('secret_key'),
                    public_key='dummy',
                    production=False)
     self.payload = dict(id=70, name='johnbosco ohia')
     self.params = dict(id=70)
     self.sub_id = 20
Esempio n. 4
0
 def setUp(self):
     self.api = Api(secret_key=os.environ.get('secret_key'),
                    public_key='dummy',
                    production=False)
     self.payload = dict(error=False,
                         cardno='34343',
                         cvv='232',
                         email='*****@*****.**')
     self.card_path = '/flwv3-pug/getpaidx/api/validatecharge'
     self.account_path = '/flwv3-pug/getpaidx/api/validate'
Esempio n. 5
0
    def setUp(self):
        self.api = Api(secret_key=os.environ.get('secret_key'),
                       public_key=os.environ.get('public_key'),
                       production=False)
        self.new_api = Api()
        self.account_attributes = {
            "accountnumber": "0690000031",
            "accountbank": "044",
            "currency": "NGN",
            "country": "NG",
            "amount": "10",
            "email": "*****@*****.**",
            "phonenumber": "07088691390",
            "firstname": "johnb",
            "lastname": "chuks",
            "IP": "355426087298442",
            "txRef": "",
            "device_fingerprint": "69e6b7f0b72037aa8428b70fbe03986c"
        }

        self.gh_money_payload = {
            "cardno": "5438898014560229",
            "cvv": "789",
            "is_mobile_money_gh": "1",
            "payment-type": "mobilemoneygh",
            "expirymonth": "07",
            "expiryyear": "18",
            "currency": "NGN",
            "pin": "7552",
            "country": "GH",
            "amount": "10",
            "email": "*****@*****.**",
            "phonenumber": "1234555",
            "suggested_auth": "PIN",
            "firstname": "user1",
            "lastname": "user2",
            "IP": "355426087298442",
            "txRef": "MC-7663-YU",
            "device_fingerprint": "69e6b7f0b72037aa8428b70fbe03986c"
        }

        self.api.request = Mock()
Esempio n. 6
0
 def setUp(self):
     self.new_api = Api(secret_key=os.environ.get('secret_key'),
                        public_key='dummy',
                        production=False)
     self.path = '/flwv3-pug/getpaidx/api/charge'
     self.card_payload = dict(error=False,
                              cardno='34343',
                              cvv='232',
                              email='*****@*****.**')
     self.bank_payload = dict(error=False,
                              accountnumber='34343',
                              accountbank='232')
     self.mpesa_payload = {'payment-type': 'mpesa', 'is_mpesa': 1}
     self.gh_mobile_payload = {
         'payment-type': 'mobilemoneygh',
         'is_mobile_money_gh': 1
     }
     self.ussd_payload = {'payment_type': 'ussd', 'is_ussd': 1}
Esempio n. 7
0
 def setUp(self):
     self.api = Api(secret_key=os.environ.get('secret_key'),
                    public_key='dummy',
                    production=False)
Esempio n. 8
0
 def setUp(self):
     self.new_api = Api(secret_key='dummy',
                        public_key='dummy',
                        production=False)
     self.payload = dict(error=False, Payment=1200, id=2)
Esempio n. 9
0
class ApiTest(unittest.TestCase):
    def setUp(self):
        self.api = Api(secret_key=os.environ.get('secret_key'),
                       public_key=os.environ.get('public_key'),
                       production=False)
        self.new_api = Api()
        self.account_attributes = {
            "accountnumber": "0690000031",
            "accountbank": "044",
            "currency": "NGN",
            "country": "NG",
            "amount": "10",
            "email": "*****@*****.**",
            "phonenumber": "07088691390",
            "firstname": "johnb",
            "lastname": "chuks",
            "IP": "355426087298442",
            "txRef": "",
            "device_fingerprint": "69e6b7f0b72037aa8428b70fbe03986c"
        }

        self.gh_money_payload = {
            "cardno": "5438898014560229",
            "cvv": "789",
            "is_mobile_money_gh": "1",
            "payment-type": "mobilemoneygh",
            "expirymonth": "07",
            "expiryyear": "18",
            "currency": "NGN",
            "pin": "7552",
            "country": "GH",
            "amount": "10",
            "email": "*****@*****.**",
            "phonenumber": "1234555",
            "suggested_auth": "PIN",
            "firstname": "user1",
            "lastname": "user2",
            "IP": "355426087298442",
            "txRef": "MC-7663-YU",
            "device_fingerprint": "69e6b7f0b72037aa8428b70fbe03986c"
        }

        self.api.request = Mock()

    def test_ravepay_config(self):
        self.api_dev = Api(public_key='dummy',
                           secret_key='dummy',
                           production=False)
        self.api_live = Api(public_key='dummy',
                            secret_key='dummy',
                            production=True)
        self.assertEqual(self.api_dev.url,
                         'https://ravesandboxapi.flutterwave.com')
        self.assertEqual(self.api_live.url, 'https://api.ravepay.co')
        self.assertEqual(self.api_dev.secret_key, 'dummy')
        self.assertEqual(self.api_dev.public_key, 'dummy')

    def test_get(self):
        params_test = dict(SECKEY=os.environ.get('secret_key'))
        endpoint = '/merchant/subscriptions/list'

        self.api.get(endpoint, params_test)
        self.api.request.assert_called_once_with(
            'GET',
            'https://ravesandboxapi.flutterwave.com/merchant/subscriptions/list',
            params=params_test,
            payload=None)

    def test_get_without_params(self):
        endpoint = '/merchant/subscriptions/list'
        self.api.get(endpoint)
        self.api.request.assert_called_once_with(
            'GET',
            'https://ravesandboxapi.flutterwave.com/merchant/subscriptions/list',
            params=None,
            payload=None)

    def test_post(self):
        endpoint = '/flwv3-pug/getpaidx/api/verify'
        payload = {
            'name': 'johnbosco',
            'occupation': 'we there',
            'SECKEY': os.environ.get('SECKEY')
        }

        self.api.post(endpoint, payload)
        self.api.request.assert_called_once_with(
            'POST',
            'https://ravesandboxapi.flutterwave.com/flwv3-pug/getpaidx/api/verify',
            payload=payload)

    def test_put(self):
        endpoint = '/flwv3-pug/getpaidx/api/verify'
        params = dict(SECKEY=os.environ.get('secret_key'))
        self.api.put(endpoint,
                     payload=self.account_attributes,
                     query_string=params)

        self.api.request.assert_called_once_with(
            'PUT',
            'https://ravesandboxapi.flutterwave.com/flwv3-pug/getpaidx/api/verify',
            params=params,
            payload=self.account_attributes,
        )

    def test_bad_request(self):
        self.api.request.return_value = {
            "status": "error",
            "message": "USSD charges can only be done in Ghana Cedis",
            "data": {
                "code": "ERR",
                "message": "USSD charges can only be done in Ghana Cedis"
            }
        }
        gh_money_charge = self.api.post('/flwv3-pug/getpaidx/api/charge',
                                        self.gh_money_payload)
        self.api.request.assert_called_once_with(
            'POST',
            "https://ravesandboxapi.flutterwave.com/flwv3-pug/getpaidx/api/charge",
            payload=self.gh_money_payload)
        self.assertEqual(gh_money_charge.get('status'), 'error')

    @patch('ravepaypysdk.api.requests.get')
    def test_request_get(self, mock):
        mock.return_value.status_code = 200
        mock.return_value.text = dict(error=False,
                                      cardno='34343',
                                      cvv='232',
                                      email='*****@*****.**')
        path = 'http://jsonplaceholder.typicode.com/posts'
        params = dict(userId=1)
        response = self.new_api.request('GET', path, params=params)
        self.assertEqual(response['status_code'], 200)

    @patch('ravepaypysdk.api.requests.post')
    def test_request_post(self, mock):
        mock.return_value.status_code = 201
        payload = json.dumps(
            dict(title='rave api', body='sdk for rave', userId=1))
        path = 'http://jsonplaceholder.typicode.com/posts'

        response = self.new_api.request('POST', path, payload=payload)

        self.assertEqual(response['status_code'], 201)

    @patch('ravepaypysdk.api.requests.get')
    def test_request_get_without_params(self, mock):
        mock.return_value.status_code = 200
        path = 'http://jsonplaceholder.typicode.com/posts'

        response = self.new_api.request('GET', path)

        self.assertEqual(response['status_code'], 200)

    @patch('ravepaypysdk.api_exceptions.ApiError')
    def test_handle_error(self, mock):
        self.Response = namedtuple('Response', 'status_code')
        response = self.Response(status_code=400)
        content = json.dumps(
            dict(title='rave api', body='sdk for rave', userId=1))
        status_code = 400
        Api.handle_response(response, content)
        self.assertEqual(response.status_code, 400)

    def test_repr(self):
        self.assertEqual(repr(self.api), '**RavePayPYSDK**')
Esempio n. 10
0
 def setUp(self):
     self.api = Api(secret_key='dummy',
                    public_key='dummy',
                    production=False)
     self.endpoint = '/'
     self.payload = dict(name='Ravepay')