Skip to content

Commit

Permalink
Merge pull request #76 from Tenth-Team/develop
Browse files Browse the repository at this point in the history
schemas and tests
  • Loading branch information
ragimov700 authored Mar 10, 2024
2 parents 040aecb + 9950f02 commit a427549
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 1 deletion.
33 changes: 33 additions & 0 deletions backend/ambassadors/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,25 @@
CLOTHING_SIZES_CHOICES,
CONTENT_STATUS_CHOICES,
GENDER_CHOICES,
MERCH_CHOICES,
PROMO_CODE_STATUS_CHOICES,
STATUS_CHOICES,
STATUS_SEND_CHOICES,
)
from .models import (
Ambassador,
AmbassadorGoal,
City,
Content,
Country,
Merchandise,
MerchandiseShippingRequest,
PromoCode,
TrainingProgram,
)

fake = Faker(['en-US', 'en_US', 'en_US', 'en-US'])


class CityFactory(DjangoModelFactory):
class Meta:
Expand Down Expand Up @@ -108,3 +114,30 @@ class Meta:
'random_element',
elements=[choice[0] for choice in PROMO_CODE_STATUS_CHOICES],
)


class MerchandiseFactory(DjangoModelFactory):
class Meta:
model = Merchandise

name = Faker(
'random_element',
elements=[choice[0] for choice in MERCH_CHOICES]
)
price = Faker(
'random_element',
elements=[100, 1000]
)


class MerchandiseShippingRequestFactory(DjangoModelFactory):
class Meta:
model = MerchandiseShippingRequest

name_merch = factory.SubFactory(MerchandiseFactory)
ambassador = factory.SubFactory(AmbassadorFactory)
status_send = Faker(
'random_element',
elements=[choice[0] for choice in STATUS_SEND_CHOICES]
)
comment = Faker('text')
9 changes: 8 additions & 1 deletion backend/api/v1/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@
"id": 1,
"ya_edu": {"id": 1, "name": "Пример программы обучения"},
"amb_goals": [{"id": 1, "name": "Пример цели"}],
"promo_code": "promo_code_example",
"promo_code": [
{
"id": 1,
"name": "PROMO019",
"status": "active",
"ambassador": 1
}
],
"content_count": 0,
"reg_date": f"{SCHEMA_DATE}T20:00:00.000+03:00",
"country": 1,
Expand Down
58 changes: 58 additions & 0 deletions backend/api/v1/tests/test_merch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
from ambassadors.factories import (
AmbassadorFactory,
MerchandiseFactory,
MerchandiseShippingRequestFactory,
)
from ambassadors.models import MerchandiseShippingRequest
from django.contrib.auth import get_user_model
from rest_framework import status
from rest_framework.test import APITestCase

User = get_user_model()


class MerchandiseShippingRequestTests(APITestCase):
def setUp(self):
self.user = User.objects.create_user(
username='testuser', password='testpassword'
)
self.ambassador = AmbassadorFactory()
self.merch = MerchandiseFactory()
self.shipping_request = MerchandiseShippingRequestFactory()
self.client.force_authenticate(user=self.user)

def test_get_shipping_requests_list(self):
url = '/api/v1/merchandise/'
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_200_OK)

def test_create_merch(self):
url = '/api/v1/merchandise/'
new_merchandise_data = {
'status_send': "new",
'comment': "Комментарий",
'name_merch': self.merch.pk,
'ambassador': self.ambassador.pk
}
response = self.client.post(url, new_merchandise_data)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(response.data['status_send'], new_merchandise_data['status_send'])

def test_update_merch(self):
merchandise = MerchandiseShippingRequest.objects.create(
status_send="new",
comment="Комментарий",
name_merch=self.merch,
ambassador=self.ambassador)
url = f'/api/v1/merchandise/{merchandise.pk}/'
updated_merchandise_data = {
'status_send': "address_verified",
'comment': "Обновленный комментарий",
'name_merch': self.merch.pk,
'ambassador': self.ambassador.pk
}
response = self.client.patch(url, updated_merchandise_data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
updated_merchandise = MerchandiseShippingRequest.objects.get(pk=merchandise.pk)
self.assertEqual(updated_merchandise.status_send, updated_merchandise_data['status_send'])
self.assertEqual(updated_merchandise.comment, updated_merchandise_data['comment'])

0 comments on commit a427549

Please sign in to comment.