Exemple #1
0
def test_database(database, browser):
    """
    Проверка работы, добавления и удаления данных БД с помощью Selenium
    :param database:
    :param browser:
    :return:
    """
    # Добавляем валюту в базу:
    database.add_currency()

    admin_login = AdminLogin(browser.wd)
    admin_page = AdminPage(browser.wd)

    # Открывам страницу администратора:
    browser.open_admin_page()

    # Очищаем поля и username вводим данные для авторизации:
    admin_login.fill_username(email)

    # Очищаем поля и password вводим данные для авторизации:
    admin_login.fill_password(password)

    # Нажимаем кнопку Login для входа в аккаунт:
    admin_login.login_button()

    # Получаем список валют на странице:
    titles = admin_page.get_currencies_titles()

    # Удаляем валюту из базы:
    database.delete_currency()

    # Проверяем, что добавленная валюта есть на странице:
    assert 'Russia Ruble' in titles
def admin_authorization(browser):
    """
    Авторизация под учетной записью администратора
    :param browser:
    """

    browser.log.info('Starting admin_authorization')

    admin_login = AdminLogin(browser.wd)
    admin_page = AdminPage(browser.wd)

    # Открывам страницу администратора:
    browser.open_admin_page()

    # Очищаем поля и username вводим данные для авторизации:
    admin_login.fill_username(email)

    # Очищаем поля и password вводим данные для авторизации:
    admin_login.fill_password(password)

    # Нажимаем кнопку Login для входа в аккаунт:
    admin_login.login_button()

    browser.log.info('Logging out')
    try:
        admin_page.logout()
    except Exception as e:
        browser.log.error(f'Exception - {e}')
def test_edit_product(browser):
    """
    Изменение продукта в Product List
    :param browser:
    """

    admin_page = AdminPage(browser.wd)

    # Авторизация под учетной записью администратора:
    admin_authorization(browser)

    # Navigation -> Catalog -> Products:
    open_products_from_catalog(browser)

    # Выбираем продукт для измения и нажимаем на него:
    admin_page.product_for_edit()

    # Ищем кнопку "Edit" и нажимаем на нее:
    admin_page.edit_button()

    # Вводим данные нового продукта:
    add_product(browser)

    # Ищем кнопку "Save" и нажимаем на нее:
    admin_page.save_button()

    # Проверяем успешность изменения продукта в Product List:
    alert_success = admin_page.alert_success()
    assert 'Success: You have modified products!' in alert_success
def test_database(db, browser):
    db.add_currency()
    admin_login = AdminLogin(browser.wd)
    admin_page = AdminPage(browser.wd)
    browser.open_admin_login_page()
    admin_login.fill_username('user')
    admin_login.fill_password('bitnami1')
    admin_login.login()
    titles = admin_page.get_currencies_titles()
    db.delete_currency()
    assert 'test' in titles
Exemple #5
0
def login(driver, request):
    """login to admin page"""
    url = request.config.getoption("--address") + 'admin/'
    driver.get(url)
    admin_page = AdminPage(driver)
    admin_page.login(login="******", password="******")
    current_url = driver.current_url
    parsed = parse.urlparse(current_url)
    parse.parse_qs(parsed.query)
    token = parse.parse_qs(parsed.query)['user_token'][0]
    return token
Exemple #6
0
def test_admin_login(browser):
    browser.log.info('Test test_admin_login starting')
    admin_login = AdminLogin(browser.wd)
    admin_page = AdminPage(browser.wd)
    browser.open_admin_login_page()
    admin_login.fill_username('user')
    admin_login.fill_password('bitnami1')
    admin_login.login()
    browser.log.info('Logging out')
    try:
        admin_page.logout()
    except Exception as e:
        browser.log.error(f'Exception - {e}')
def test_add_new_product(browser):
    """
    Добавление нового продукта в Product List
    :param browser:
    """

    admin_page = AdminPage(browser.wd)

    # Авторизация под учетной записью администратора:
    admin_authorization(browser)

    # Navigation -> Catalog -> Products:
    open_products_from_catalog(browser)

    # Ищем кнопку "Add new" и нажимаем на нее:
    admin_page.add_new_button()

    # Добавляем продукт:
    add_product(browser)

    # Ищем кнопку "Save" и нажимаем на нее:
    admin_page.save_button()

    # Проверяем успешность добавления нового продукта в Product List:
    alert_success = admin_page.alert_success()

    # Проверяем успешность добавления нового продукта в Product List:
    assert 'Success: You have modified products!' in alert_success
def test_delete_product(browser):
    """
    Удаление продукта из Product List
    :param browser:
    :return:
    """
    admin_page = AdminPage(browser.wd)
    utils = Utils(browser.wd)

    # Авторизация под учетной записью администратора:
    admin_authorization(browser)

    # Navigation -> Catalog -> Products:
    open_products_from_catalog(browser)

    # Выбираем продукт для удаления:
    admin_page.product_for_delete()

    # Ищем кнопку "Delete" и нажимаем на нее:
    admin_page.delete_button()

    # Подтверждаем действие удаления на странице браузера:
    utils.accept_alert()

    # Проверяем успешность удаления продукта из Product List:
    alert_success = admin_page.alert_success()
    assert 'Success: You have modified products!' in alert_success
def test_file_upload(browser):
    file_path = '/home/chaplygin/Downloads/Telegram Desktop/image_2019-09-11_15-22-17.png'
    utils = Utils(browser.wd)
    admin_login = AdminLogin(browser.wd)
    admin_page = AdminPage(browser.wd)
    browser.open_admin_login_page()
    admin_login.fill_username('user')
    admin_login.fill_password('bitnami1')
    admin_login.login()
    admin_page.open_downloads()
    admin_page.open_add_new_download()
    utils.create_file_upload_form()
    admin_page.upload_file(file_path)
    is_file_uploaded = utils.is_file_uploaded()
    assert is_file_uploaded == True
def open_products_from_catalog(browser):
    """
    Navigation -> Catalog -> Products
    :param browser:
    """

    admin_page = AdminPage(browser.wd)

    # В разделе Navigation выбираем Catalog:
    admin_page.click_catalog()

    # В разделе Catalog выбираем Products:
    admin_page.click_products()
def add_product(browser):
    """
    Добавление продукта
    :param browser:
    """

    admin_page = AdminPage(browser.wd)

    # Ищем поле "Product name", очищаем и вводим данные:
    admin_page.fill_product_name(product_name)

    # Ищем поле "Meta tag title", очищаем и вводим данные:
    admin_page.fill_meta_tag_title(meta_tag_title)

    # В навигационное панеле ищем "Data" и нажимаем:
    admin_page.click_navigation_data()

    # Ищем поле "Model", очищаем и вводим данные:
    admin_page.fill_model(model)

    # Ищем поле "Price", очищаем и вводим данные:
    admin_page.fill_price(price)

    # Ищем поле "Minimum Quantity", очищаем и вводим данные:
    admin_page.fill_min_quantity(min_quantity)
Exemple #12
0
def admin_page(browser):
    return AdminPage(browser)
Exemple #13
0
def admin_page(request, driver):
    driver.get(request.config.getoption("--address") + "admin/")
    return AdminPage(driver)