コード例 #1
0
class TestGetVirtualAccount(ModelBaseTest):
    @pytest.fixture
    def default_virtual_account_data(self):
        tested_class = VirtualAccount
        class_name = "VirtualAccount"
        method_name = "get"
        http_method_name = "get"
        args = ()
        kwargs = {"id": "5eec3a3e8dd9ea2fc97d6728"}
        params = (args, kwargs)
        url = f"/callback_virtual_accounts/{kwargs['id']}"
        expected_correct_result = virtual_account_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_virtual_account_data):
        tested_class, class_name, method_name, http_method_name, url, params, _ = default_virtual_account_data
        headers = {}
        body = {}
        return (tested_class, class_name, method_name, http_method_name, url,
                params, headers, body)

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_response()],
                             indirect=True)
    def test_return_virtual_account_on_correct_params(
            self, mocker, mock_correct_response, default_virtual_account_data):
        self.run_success_return_test_on_xendit_instance(
            mocker, mock_correct_response, default_virtual_account_data)

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

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_response()],
                             indirect=True)
    def test_return_virtual_account_on_correct_params_and_global_xendit(
            self, mocker, mock_correct_response, default_virtual_account_data):
        self.run_success_return_test_on_global_config(
            mocker, mock_correct_response, default_virtual_account_data)

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

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_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)
コード例 #2
0
 def test_update_virtual_account_return_correct_keys(self, VirtualAccount):
     virtual_account = VirtualAccount.update(
         id="5f224d510af2e9385877bfbc", expected_amount=20000,
     )
     self.assert_returned_object_has_same_key_as_sample_response(
         virtual_account, virtual_account_response()
     )
コード例 #3
0
    def test_get_virtual_account_return_correct_keys(self, VirtualAccount,
                                                     virtual_account_data):
        virtual_account = virtual_account_data

        virtual_account = VirtualAccount.get(id=virtual_account.id)
        self.assert_returned_object_has_same_key_as_sample_response(
            virtual_account, virtual_account_response())
コード例 #4
0
 def default_virtual_account_data(self):
     tested_class = VirtualAccount
     class_name = "VirtualAccount"
     method_name = "get"
     http_method_name = "get"
     args = ()
     kwargs = {"id": "5eec3a3e8dd9ea2fc97d6728"}
     params = (args, kwargs)
     url = f"/callback_virtual_accounts/{kwargs['id']}"
     expected_correct_result = virtual_account_response()
     return (tested_class, class_name, method_name, http_method_name, url,
             params, expected_correct_result)
コード例 #5
0
 def default_virtual_account_data(self):
     tested_class = VirtualAccount
     class_name = "VirtualAccount"
     method_name = "update"
     http_method_name = "patch"
     args = ()
     kwargs = {
         "id": "5eec3a3e8dd9ea2fc97d6728",
         "x_idempotency_key": "test-idemp_123",
     }
     params = (args, kwargs)
     url = f"/callback_virtual_accounts/{kwargs['id']}"
     expected_correct_result = virtual_account_response()
     return (tested_class, class_name, method_name, http_method_name, url,
             params, expected_correct_result)
コード例 #6
0
 def default_virtual_account_data(self):
     tested_class = VirtualAccount
     class_name = "VirtualAccount"
     method_name = "create"
     http_method_name = "post"
     args = ()
     kwargs = {
         "external_id": "demo_1475459775872",
         "bank_code": "BNI",
         "name": "Rika Sutanto",
         "x_idempotency_key": "test-idemp_123"
     }
     params = (args, kwargs)
     url = "/callback_virtual_accounts"
     expected_correct_result = virtual_account_response()
     return (tested_class, class_name, method_name, http_method_name, url,
             params, expected_correct_result)
コード例 #7
0
 def test_create_virtual_account_return_correct_keys(self, virtual_account_data):
     virtual_account = virtual_account_data
     self.assert_returned_object_has_same_key_as_sample_response(
         virtual_account, virtual_account_response()
     )
コード例 #8
0
class TestCreateVirtualAccount(ModelBaseTest):
    @pytest.fixture
    def default_virtual_account_data(self):
        tested_class = VirtualAccount
        class_name = "VirtualAccount"
        method_name = "create"
        http_method_name = "post"
        args = ()
        kwargs = {
            "external_id": "demo_1475459775872",
            "bank_code": "BNI",
            "name": "Rika Sutanto",
            "x_idempotency_key": "test-idemp_123"
        }
        params = (args, kwargs)
        url = "/callback_virtual_accounts"
        expected_correct_result = virtual_account_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_virtual_account_data):
        tested_class, class_name, method_name, http_method_name, url, params, _ = default_virtual_account_data
        headers = {'X-IDEMPOTENCY-KEY': 'test-idemp_123'}
        body = {
            'bank_code': 'BNI',
            'external_id': 'demo_1475459775872',
            'name': 'Rika Sutanto'
        }
        return (tested_class, class_name, method_name, http_method_name, url,
                params, headers, body)

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_response()],
                             indirect=True)
    def test_return_virtual_account_on_correct_params(
            self, mocker, mock_correct_response, default_virtual_account_data):
        self.run_success_return_test_on_xendit_instance(
            mocker, mock_correct_response, default_virtual_account_data)

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

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_response()],
                             indirect=True)
    def test_return_virtual_account_on_correct_params_and_global_xendit(
            self, mocker, mock_correct_response, default_virtual_account_data):
        self.run_success_return_test_on_global_config(
            mocker, mock_correct_response, default_virtual_account_data)

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

    @pytest.mark.parametrize("mock_correct_response",
                             [virtual_account_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)
コード例 #9
0
 def test_update_virtual_account_return_correct_keys(self, VirtualAccount):
     virtual_account = VirtualAccount.update(id="602bafe23ef3e5403c720cf9",
                                             expected_amount=20000)
     self.assert_returned_object_has_same_key_as_sample_response(
         virtual_account, virtual_account_response())