Неудачное тестирование django djoser

это моя первая проблема, столкнулся с тем, что при написании тестов к своему API, не могу найти способов, как сделать так,чтобы в тесте авторизовать пользователя и использовать access token для дальнейшего тестирования. Мой сервис принимает по POST запросу user_id и список url адресов и заносит их в базу данных, а по GET запросу, он возвращает список определенного user_id во врменных промежутках start, end. Моя модель БД:

class UserDomainsHistory(models.Model):
user_id = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_links')
domain = models.CharField(max_length=100)

created_at = models.BigIntegerField(default=0)
updated_at = models.BigIntegerField(default=0)

class Meta:
    db_table = 'user_domains_history'
    indexes = [
        models.Index(fields=['user_id', 'created_at',]),
        models.Index(fields=['user_id', 'domain','created_at',]),
    ]
    unique_together = ('user_id', 'domain', 'created_at',)

def __str__(self):
    return f'{self.user_id}:{self.domain}'

мои попытки тестирования:

@pytest.mark.django_db
class TestLinksView:

def setup_method(self):
    self.client = APIClient()
    self.user = User.objects.create_user(username='testuser', password='testpass')
    self.client.force_authenticate(user=self.user)

def test_post_valid_domains(self):
    data = {
        "user_id": self.user.id,
        "visited_links": [
            "http://example1.com",
            "http://example2.com",
            "http://example1.com"
        ]
    }
    response = self.client.post('/visited_links', data, format='json')

    assert UserDomainsHistory.objects.count() == 2  # Проверим количество уникальных записей
    assert UserDomainsHistory.objects.filter(domain='example1.com').count() == 1
    assert UserDomainsHistory.objects.filter(domain='example2.com').count() == 1
Вернуться на верх