Почему APIClient возвращает пустые данные ответа Django RF - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь сделать несколько тестов для API, вот код:

tests.py

class APITest(APITestCase):

    def setUp(self):
        self.api_client = APIClient()

    def test_get_lists(self):
        response = self.api_client.get('/api/t/')
        print(response.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)


    def test_post_list(self):
        response = self.api_client.post('/api/t/',
                                data={'user':1, 'title':'AAA'})
        print(response.data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

viewset.py

class TableViewset(ModelViewSet):
    queryset = Table.objects.all()
    serializer_class = TableSerializer

сериализаторы.py

class TableSerializer(serializers.ModelSerializer):
    lists = ListSerializer(many=True, read_only=True, required=False)

    class Meta:
        model = Table
        fields = ('id', 'user', 'title', 'id', 'timestamp', 'lists')

    def create(self, validated_data):
        table = Table.objects.create(**validated_data)
        return table

    def update(self, instance, validated_data):
        instance.title = validated_data.get('title', instance.title)
        return instance

когда я хочу напечатать данные ответа в test.py, я получаю пустой массив и проверяю содержимое ответа ОК:

Response status_code=200, "application/json"

1 Ответ

0 голосов
/ 22 марта 2019

Хорошо, поэтому решение состояло в том, чтобы создать модель в тесте, потому что мы не можем использовать модели из базы данных при выполнении тестов

...