mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 18:53:17 -05:00 
			
		
		
		
	`email.com` is not a reserved domain, incorrect configuration could result in unintentional effects. `example.com` is reserved by IANA for bogus purposes, see RFC 6761.
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from dataclasses import dataclass
 | 
						|
from uuid import UUID
 | 
						|
 | 
						|
from fastapi.testclient import TestClient
 | 
						|
 | 
						|
from mealie.repos.repository_factory import AllRepositories
 | 
						|
from mealie.schema.recipe.recipe import Recipe
 | 
						|
from tests.utils import api_routes, random_string
 | 
						|
from tests.utils.fixture_schemas import TestUser
 | 
						|
 | 
						|
 | 
						|
@dataclass(slots=True)
 | 
						|
class SimpleCase:
 | 
						|
    value: str
 | 
						|
    is_valid: bool
 | 
						|
 | 
						|
 | 
						|
def test_validators_username(api_client: TestClient, unique_user: TestUser):
 | 
						|
    users = [
 | 
						|
        SimpleCase(value=unique_user.username, is_valid=False),
 | 
						|
        SimpleCase(value=random_string(), is_valid=True),
 | 
						|
    ]
 | 
						|
 | 
						|
    for user in users:
 | 
						|
        response = api_client.get(api_routes.validators_user_name + "?name=" + user.value)
 | 
						|
        assert response.status_code == 200
 | 
						|
        response_data = response.json()
 | 
						|
        assert response_data["valid"] == user.is_valid
 | 
						|
 | 
						|
 | 
						|
def test_validators_email(api_client: TestClient, unique_user: TestUser):
 | 
						|
    emails = [
 | 
						|
        SimpleCase(value=unique_user.email, is_valid=False),
 | 
						|
        SimpleCase(value=f"{random_string()}@example.com", is_valid=True),
 | 
						|
    ]
 | 
						|
 | 
						|
    for user in emails:
 | 
						|
        response = api_client.get(api_routes.validators_user_email + "?email=" + user.value)
 | 
						|
        assert response.status_code == 200
 | 
						|
        response_data = response.json()
 | 
						|
        assert response_data["valid"] == user.is_valid
 | 
						|
 | 
						|
 | 
						|
def test_validators_group_name(api_client: TestClient, unique_user: TestUser, database: AllRepositories):
 | 
						|
    group = database.groups.get_one(unique_user.group_id)
 | 
						|
 | 
						|
    groups = [
 | 
						|
        SimpleCase(value=group.name, is_valid=False),
 | 
						|
        SimpleCase(value=random_string(), is_valid=True),
 | 
						|
    ]
 | 
						|
 | 
						|
    for user in groups:
 | 
						|
        response = api_client.get(api_routes.validators_group + "?name=" + user.value)
 | 
						|
        assert response.status_code == 200
 | 
						|
        response_data = response.json()
 | 
						|
        assert response_data["valid"] == user.is_valid
 | 
						|
 | 
						|
 | 
						|
@dataclass(slots=True)
 | 
						|
class RecipeValidators:
 | 
						|
    name: str
 | 
						|
    group: UUID | str
 | 
						|
    is_valid: bool
 | 
						|
 | 
						|
 | 
						|
def test_validators_recipe(api_client: TestClient, random_recipe: Recipe):
 | 
						|
    recipes = [
 | 
						|
        RecipeValidators(name=random_recipe.name, group=random_recipe.group_id, is_valid=False),
 | 
						|
        RecipeValidators(name=random_string(), group=random_recipe.group_id, is_valid=True),
 | 
						|
        RecipeValidators(name=random_string(), group=random_recipe.group_id, is_valid=True),
 | 
						|
    ]
 | 
						|
 | 
						|
    for recipe in recipes:
 | 
						|
        response = api_client.get(api_routes.validators_recipe + f"?group_id={recipe.group}&name={recipe.name}")
 | 
						|
        assert response.status_code == 200
 | 
						|
        response_data = response.json()
 | 
						|
        assert response_data["valid"] == recipe.is_valid
 |