Неудачное тестирование 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