from pydantic_core import from_json from mcpuniverse.app.api.user import CreateUserResponse class TestUserAPI: def test_create_user(self, client): username = "abc" email = "test@example.com" password = "123" response = client.post( "/user/create", json={"username": username, "email": email, "password": password}, ) assert response.status_code == 200 r = CreateUserResponse.model_validate(from_json(response.text)) assert r.email == email response = client.post( "/user/create", json={"username": username, "email": "", "password": password}, ) assert response.status_code == 400 response = client.post( "/user/create", json={"username": username, "email": email, "password": ""}, ) assert response.status_code == 400 response = client.post( "/user/create", json={"username": username, "email": "test", "password": password}, ) assert response.status_code == 400 response = client.post( "/user/create", json={"username": username, "email": email}, ) assert response.status_code == 400 def test_login_user(self, client): username = "abc" email = "test@example.com" password = "123" response = client.post( "/user/create", json={"username": username, "email": email, "password": password}, ) assert response.status_code == 200 r = CreateUserResponse.model_validate(from_json(response.text)) assert r.email == email response = client.post( "/user/login", json={"email": email, "password": password}, ) assert response.status_code == 200 response = client.post( "/user/login", json={"email": email + "a", "password": password}, ) assert response.status_code == 401 response = client.post( "/user/login", json={"email": email, "password": password + "a"}, ) assert response.status_code == 401