コード例 #1
0
def driver_setup(config):
    browser = config['BROWSER']
    options = ChromeOptions()
    if browser == "chrome":
        driver = Chrome(options=options)
        logger.info("Opened Chrome window")
    elif browser == "firefox":
        driver = Firefox()
        logger.info("Opened Firefox window")
    else:
        raise Exception(f"Unsupported browser, can't open {browser}")

    driver.maximize_window()
    driver.get(BASE_URL)
    logger.info(f"Go to URL:: {BASE_URL}")
    driver.implicitly_wait(config['WAIT_TIME'])
    yield driver
    login_page = LoginPage(driver)
    cart = CartPage(driver)
    if login_page.verify_logged_in():
        cart.goto()
        if not cart.verify_empty_cart():
            cart.clear_cart()
        login_page.sign_out()
    driver.close()
コード例 #2
0
class TestAddDeliveryAddress(unittest.TestCase):

    root = os.path.dirname(os.path.dirname(__file__))
    data_path = os.path.join(root, "..", "test_data", "AddressRecords.csv")

    @pytest.fixture()
    def setup(self, driver_setup):
        self.login_page = LoginPage(driver_setup)
        self.results_page = ResultsPage(driver_setup)
        self.product_page = ProductPage(driver_setup)
        self.cart = CartPage(driver_setup)
        self.delivery_page = DeliveryPage(driver_setup)
        self.product = "jeans"


    @pytest.fixture()
    def preconditions(self, setup):
        if not self.login_page.verify_logged_in():
            self.login_page.goto()
            self.login_page.login()
        self.results_page.goto_product(self.product)
        self.product_page.add_to_bag(select_type="dropdown")
        self.cart.goto()
        self.cart.goto_checkout_page()
        yield
        self.delivery_page.go_back_to_home_page()


    @pytest.mark.tcid25
    @data(*getCSVData(data_path))
    @unpack
    @pytest.mark.usefixtures("setup", "preconditions")
    def test_add_valid_delivery_details(self, fullAddress, Postcode, PhoneNum):
        self.delivery_page.enter_full_delivery_details(phone=PhoneNum, postcode=Postcode, full_address=fullAddress)
        assert self.delivery_page.verify_valid_delivery_details()
        if AssertionError:
            self.delivery_page.driver.take_screenshot(name="test_add_valid_delivery_details")
コード例 #3
0
class TestPayWithCreditCard(unittest.TestCase):

    root = os.path.dirname(os.path.dirname(__file__))
    data_path = os.path.join(root, "..", "test_data", "CCRecords.csv")

    @pytest.fixture()
    def setup(self, driver_setup):
        self.login_page = LoginPage(driver_setup)
        self.results_page = ResultsPage(driver_setup)
        self.product_page = ProductPage(driver_setup)
        self.cart = CartPage(driver_setup)
        self.payment_page = PaymentPage(driver_setup)
        self.delivery_page = DeliveryPage(driver_setup)
        self.product = "jeans"


    @pytest.fixture()
    def preconditions(self, setup):
        self.login_page.goto()
        self.login_page.login()
        self.results_page.goto_product(self.product)
        self.product_page.add_to_bag(select_type="dropdown")
        self.cart.goto()
        self.cart.goto_checkout_page()
        self.delivery_page.enter_full_delivery_details()


    @data(*getCSVData(data_path))
    @unpack
    @pytest.mark.tcid30
    @pytest.mark.usefixtures("setup", "preconditions")
    def test_pay_with_valid_card(self, ccNum, ccCVV, ccExp):
        self.payment_page.place_order(payment_options="card", curd_num=ccNum,
                                      expiry_date=ccExp, cvv=ccCVV)
        assert self.payment_page.verify_successful_payment()
        if AssertionError:
            self.delivery_page.driver.take_screenshot(name="test_pay_with_valid_card")