This commit is contained in:
2025-11-26 14:01:54 +05:00
parent f04130d769
commit a08c6ad800
5 changed files with 69 additions and 7 deletions

View File

@@ -2,12 +2,16 @@ from django.db import models
from django_core.models.base import AbstractBaseModel from django_core.models.base import AbstractBaseModel
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from model_bakery import baker
class SearchHistory(AbstractBaseModel): class SearchHistory(AbstractBaseModel):
value = models.CharField(verbose_name=_('Search History'), max_length=255) value = models.CharField(verbose_name=_('Search History'), max_length=255)
user = models.ForeignKey(get_user_model(), verbose_name=_('User'), on_delete=models.CASCADE) user = models.ForeignKey(get_user_model(), verbose_name=_('User'), on_delete=models.CASCADE)
@classmethod
def _baker(cls):
return baker.make(cls)
def __str__(self): def __str__(self):
return str(self.pk) return str(self.pk)

View File

@@ -1,2 +1,3 @@
from .category import * # noqa from .category import * # noqa
from .ad import * # noqa from .ad import * # noqa
from .search import * # noqa

View File

@@ -25,9 +25,9 @@ def data(api_client):
"list": reverse("category-list"), "list": reverse("category-list"),
"retrieve": reverse("category-detail", kwargs={"pk": instance.pk}), "retrieve": reverse("category-detail", kwargs={"pk": instance.pk}),
"retrieve-not-found": reverse("category-detail", kwargs={"pk": 1000}), "retrieve-not-found": reverse("category-detail", kwargs={"pk": 1000}),
"list-home-ad": reverse("category-home-list"), "list-category-home": reverse("category-home-list"),
"retrieve-home-ad": reverse("category-home-detail", kwargs={"pk": instance.pk}), "retrieve-category-home": reverse("category-home-detail", kwargs={"pk": instance.pk}),
"retrieve-home-ad-not-found": reverse("category-home-detail", kwargs={"pk": 1000}), "retrieve-category-home-not-found": reverse("category-home-detail", kwargs={"pk": 1000}),
}, },
client, client,
instance, instance,
@@ -64,7 +64,7 @@ def test_retrieve_not_found(data):
@pytest.mark.django_db @pytest.mark.django_db
def test_category_home_list(data): def test_category_home_list(data):
urls, client, _ = data urls, client, _ = data
response = client.get(urls["list-home-ad"]) response = client.get(urls["list-category-home"])
data_resp = response.json() data_resp = response.json()
assert response.status_code == 200 assert response.status_code == 200
assert data_resp["status"] is True assert data_resp["status"] is True
@@ -73,7 +73,7 @@ def test_category_home_list(data):
@pytest.mark.django_db @pytest.mark.django_db
def test_category_home_retrieve(data): def test_category_home_retrieve(data):
urls, client, _ = data urls, client, _ = data
response = client.get(urls["retrieve-home-ad"]) response = client.get(urls["retrieve-category-home"])
data_resp = response.json() data_resp = response.json()
assert response.status_code == 200 assert response.status_code == 200
assert data_resp["status"] is True assert data_resp["status"] is True
@@ -82,7 +82,7 @@ def test_category_home_retrieve(data):
@pytest.mark.django_db @pytest.mark.django_db
def test_category_home_retrieve_not_found(data): def test_category_home_retrieve_not_found(data):
urls, client, _ = data urls, client, _ = data
response = client.get(urls["retrieve-home-ad-not-found"]) response = client.get(urls["retrieve-category-home-not-found"])
data_resp = response.json() data_resp = response.json()
assert response.status_code == 404 assert response.status_code == 404
assert data_resp["status"] is False assert data_resp["status"] is False

View File

@@ -0,0 +1 @@
from .test_search_history import * # noqa

View File

@@ -0,0 +1,56 @@
import pytest
from django.urls import reverse
from rest_framework.test import APIClient
from core.apps.accounts.models import SearchHistory
@pytest.fixture
def instance(db):
return SearchHistory._baker()
@pytest.fixture
def api_client(instance):
client = APIClient()
client.force_authenticate(user=instance.user)
return client, instance
@pytest.fixture
def data(api_client):
client, instance = api_client
return (
{
"list": reverse("search-history-list"),
"retrieve": reverse("search-history-detail", kwargs={"pk": instance.pk}),
"retrieve-not-found": reverse("search-history-detail", kwargs={"pk": 1000}),
},
client,
instance,
)
@pytest.mark.django_db
def test_list(data):
urls, client, _ = data
response = client.get(urls["list"])
data_resp = response.json()
assert response.status_code == 200
assert data_resp["status"] is True
@pytest.mark.django_db
def test_create(data):
urls, client, _ = data
response = client.post(urls["list"], data={"value": "test-text"})
data_resp = response.json()
assert response.status_code == 201
assert data_resp["status"] is True
@pytest.mark.django_db
def test_destroy(data):
urls, client, _ = data
response = client.delete(urls["retrieve"])
assert response.status_code == 204