def test_add_category(db: Session): product = create_random_product(db) cat1 = create_random_category(db) product_repo.add_category(db, db_obj=product, category=cat1) db_obj = product_repo.get(db, id=product.id) assert db_obj.categories[0].name == cat1.name
def test_add_category(client: TestClient, superuser_token_headers: dict, db: Session): product = create_random_product(db) cat1 = create_random_category(db) data = cat1.id response = client.post( f"{settings.API_PREFIX}/v1/products/{product.id}/categories", headers=superuser_token_headers, json=data) assert response.status_code == 200 content = response.json() db.refresh(product) assert cat1 in product.categories
def test_remove_categories(client: TestClient, superuser_token_headers: dict, db: Session): product = create_random_product(db) cat1 = create_random_category(db) product_repo.add_category(db, db_obj=product, category=cat1) db.refresh(product) assert cat1 in product.categories response = client.delete( f"{settings.API_PREFIX}/v1/products/{product.id}/categories/{cat1.id}", headers=superuser_token_headers) assert response.status_code == 200 content = response.json() db.refresh(product) assert cat1 not in product.categories
def test_create_product(client: TestClient, superuser_token_headers: dict, db: Session): name = random_lower_string() desc = random_lower_string() cat1 = create_random_category(db) data = { "product_in": { "name": name, "description": desc }, "categories": [cat1.name, cat1.name] } response = client.post(f"{settings.API_PREFIX}/v1/products/", headers=superuser_token_headers, json=data) assert response.status_code == 201 content = response.json() assert content["name"] == name assert content["description"] == desc assert content["owner_id"]