new company search endpoint, but searchfilter not working

This commit is contained in:
Sam
2021-03-17 11:00:37 +00:00
parent 6a3bd7acea
commit 0c70763345
3 changed files with 58 additions and 3 deletions

View File

@@ -551,3 +551,51 @@ class AdminCompanyViewSetTest(APITestCase):
# assertions
self.assertEquals(response.status_code, 204)
class CompanySearchViewSet(APITestCase):
def setUp(self):
"""Tests setup
"""
self.endpoint = '/api/v1/search/companies/'
self.factory = CompanyFactory
self.model = Company
# create user
self.email = f"user@mail.com"
self.password = ''.join(random.choices(string.ascii_uppercase, k = 10))
self.user = CustomUserFactory(email=self.email, is_active=True)
self.user.set_password(self.password)
self.user.save()
def test_anon_user_can_search_company_name(self):
company_name = 'Test company name'
# create instance
instance = self.factory(company_name=company_name)
# query
url = f"{self.endpoint}?search={company_name}"
response = self.client.get(url)
# assertions
self.assertEquals(response.status_code, 200)
payload = response.json()
print(payload)
self.assertEquals(len(payload), 1)
def test_anon_user_can_search_short_name(self):
short_name = 'Test company name'
# create instance
instance = self.factory(short_name=short_name)
# query
url = f"{self.endpoint}?search={short_name}"
response = self.client.get(url)
# assertions
self.assertEquals(response.status_code, 200)
payload = response.json()
print(payload)
self.assertEquals(len(payload), 1)

View File

@@ -24,14 +24,20 @@ from back_latienda.permissions import IsCreator, IsSiteAdmin
from utils import woocommerce
class CompanySearchViewSet(viewsets.ModelViewSet):
queryset = Company.objects.filter(is_validated=True).order_by('-created')
serializer_class = CompanySerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
filter_backends = (filters.SearchFilter, )
# search_fields = ['company_name__unaccent__icontains', 'short_name__unaccent__icontains']
search_fields = ['@company_name', '@short_name']
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.filter(is_validated=True).order_by('-created')
serializer_class = CompanySerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsCreator]
filterset_class = CompanyTagFilter
filter_backends = [filters.SearchFilter]
search_fields = ['company_name__unaccent__icontains', 'short_name__unaccent__icontains']
def perform_create(self, serializer):
serializer.save(creator=self.request.user)