From 9706fa82072c5dda4d5183377f998df4fee7a112 Mon Sep 17 00:00:00 2001 From: Maxim1-1 Date: Fri, 28 Jul 2023 15:50:44 +0300 Subject: [PATCH 1/3] replace method for refresh_token --- backend/users/.env.prod | 4 ++-- backend/users/backend/administrator/tests/test_get_jwt.py | 4 +++- backend/users/backend/base/base_tests/tests.py | 4 ++++ backend/users/backend/common/tests/test_logout.py | 4 ++-- backend/users/backend/customer/tests/test_get_jwt.py | 4 ++-- backend/users/backend/developer/tests/test_get_jwt.py | 2 +- backend/users/docker-compose.yml | 2 +- 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/backend/users/.env.prod b/backend/users/.env.prod index c459a5895..eb0f86eed 100644 --- a/backend/users/.env.prod +++ b/backend/users/.env.prod @@ -1,7 +1,7 @@ DJANGO_LOG_LEVEL=INFO DJANGO_SECRET_KEY=testsecretkey -DJANGO_ALLOWED_HOSTS=* -DJANGO_CORS_ALLOWED_ORIGINS=http://localhost:3000,https://games.alpha.g-spot.website +DJANGO_ALLOWED_HOSTS=http://localhost:8000 +DJANGO_CORS_ALLOWED_ORIGINS=http://localhost:8000 # ===== POSTGRES DOCKER ===== diff --git a/backend/users/backend/administrator/tests/test_get_jwt.py b/backend/users/backend/administrator/tests/test_get_jwt.py index ab5481fce..a38065698 100644 --- a/backend/users/backend/administrator/tests/test_get_jwt.py +++ b/backend/users/backend/administrator/tests/test_get_jwt.py @@ -1,6 +1,8 @@ import os import time +from social_core.pipeline import user + from administrator.models import Admin from base.base_tests.tests import BaseViewTestCase from common.services.jwt.token import Token @@ -21,7 +23,7 @@ def setUpTestData(cls): ) cls.url = reverse("token_refresh") cls.token = cls.get_tokens(cls.user) - cls.data = {"refresh_token": cls.token.get("refresh")} + cls.data = {"refresh_token": cls.get_refresh_token(cls.user)} def client_post(self, data): return self.client.post(self.url, data=data, format="json") diff --git a/backend/users/backend/base/base_tests/tests.py b/backend/users/backend/base/base_tests/tests.py index cbd0dfcac..57f19f0f1 100644 --- a/backend/users/backend/base/base_tests/tests.py +++ b/backend/users/backend/base/base_tests/tests.py @@ -30,6 +30,10 @@ def tearDown(self) -> None: def get_access_token(user: BaseAbstractUser) -> str: return Token().generate_access_token_for_user(user) + @staticmethod + def get_refresh_token(user: BaseAbstractUser) -> str: + return Token().generate_refresh_token_for_user(user) + @staticmethod def get_tokens(user: BaseAbstractUser) -> dict: return Token().generate_tokens_for_user(user) diff --git a/backend/users/backend/common/tests/test_logout.py b/backend/users/backend/common/tests/test_logout.py index 15ebef24e..aed5eb629 100644 --- a/backend/users/backend/common/tests/test_logout.py +++ b/backend/users/backend/common/tests/test_logout.py @@ -29,8 +29,8 @@ def create_user(cls, model: type[BaseAbstractUser]) -> BaseAbstractUser: return model.objects.create_user(**data) def create_refresh_token(self, user) -> dict: - refresh_token = self.get_tokens(user) - return {"refresh_token": refresh_token.get('refresh')} + refresh_token = self.get_refresh_token(user) + return {"refresh_token": refresh_token} def test_01_logout_developer(self): refresh_token = self.create_refresh_token(self.developer) diff --git a/backend/users/backend/customer/tests/test_get_jwt.py b/backend/users/backend/customer/tests/test_get_jwt.py index 9dbe74b0a..38a6c6db3 100644 --- a/backend/users/backend/customer/tests/test_get_jwt.py +++ b/backend/users/backend/customer/tests/test_get_jwt.py @@ -21,8 +21,8 @@ def setUpTestData(cls): is_active=True, ) cls.url = reverse("token_refresh") - cls.token = cls.get_tokens(cls.user) - cls.data = {"refresh_token": cls.token.get("refresh")} + cls.token = cls.get_refresh_token(cls.user) + cls.data = {"refresh_token": cls.token} def client_post(self, data): return self.client.post(self.url, data=data, format="json") diff --git a/backend/users/backend/developer/tests/test_get_jwt.py b/backend/users/backend/developer/tests/test_get_jwt.py index 306955068..c010da124 100644 --- a/backend/users/backend/developer/tests/test_get_jwt.py +++ b/backend/users/backend/developer/tests/test_get_jwt.py @@ -21,7 +21,7 @@ def setUpTestData(cls): ) cls.url = reverse("token_refresh") cls.token = cls.get_tokens(cls.user) - cls.data = {"refresh_token": cls.token.get("refresh")} + cls.data = {"refresh_token": cls.get_refresh_token(cls.user)} def client_post(self, data): return self.client.post(self.url, data=data, format="json") diff --git a/backend/users/docker-compose.yml b/backend/users/docker-compose.yml index c27688087..691bef7f3 100644 --- a/backend/users/docker-compose.yml +++ b/backend/users/docker-compose.yml @@ -20,7 +20,7 @@ services: env_file: - .env.prod healthcheck: - test: [ "CMD-SHELL", "pg_isready" ] + test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ] interval: 10s timeout: 5s retries: 5 \ No newline at end of file From c36e1847e3681258777c86b938797b4a51685707 Mon Sep 17 00:00:00 2001 From: Maxim1-1 Date: Sun, 30 Jul 2023 16:58:31 +0300 Subject: [PATCH 2/3] add method for get users --- .../users/backend/base/base_tests/tests.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/backend/users/backend/base/base_tests/tests.py b/backend/users/backend/base/base_tests/tests.py index 57f19f0f1..656b3bf74 100644 --- a/backend/users/backend/base/base_tests/tests.py +++ b/backend/users/backend/base/base_tests/tests.py @@ -1,10 +1,15 @@ import pika + +from administrator.models import Admin from base.models import BaseAbstractUser from common.services.jwt.token import Token from django.conf import settings from django.test import TestCase from faker import Faker from rest_framework.test import APIClient + +from customer.models import CustomerUser +from developer.models import CompanyUser from utils.broker.rabbitmq import RabbitMQ @@ -37,3 +42,30 @@ def get_refresh_token(user: BaseAbstractUser) -> str: @staticmethod def get_tokens(user: BaseAbstractUser) -> dict: return Token().generate_tokens_for_user(user) + + def get_user(self, user: BaseAbstractUser): + + data_user = self.__generate_data_for_users(user) + + if isinstance(user, CustomerUser): + customer_user = CustomerUser.objects.create_user(**data_user) + return customer_user + elif isinstance(user, Admin): + customer_user = Admin.objects.create_user(**data_user) + return customer_user + elif isinstance(user, CompanyUser): + customer_user = CompanyUser.objects.create_user(**data_user) + return customer_user + else: + raise ValueError(f"Type user {user.__class__.__name__} not found") + + def __generate_data_for_users(self, type_user: BaseAbstractUser) -> dict: + data = { + "username": self.faker.word(), + "password": self.faker.word(), + "email": self.faker.email(), + "phone": self.faker.random_number(digits=10, fix_len=True), + } + if isinstance(type_user, CustomerUser): + data["birthday"] = self.faker.date_object() + return data From d70ede099f4f7c7079231132be0b6cccfce9eadf Mon Sep 17 00:00:00 2001 From: Maxim1-1 Date: Sun, 30 Jul 2023 17:03:58 +0300 Subject: [PATCH 3/3] rollback changes --- backend/users/.env.prod | 26 +++----------------------- backend/users/docker-compose.yml | 2 +- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/backend/users/.env.prod b/backend/users/.env.prod index eb0f86eed..dff6dd6c1 100644 --- a/backend/users/.env.prod +++ b/backend/users/.env.prod @@ -1,7 +1,7 @@ DJANGO_LOG_LEVEL=INFO DJANGO_SECRET_KEY=testsecretkey -DJANGO_ALLOWED_HOSTS=http://localhost:8000 -DJANGO_CORS_ALLOWED_ORIGINS=http://localhost:8000 +DJANGO_ALLOWED_HOSTS=* +DJANGO_CORS_ALLOWED_ORIGINS=http://localhost:3000,https://games.alpha.g-spot.website # ===== POSTGRES DOCKER ===== @@ -32,24 +32,4 @@ DJANGO_SUPERUSER_PASSWORD=password # ===== REDIS ===== REDIS_LOCAL_HOST=redis -REDIS_LOCAL_PORT=6379 -REDIS_LOCAL_PASSWORD=Qwe123!@# - -REDIS_SHARED_HOST=redis -REDIS_SHARED_PORT=6379 -REDIS_SHARED_PASSWORD=Qwe123!@# - -REDIS_ACCESS_DB=0 -REDIS_REFRESH_DB=1 -REDIS_TOTP_DB=2 -REDIS_ACCESS_PREFIX=access -REDIS_REFRESH_PREFIX=refresh -REDIS_TOTP_PREFIX=totp - -# ===== TOTP ===== -EMAIL_EXCHANGE_NAME=email_exchange -EMAIL_ROUTING_KEY=email_queue -NOTIFY_EXCHANGE_NAME=notify_exchange -NOTIFY_ROUTING_KEY=notify_queue -TOTP_EXCHANGE_NAME=totp_exchange -TOTP_ROUTING_KEY=totp_queue +REDIS_LOCAL_PORT=6379 \ No newline at end of file diff --git a/backend/users/docker-compose.yml b/backend/users/docker-compose.yml index 691bef7f3..c27688087 100644 --- a/backend/users/docker-compose.yml +++ b/backend/users/docker-compose.yml @@ -20,7 +20,7 @@ services: env_file: - .env.prod healthcheck: - test: [ "CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}" ] + test: [ "CMD-SHELL", "pg_isready" ] interval: 10s timeout: 5s retries: 5 \ No newline at end of file