# -*- coding: utf-8 -*-

import pytest
from .data_providers import valid_products


@pytest.mark.parametrize("product", valid_products, ids=[repr(x) for x in valid_products])
def test_admin_add_product(app, product):
    """
    Сделайте сценарий для добавления нового товара (продукта) в учебном приложении litecart (в админке).
    Для добавления товара нужно
        - открыть меню Catalog;
        - в правом верхнем углу нажать кнопку "Add New Product";
        - заполнить поля с информацией о товаре и сохранить.
    Достаточно заполнить только информацию на вкладках General, Information и Prices.
    Скидки (Campains) на вкладке Prices можно не добавлять.
    Переключение между вкладками происходит не мгновенно, поэтому после переключения можно сделать небольшую паузу
    (о том, как делать более правильные ожидания, будет рассказано в следующих занятиях).
    Картинку с изображением товара нужно уложить в репозиторий вместе с кодом.
    При этом указывать в коде полный абсолютный путь к файлу плохо, на другой машине работать не будет.
    Надо средствами языка программирования преобразовать относительный путь в абсолютный.
    После сохранения товара нужно убедиться, что он появился в каталоге (в админке).
    Клиентскую часть магазина можно не проверять.
    """
    app.login_to_admin()
    app.admin_catalog_page.open_geo_zones_page()
    app.admin_catalog_page.add_new_product(product)
    app.admin_catalog_page.assert_product_adding(product)
