示例#1
0
 def test_create_ovo_payment_return_correct_keys(self, EWallet):
     ovo_payment = EWallet.create_ovo_payment(
         external_id=f"ovo-ewallet-testing-id-{int(time.time())}",
         amount="80001",
         phone="08123123123",
     )
     self.assert_returned_object_has_same_key_as_sample_response(
         ovo_payment, ovo_payment_response())
 def test_return_ovo_payment_on_correct_params_and_old_version(
         self, mocker, mock_correct_response, default_ovo_payment_data):
     (tested_class, class_name, method_name, http_method_name, url, params,
      expected_correct_result) = default_ovo_payment_data
     params[1]["x_api_version"] = "2019-02-04"
     expected_correct_result = ovo_payment_response("2019-02-04")
     default_ovo_payment_data = (tested_class, class_name, method_name,
                                 http_method_name, url, params,
                                 expected_correct_result)
     self.run_success_return_test_on_xendit_instance(
         mocker, mock_correct_response, default_ovo_payment_data)
 def default_ovo_payment_data(self):
     tested_class = EWallet
     class_name = "EWallet"
     method_name = "create_ovo_payment"
     http_method_name = "post"
     args = ()
     kwargs = {
         "external_id": "ovo-ewallet-testing-id-123321131114",
         "amount": "8888",
         "phone": "08123123123",
         "x_idempotency_key": "test-idemp_123",
     }
     params = (args, kwargs)
     url = "/ewallets"
     expected_correct_result = ovo_payment_response()
     return (tested_class, class_name, method_name, http_method_name, url,
             params, expected_correct_result)
示例#4
0
    def test_create_ovo_payment_return_correct_keys(self, ovo_payment_data):
        ovo_payment = ovo_payment_data

        self.assert_returned_object_has_same_key_as_sample_response(
            ovo_payment, ovo_payment_response())
class TestCreateOVOPayment(ModelBaseTest):
    @pytest.fixture
    def default_ovo_payment_data(self):
        tested_class = EWallet
        class_name = "EWallet"
        method_name = "create_ovo_payment"
        http_method_name = "post"
        args = ()
        kwargs = {
            "external_id": "ovo-ewallet-testing-id-123321131114",
            "amount": "8888",
            "phone": "08123123123",
            "x_idempotency_key": "test-idemp_123",
        }
        params = (args, kwargs)
        url = "/ewallets"
        expected_correct_result = ovo_payment_response()
        return (tested_class, class_name, method_name, http_method_name, url,
                params, expected_correct_result)

    @pytest.fixture
    def api_requestor_request_data(self, default_ovo_payment_data):
        tested_class, class_name, method_name, http_method_name, url, params, _ = default_ovo_payment_data
        headers = {"X-IDEMPOTENCY-KEY": "test-idemp_123"}
        body = {
            "external_id": "ovo-ewallet-testing-id-123321131114",
            "amount": "8888",
            "phone": "08123123123",
            "ewallet_type": "OVO",
        }
        return (tested_class, class_name, method_name, http_method_name, url,
                params, headers, body)

    @pytest.mark.parametrize("mock_correct_response", [ovo_payment_response()],
                             indirect=True)
    def test_return_ovo_payment_on_correct_params(self, mocker,
                                                  mock_correct_response,
                                                  default_ovo_payment_data):
        self.run_success_return_test_on_xendit_instance(
            mocker, mock_correct_response, default_ovo_payment_data)

    def test_raise_xendit_error_on_response_error(self, mocker,
                                                  mock_error_request_response,
                                                  default_ovo_payment_data):
        self.run_raises_error_test_on_xendit_instance(
            mocker, mock_error_request_response, default_ovo_payment_data)

    @pytest.mark.parametrize("mock_correct_response", [ovo_payment_response()],
                             indirect=True)
    def test_return_ovo_payment_on_correct_params_and_global_xendit(
            self, mocker, mock_correct_response, default_ovo_payment_data):
        self.run_success_return_test_on_global_config(
            mocker, mock_correct_response, default_ovo_payment_data)

    def test_raise_xendit_error_on_response_error_and_global_xendit(
            self, mocker, mock_error_request_response,
            default_ovo_payment_data):
        self.run_raises_error_test_on_global_config(
            mocker, mock_error_request_response, default_ovo_payment_data)

    @pytest.mark.parametrize("mock_correct_response", [ovo_payment_response()],
                             indirect=True)
    def test_send_correct_request_to_api_requestor(self, mocker,
                                                   mock_correct_response,
                                                   api_requestor_request_data):
        self.run_send_correct_request_to_api_requestor(
            mocker, mock_correct_response, api_requestor_request_data)

    @pytest.mark.oldversion
    @pytest.mark.parametrize("mock_correct_response",
                             [ovo_payment_response("2019-02-04")],
                             indirect=True)
    def test_return_ovo_payment_on_correct_params_and_old_version(
            self, mocker, mock_correct_response, default_ovo_payment_data):
        (tested_class, class_name, method_name, http_method_name, url, params,
         expected_correct_result) = default_ovo_payment_data
        params[1]["x_api_version"] = "2019-02-04"
        expected_correct_result = ovo_payment_response("2019-02-04")
        default_ovo_payment_data = (tested_class, class_name, method_name,
                                    http_method_name, url, params,
                                    expected_correct_result)
        self.run_success_return_test_on_xendit_instance(
            mocker, mock_correct_response, default_ovo_payment_data)