首页 > 解决方案 > Square 客户端 sdk 在使用 list_customers 时返回 KeyError:''

问题描述

我在下面有这个 get 函数,它可以提取 Square 帐户中关联的客户资料列表。

def get(self, request, format=None):
        result = customers_api.list_customers()
        if result.is_success():
            return Response(result.body)
        elif result.is_error():
            return Response(result.errors)

我也有一个简单的测试。

def test_square_customer_list_get(self):
        url = reverse('get_customers')
        response = self.client.get(url)

        assert response.status_code == 200

由于某种原因,它失败了,我似乎无法在我的代码中找到问题。根据终端的响应(附在下面),它指向 Square SDK 功能。

self = <core.tests.test_views.TestCoreViews testMethod=test_square_customer_list_get>

    def test_square_customer_list_get(self):
        url = reverse('get_customers')
>       response = self.client.get(url)

core/tests/test_views.py:280: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.venv/lib/python3.8/site-packages/rest_framework/test.py:286: in get
    response = super().get(path, data=data, **extra)
.venv/lib/python3.8/site-packages/rest_framework/test.py:203: in get
    return self.generic('GET', path, **r)
.venv/lib/python3.8/site-packages/rest_framework/test.py:231: in generic
    return super().generic(
.venv/lib/python3.8/site-packages/django/test/client.py:470: in generic
    return self.request(**r)
.venv/lib/python3.8/site-packages/rest_framework/test.py:283: in request
    return super().request(**kwargs)
.venv/lib/python3.8/site-packages/rest_framework/test.py:235: in request
    request = super().request(**kwargs)
.venv/lib/python3.8/site-packages/django/test/client.py:710: in request
    self.check_exception(response)
.venv/lib/python3.8/site-packages/django/test/client.py:571: in check_exception
    raise exc_value
.venv/lib/python3.8/site-packages/django/core/handlers/exception.py:47: in inner
    response = get_response(request)
.venv/lib/python3.8/site-packages/django/core/handlers/base.py:179: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
.venv/lib/python3.8/site-packages/sentry_sdk/integrations/django/views.py:67: in sentry_wrapped_callback
    return callback(request, *args, **kwargs)
.venv/lib/python3.8/site-packages/django/views/decorators/csrf.py:54: in wrapped_view
    return view_func(*args, **kwargs)
.venv/lib/python3.8/site-packages/django/views/generic/base.py:70: in view
    return self.dispatch(request, *args, **kwargs)
.venv/lib/python3.8/site-packages/rest_framework/views.py:505: in dispatch
    response = self.handle_exception(exc)
.venv/lib/python3.8/site-packages/rest_framework/views.py:465: in handle_exception
    self.raise_uncaught_exception(exc)
.venv/lib/python3.8/site-packages/rest_framework/views.py:476: in raise_uncaught_exception
    raise exc
.venv/lib/python3.8/site-packages/rest_framework/views.py:502: in dispatch
    response = handler(request, *args, **kwargs)
core/views.py:705: in get
    result = customers_api.list_customers()
.venv/lib/python3.8/site-packages/square/api/customers_api.py:56: in list_customers
    _query_builder = self.config.get_base_uri()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <square.configuration.Configuration object at 0x7fca5e471c10>
server = 'default'

    def get_base_uri(self, server='default'):
        """Generates the appropriate base URI for the environment and the
        server.
    
        Args:
            server (Configuration.Server): The server enum for which the base
            URI is required.
    
        Returns:
            String: The base URI.
    
        """
>       return self.environments[self.environment][server]
E       KeyError: ''

.venv/lib/python3.8/site-packages/square/configuration.py:117: KeyError

标签: pythonpython-3.xdjangopytestsquare

解决方案


推荐阅读