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)
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() )
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())
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)
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)
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)
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() )
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)
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())