Fixing vendor dashboard area
This commit is contained in:
31
tests/fixtures/auth_fixtures.py
vendored
31
tests/fixtures/auth_fixtures.py
vendored
@@ -114,3 +114,34 @@ def admin_headers(client, test_admin):
|
||||
assert response.status_code == 200, f"Admin login failed: {response.text}"
|
||||
token = response.json()["access_token"]
|
||||
return {"Authorization": f"Bearer {token}"}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_vendor_user(db, auth_manager):
|
||||
"""Create a test vendor user with unique username"""
|
||||
unique_id = str(uuid.uuid4())[:8]
|
||||
hashed_password = auth_manager.hash_password("vendorpass123")
|
||||
user = User(
|
||||
email=f"vendor_{unique_id}@example.com",
|
||||
username=f"vendoruser_{unique_id}",
|
||||
hashed_password=hashed_password,
|
||||
role="vendor",
|
||||
is_active=True,
|
||||
)
|
||||
db.add(user)
|
||||
db.commit()
|
||||
db.refresh(user)
|
||||
db.expunge(user)
|
||||
return user
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def vendor_user_headers(client, test_vendor_user):
|
||||
"""Get authentication headers for vendor user (uses get_current_vendor_api)"""
|
||||
response = client.post(
|
||||
"/api/v1/auth/login",
|
||||
json={"username": test_vendor_user.username, "password": "vendorpass123"},
|
||||
)
|
||||
assert response.status_code == 200, f"Vendor login failed: {response.text}"
|
||||
token = response.json()["access_token"]
|
||||
return {"Authorization": f"Bearer {token}"}
|
||||
|
||||
33
tests/fixtures/vendor_fixtures.py
vendored
33
tests/fixtures/vendor_fixtures.py
vendored
@@ -27,6 +27,39 @@ def test_vendor(db, test_user):
|
||||
return vendor
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_vendor_with_vendor_user(db, test_vendor_user):
|
||||
"""Create a vendor owned by a vendor user (for testing vendor API endpoints)"""
|
||||
from models.database.vendor import VendorUser
|
||||
|
||||
unique_id = str(uuid.uuid4())[:8].upper()
|
||||
vendor = Vendor(
|
||||
vendor_code=f"VENDORAPI_{unique_id}",
|
||||
subdomain=f"vendorapi{unique_id.lower()}",
|
||||
name=f"Vendor API Test {unique_id}",
|
||||
owner_user_id=test_vendor_user.id,
|
||||
is_active=True,
|
||||
is_verified=True,
|
||||
)
|
||||
db.add(vendor)
|
||||
db.commit()
|
||||
db.refresh(vendor)
|
||||
|
||||
# Create VendorUser association
|
||||
vendor_user = VendorUser(
|
||||
vendor_id=vendor.id,
|
||||
user_id=test_vendor_user.id,
|
||||
is_owner=True,
|
||||
is_active=True,
|
||||
)
|
||||
db.add(vendor_user)
|
||||
db.commit()
|
||||
db.refresh(vendor)
|
||||
|
||||
db.expunge(vendor)
|
||||
return vendor
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def unique_vendor(db, test_user):
|
||||
"""Create a unique vendor for tests that need isolated vendor data"""
|
||||
|
||||
Reference in New Issue
Block a user