H2OTest / tests /ui /test.py
elineve's picture
Upload 301 files
07423df
raw
history blame
3.77 kB
import logging
import os
from playwright.sync_api import Page
from pytest_bdd import given, parsers, scenarios, then, when
from .llm_studio_page import LLMStudioPage
from .utils import login
scenarios("llm_studio.feature")
@given("LLM Studio home page is opened")
def open_llm_studio(page: Page, base_url):
page.goto(base_url)
@when("I login to LLM Studio", target_fixture="llm_studio")
def login_to_llm_studio(logger: logging.Logger, page: Page, base_url: str):
okta_user = os.environ.get("OKTA_USER")
okta_password = os.environ.get("OKTA_PASSWORD")
keycloak_user = os.environ.get("KEYCLOAK_USER")
keycloak_password = os.environ.get("KEYCLOAK_PASSWORD")
if "LOCAL_LOGIN" not in os.environ:
if okta_user and okta_password:
login(page, "okta", okta_user, okta_password)
elif keycloak_user and keycloak_password:
login(page, "keycloak", keycloak_user, keycloak_password)
return LLMStudioPage(logger, page, base_url)
@then(parsers.parse("I should see the dataset {dataset_name}"))
def view_datasets(llm_studio: LLMStudioPage, dataset_name: str):
llm_studio.assert_dataset_import(dataset_name)
@when(parsers.parse("I upload dataset {filepath}"))
def upload_dataset_using_filesystem(llm_studio: LLMStudioPage, filepath: str):
llm_studio.import_dataset_from_filesystem(filepath)
@when(parsers.parse("I name the dataset {dataset_name}"))
def dataset_name(llm_studio: LLMStudioPage, dataset_name: str):
llm_studio.dataset_name(dataset_name)
@then("I see the home page")
def view_home_page(llm_studio: LLMStudioPage):
llm_studio.open_home_page()
@when(parsers.parse("I delete dataset {dataset_name}"))
def delete_dataset(llm_studio: LLMStudioPage, dataset_name: str):
llm_studio.delete_dataset(dataset_name)
@then(parsers.parse("I should not see the dataset {dataset_name}"))
def assert_dataset_deletion(llm_studio: LLMStudioPage, dataset_name: str):
llm_studio.view_datasets()
llm_studio.assert_dataset_deletion(dataset_name)
@when(parsers.parse("I create experiment {experiment_name}"))
def create_experiment(llm_studio: LLMStudioPage, experiment_name: str):
llm_studio.create_experiment(experiment_name)
@when(parsers.parse("I tweak data sampling to {value}"))
def tweak_data_sampling(llm_studio: LLMStudioPage, value: str):
llm_studio.data_sample(value)
@when(parsers.parse("I update LLM Backbone to {llm_backbone}"))
def update_llm_backbone(llm_studio: LLMStudioPage, llm_backbone: str):
llm_studio.llm_backbone(llm_backbone)
@when(parsers.parse("I tweak max length prompt to {value}"))
def tweak_max_length_prompt(llm_studio: LLMStudioPage, value: str):
llm_studio.max_length_prompt(value)
@when(parsers.parse("I tweak max length answer to {value}"))
def tweak_max_length_answer(llm_studio: LLMStudioPage, value: str):
llm_studio.max_length_answer(value)
@when(parsers.parse("I tweak max length to {value}"))
def tweak_max_length(llm_studio: LLMStudioPage, value: str):
llm_studio.max_length(value)
@when("I run the experiment")
def run_experiment(llm_studio: LLMStudioPage):
llm_studio.run_experiment()
@then(parsers.parse("I should see the {experiment_name} should finish successfully"))
def view_experiment(llm_studio: LLMStudioPage, experiment_name: str):
llm_studio.view_experiment(experiment_name)
@when(parsers.parse("I delete experiment {experiment_name}"))
def delete_experiment(llm_studio: LLMStudioPage, experiment_name: str):
llm_studio.delete_experiment(experiment_name)
@then(parsers.parse("I should not see the experiment {experiment_name}"))
def assert_experiment_deletion(llm_studio: LLMStudioPage, experiment_name: str):
llm_studio.assert_experiment_deletion(experiment_name)