コード例 #1
0
def test_delete_product(browser):
    LoginPage(browser).login()
    AdminPage(browser).go_to_product_page()\
        .new_product_choice(3)
    AdminPage(browser).delete_product()\
        .alert_accept()
    ProductsAddAndEditPage(browser).should_be_success_alert()
コード例 #2
0
ファイル: test_admin.py プロジェクト: emuyi/test-dev-skills
class TestAdmin:
    def setup_method(self):
        self.admin_page = AdminPage()

    def test_add_member(self):
        """测试管理员页面添加成员功能"""
        # 1. save_and_add  todo 这块的 assert 按理说应该通过弹窗 text 判断,但比较难确定是弹窗还是其他的js动态效果
        # add_member_page = self.admin_page.add_member().save_and_add('bill3', 'bill3', '12345678114', '2')
        # 2. save
        add_member_page = self.admin_page.add_member().save(
            'bill4', 'bill4', '12345678115', '2')
        assert 'bill4' in add_member_page.member_info
        # 3. cancel
        # self.admin_page.add_member().cancel()

    def test_import_contact(self):
        """测试管理员页面导入通讯录功能"""
        contact_page = self.admin_page.import_contact().upload_contact_file(
            r'C:\Users\MUYI\Desktop\test_wework\通讯录批量导入模板.xlsx')
        assert '张三3' in contact_page.member_info  # todo 这块应当读xlsx文件比对数据

    def test_send_message(self):
        """测试管理员页面消息群发功能"""
        msg_list = self.admin_page.send_message().send(*msg_info)
        assert '快递' in msg_list.messages

    def teardown_method(self):
        time.sleep(2)
        self.admin_page.quit()
コード例 #3
0
def test_rebuild_category(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.go_to_categories()
    categories_page = CategoriesPage(driver=login_page.driver)
    categories_page.click_rebuild_button()
    assert categories_page.success_alert_element
コード例 #4
0
    def setup_method(self, method):
        super().setup_method(method)

        lp = LoginPage(self.driver)
        lp.login(page=self.login_url_http, **ADMIN_USER)

        ap = AdminPage(self.driver, self.ts)
        ap.open(self.base_url)
コード例 #5
0
 def __init__(self):
     self.driver = webdriver.Chrome()
     self.driver.maximize_window()
     self.home_page = HomePage(self.driver)
     self.create_account_page = CreateAccountPage(self.driver)
     self.admin_panel_login_page = AdminPanelLoginPage(self.driver)
     self.admin_page = AdminPage(self.driver)
     self.customer_list_page = CustomerListPage(self.driver)
     self.countries_page = CountriesPage(self.driver)
     self.geo_zones_page = GeoZonesPage(self.driver)
     self.catalog_page = CatalogPage(self.driver)
コード例 #6
0
def test_cancel_delete_product(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.go_to_products()
    products_page = ProductsPage(driver=login_page.driver)
    products_page.click_add_product_button()
    products_page.set_new_product_required_fields("iphone", "phones", "11pro")
    products_page.click_submit_button()
    assert products_page.success_alert_element
    products_page.check_product_in_table('iphone')
    products_page.delete_product_from_table('iphone')
    products_page.check_product_is_not_in_table('iphone')
コード例 #7
0
def test_add_new_category(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.go_to_categories()
    categories_page = CategoriesPage(driver=login_page.driver)
    categories_page.click_add_category_button()
    categories_page.set_category_required_fields("1test category", "tag")
    categories_page.click_submit_button()
    assert categories_page.success_alert_element
    categories_page.check_category_in_table('1test category')
    categories_page.delete_category_from_table('1test category')
    categories_page.accept_delete_category_alert()
    categories_page.check_category_is_not_in_table('1test category')
コード例 #8
0
    def test_admin_shop_count(self):
        """ Tests that admin user has access to admin API and that admin page shows correct number of shops
        """

        # Check that logged admin user has access to admin api
        lp = LoginPage(self.driver)
        lp.login(user='******', password='******', page=self.login_url_http)
        status_code, content = self.api_get_shop_counts()

        assert status_code == 200
        assert content == {'etsyShops': 1, 'userShops': 1}

        # Check that admin page displays the shop count value correctly
        ap = AdminPage(self.driver, self.ts)
        ap.open(self.base_url)
        assert ap.etsy_shop_count() == '1'
コード例 #9
0
def test_edit_product(browser):
    LoginPage(browser).login()
    AdminPage(browser)\
        .go_to_product_page()\
        .edit_product(2)
    ProductsAddAndEditPage(browser)\
        .general_info("", "Ноутбук", "", "", "", "")\
        .option_required_no_select()\
        .save()\
        .should_be_success_alert()
コード例 #10
0
def test_modify_product(login_page):
    ProductQueries().add_product("iphone", "11pro")
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.go_to_products()
    products_page = ProductsPage(driver=login_page.driver)
    # products_page.click_add_product_button()
    # products_page.set_new_product_required_fields("iphone", "phones", "11pro")
    # products_page.click_submit_button()
    # assert products_page.success_alert_element
    products_page.click_edit_button('iphone')
    products_page.set_new_product_required_fields("samsung", "phones", "s20")
    products_page.click_submit_button()
    assert products_page.success_alert_element
    assert ProductQueries().get_product("samsung")
    ProductQueries().check_product_deleted("iphone", "11pro")
    products_page.check_product_in_table('samsung')
    products_page.check_product_is_not_in_table('iphone')
    products_page.delete_product_from_table('samsung')
    products_page.check_product_is_not_in_table('samsung')
コード例 #11
0
 def __init__(self, browser):
     self.logger = logging.getLogger("PAGE NAME")
     self.tests_logger = logging.getLogger("TEST NAME")
     self.common = CommonItems(self.logger, browser)
     self.admin = AdminPage(self.logger, browser)
     self.catalogue = CataloguePage(self.logger, browser, self.common)
     self.admin_products = AdminProductsPage(self.logger, browser,
                                             self.admin, self.common)
     self.main = MainPage(self.logger, browser, self.common)
     self.product = ProductPage(self.logger, browser)
     self.search_result = SearchResultPage(self.logger, browser,
                                           self.common)
コード例 #12
0
def test_add_product(browser):
    LoginPage(browser).login()
    AdminPage(browser)\
        .go_to_product_page()\
        .add_product()
    ProductsAddAndEditPage(browser)\
        .general_info("HA_РОБОфон 2000", "Лучший в мире смартфон", "Робофон 2000", "111", "A", "Notebook")\
        .data_info("2000-ъы")\
        .get_monitor_category_link()\
        .option_add_delivery_date()\
        .save()\
        .should_be_success_alert()
コード例 #13
0
def test_create_new_user(browser):
    start_page = StartPage(browser)
    start_page.open_base_page()
    start_page.start_page_is_open()
    start_page.open_login_page()

    login_page = LoginPage(browser)
    login_page.login_page_is_open()
    login_page.login('admin', 'password')

    admin_page = AdminPage(browser)
    admin_page.admin_page_is_open()
    admin_page.create_new_user(username, userpass)

    db = DataBase()
    db.check_user_in_db(username)

    admin_page.log_out()
    login_page.login_page_is_open()

    login_page.login(username, userpass)
    admin_page.admin_page_is_open()
    db.delete_user(username)
コード例 #14
0
def test_login(browser):
    start_page = StartPage(browser)
    start_page.open_base_page()
    start_page.start_page_is_open()
    first = start_page.get_first_post_src()
    start_page.open_login_page()
    login_page = LoginPage(browser)
    login_page.login_page_is_open()
    login_page.login(su_name, su_pass)
    admin_page = AdminPage(browser)
    admin_page.admin_page_is_open()
    admin_page.delete_post()
    admin_page.open_start_page()
    second = start_page.get_first_post_src()

    assert first != second, 'error second img equal first img'
コード例 #15
0
ファイル: test_admin.py プロジェクト: emuyi/test-dev-skills
 def setup_method(self):
     self.admin_page = AdminPage()
コード例 #16
0
def test_create_new_user(browser, get_data_for_admin_login, get_data_for_add_user, db_connect):
    with allure.step("Open app and log in as admin"):
        admin_page = AdminPage(browser)
        admin_page.open_admin_login_page()
        admin_username, admin_passwd = get_data_for_admin_login
        admin_page.login(admin_username, admin_passwd)

    with allure.step("Create user"):
        admin_user_page = UsersAdminPage(browser)
        admin_user_page.click_on_button_from_left_admin_page_block("Users")
        new_username, new_passwd = get_data_for_add_user
        admin_user_page.add_new_user(new_username, new_passwd)
        admin_user_page.set_staff_status_to_user()

    with allure.step("Check is user in db"):
        connect = db_connect
        db = DataBase(connect)
        db.is_user_in_auth_table(new_username)

    with allure.step("Log in as new user"):
        admin_page.click_on_button_from_top_toolbar("Log out")
        admin_page.click_on_button_from_top_toolbar("Django administration")
        admin_page.login(new_username, new_passwd)
        admin_page.is_login_successful(new_username)
コード例 #17
0
    def test_admin_shop_search(self):
        """ Tests admin function for searching a shop and showing its details
        """

        expected_search_results = [[
            '2', '14458117', 'GetvelaTest2', 'check_circle', 'navigate_next'
        ]]

        expected_shop_owners = [['1', 'user1', 'navigate_next']]

        # search the shop
        ap = AdminPage(self.driver, self.ts)
        ap.go_to_subpage('Shops')
        ap.search('Getv')

        # check search results
        assert ap.get_search_results(
        ) == expected_search_results, 'Shop wasn\'t found as expected'

        # goto shop details and check them
        ap.go_to_search_shop_details('GetvelaTest2')

        assert ap.get_shop_name() == 'GetvelaTest2'
        assert ap.get_shop_id() == '2'
        assert ap.get_shop_channel_id() == '14458117'
        assert ap.get_shop_sync_status() == 'up_to_date'
        data = run_sql('HIVE', 'select_shop_last_sync', True)
        expected_last_sync = arrow.get(
            data[0][2]).to('local').format('MMM D, YYYY h:mm A')
        assert ap.get_shop_last_sync() == expected_last_sync
        assert ap.get_shop_invalid() == 'false'
        assert ap.get_shop_error() == ''

        # check counts of listings
        assert ap.get_shop_number_of_listings('active') == '3'
        assert ap.get_shop_number_of_listings('draft') == '0'
        assert ap.get_shop_number_of_listings('inactive') == '0'

        # check shop owners
        assert ap.get_shop_owners() == expected_shop_owners
コード例 #18
0
ファイル: settings_page.py プロジェクト: Dnnd/homework-4
 def to_admin_page(self) -> AdminPage:
     path = self.driver.find_element_by_xpath(
         self.ADMIN_ITEM).get_attribute('href')
     admin_page = AdminPage(self.driver, path=path)
     admin_page.open()
     return AdminPage(self.driver, path=path)
コード例 #19
0
def test_admin_login(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    assert admin_page.user_profile_element
コード例 #20
0
def test_go_to_products(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.go_to_products()
    products_page = ProductsPage(driver=login_page.driver)
    assert products_page.main_table_element
コード例 #21
0
def test_admin_logout(login_page):
    login_page.login('user', 'bitnami1')
    admin_page = AdminPage(driver=login_page.driver)
    admin_page.logout()
    assert login_page.login_button_element
コード例 #22
0
class Application:
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.home_page = HomePage(self.driver)
        self.create_account_page = CreateAccountPage(self.driver)
        self.admin_panel_login_page = AdminPanelLoginPage(self.driver)
        self.admin_page = AdminPage(self.driver)
        self.customer_list_page = CustomerListPage(self.driver)
        self.countries_page = CountriesPage(self.driver)
        self.geo_zones_page = GeoZonesPage(self.driver)
        self.catalog_page = CatalogPage(self.driver)

    def quit(self):
        self.driver.quit()

    def admin_login(self, admin):
        if self.admin_panel_login_page.open().is_on_this_page():
            self.admin_panel_login_page.username_input.send_keys(
                admin.username)
            self.admin_panel_login_page.password_input.send_keys(
                admin.password)
            self.admin_panel_login_page.submit_login()
        return

    def logout(self):
        self.home_page.logout()

    def login_new_user(self, customer):
        self.home_page.email_input.send_keys(customer.email)
        self.home_page.password_input.send_keys(customer.password)
        self.home_page.login_button.click()

    def all_main_menu_items(self):
        items = self.admin_page.number_of_menu_items()
        for i in range(0, items):
            menu_items = self.admin_page.menu_items()
            menu_items[i].click()
            sub_items = self.admin_page.number_of_menu_sub_items()
            if sub_items == 0:
                continue
            for j in range(0, sub_items):
                menu_sub_items = self.admin_page.menu_sub_items()
                menu_sub_items[j].click()

    def sorting_countries(self):
        self.countries_page.open()
        number_countries = self.countries_page.number_of_countries()
        countries = self.countries_page.sorting_countries(number_countries)
        self.countries_page.countries_with_zones(countries)

    def sorting_geo_zones(self):
        self.geo_zones_page.open()
        number_geo_zones = self.geo_zones_page.number_of_geo_zones()
        geo_zones = self.geo_zones_page.sorting_geo_zones(number_geo_zones)
        self.geo_zones_page.geo_zones_with_zones(geo_zones)

    def register_new_customer(self, customer):
        self.create_account_page.open()
        self.create_account_page.firstname_input.send_keys(customer.firstname)
        self.create_account_page.lastname_input.send_keys(customer.lastname)
        self.create_account_page.address1_input.send_keys(customer.address)
        self.create_account_page.postcode_input.send_keys(customer.postcode)
        self.create_account_page.city_input.send_keys(customer.city)
        self.create_account_page.select_country(customer.country)
        self.create_account_page.select_zone(customer.zone)
        self.create_account_page.email_input.send_keys(customer.email)
        self.create_account_page.phone_input.send_keys(customer.phone)
        self.create_account_page.password_input.send_keys(customer.password)
        self.create_account_page.confirmed_password_input.send_keys(
            customer.password)
        self.create_account_page.create_account_button.click()

    def add_new_product(self, new_product):
        self.catalog_page.open_add_new_product()
        self.catalog_page.status_enabled.click()
        self.catalog_page.product_name_input.send_keys(
            new_product.product_name)
        self.catalog_page.code_product_input.send_keys(
            new_product.code_product)
        self.catalog_page.product_group_selection()
        self.catalog_page.quantity_input.send_keys(new_product.quantity)
        self.catalog_page.sold_out_status_selection()
        self.catalog_page.image_input.send_keys(new_product.image)
        self.catalog_page.date_valid_from_input.send_keys(
            new_product.date_valid_from)
        self.catalog_page.date_valid_to_input.send_keys(
            new_product.date_valid_to)
        self.catalog_page.open_information()
        self.catalog_page.select_manufacturer_id()
        self.catalog_page.keywords_input.send_keys(new_product.keywords)
        self.catalog_page.short_description_input.send_keys(
            new_product.short_description)
        self.catalog_page.trumbowyg_editor_input.send_keys(
            new_product.trumbowyg_editor)
        self.catalog_page.head_title_input.send_keys(new_product.head_title)
        self.catalog_page.meta_description_input.send_keys(
            new_product.meta_description)
        self.catalog_page.open_prices()
        self.catalog_page.purchase_price_input.send_keys(
            new_product.purchase_price)
        self.catalog_page.currency_selection()
        self.catalog_page.price_usd_input.send_keys(new_product.prices_usd)
        self.catalog_page.price_eur_input.send_keys(new_product.prices_eur)
        self.catalog_page.save_new_product()

    def get_customer_ids(self, customer):
        if self.admin_panel_login_page.open().is_on_this_page():
            self.admin_panel_login_page.username_input.send_keys(
                customer.username1)
            self.admin_panel_login_page.password_input.send_keys(
                customer.password1)
            self.admin_panel_login_page.submit_login()
        return self.customer_list_page.open().get_customer_ids()

    def product_in_the_cart(self):
        self.home_page.open()
        self.home_page.product_selection()

    def clear_to_cart(self):
        self.home_page.open_cart()
        self.home_page.product_removal()

    def opening_new_windows(self):
        self.countries_page.open()
        self.countries_page.opening_the_country_creation_page()
        self.countries_page.opening_new_windows()