具有特定IP的Django REST客户端测试

2024-05-23 19:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

Django REST docsMETA读取地址。 所以我必须创建存储其ip地址/子网的Whitelist模型。没什么大不了的,我的数据库中已经有了所有302子网。在

from rest_framework import permissions

class BlacklistPermission(permissions.BasePermission):
    """
    Global permission check for blacklisted IPs.
    """

    def has_permission(self, request, view):
        ip_addr = request.META['REMOTE_ADDR']
        blacklisted = Blacklist.objects.filter(ip_addr=ip_addr).exists()
        return not blacklisted

问题:
我想从其他ip地址测试白名单,而不是127.0.0.1
如何在pytest中做到这一点?在


Tags: django模型iprest数据库permissionsdocsrequest
2条回答

感谢@rpkilby
https://github.com/encode/django-rest-framework/issues/5775#issuecomment-360734150

因为APICLient从同一个源继承。设置头部非常笔直。在

client = APIClient(REMOTE_ADDR='x.x.x.x')

编写一个集成测试:使用requests或等效的库来调用API。在

如果计划测试一次,只需将应用程序部署到另一个主机上并运行测试。在

如果需要自动化测试,请考虑使用CI/CD管道。把你的API放在一个容器里,把测试代码放到另一个容器里,然后在需要的时候触发这些测试。在

相关问题 更多 >