Example #1
0
    def setUp(self):
        super().setUp()

        self.client = DTOneClient("mrrapid", "234325")
Example #2
0
class DTOneClientTest(TembaTest):
    def setUp(self):
        super().setUp()

        self.client = DTOneClient("mrrapid", "234325")

    @patch("temba.airtime.dtone.DTOneClient._request_key")
    @patch("requests.post")
    def test_ping(self, mock_post, mock_request_key):
        mock_request_key.return_value = "123456"
        mock_post.return_value = MockResponse(
            200,
            "info_txt=pong\r\n"
            "authentication_key=123456\r\n"
            "error_code=0\r\n"
            "error_txt=Transaction successful\r\n",
        )

        response = self.client.ping()

        self.assertEqual(
            {
                "authentication_key": "123456",
                "error_code": "0",
                "error_txt": "Transaction successful",
                "info_txt": "pong",
            },
            response,
        )
        mock_post.assert_called_once_with(
            "https://airtime-api.dtone.com/cgi-bin/shop/topup",
            {"login": "******", "key": "123456", "md5": "4ff2ddfae96f8d902eb7d5b2c7b490c9", "action": "ping"},
        )

    @patch("temba.airtime.dtone.DTOneClient._request_key")
    @patch("requests.post")
    def test_check_wallet(self, mock_post, mock_request_key):
        mock_request_key.return_value = "123456"
        mock_post.return_value = MockResponse(
            200,
            "type=Master\r\n"
            "authentication_key=123456\r\n"
            "error_code=0\r\n"
            "error_txt=Transaction successful\r\n"
            "balance=15000\r\n"
            "currency=RWF\r\n",
        )

        response = self.client.check_wallet()

        self.assertEqual(
            {
                "type": "Master",
                "authentication_key": "123456",
                "error_code": "0",
                "error_txt": "Transaction successful",
                "balance": "15000",
                "currency": "RWF",
            },
            response,
        )
        mock_post.assert_called_once_with(
            "https://airtime-api.dtone.com/cgi-bin/shop/topup",
            {"login": "******", "key": "123456", "md5": "4ff2ddfae96f8d902eb7d5b2c7b490c9", "action": "check_wallet"},
        )