def test_001_search_box(): """ * test search box * - Get alerts page. - Use search box with not exist value, should return that value doesn't exist. - Use Search box with exist value, should return right value. """ base.wait_until_element_located(driver, "alerts_table") is True rows_count = len(base.get_table_rows(driver, "alerts_table")) base.info( " Use search box with not exist value, should return that value doesn't exist." ) alerta_search_box = base.find_element(driver, "alerta_search_box") random_value = base.rand_string() alerta_search_box.send_keys(random_value) elem = base.find_element(driver, "no_alerts") assert "There is no alerts matching your criteria" == elem.text base.info(" Use Search box with exist value, should return right value") alerta_search_box.clear() alerta_search_box.send_keys(" ") base.wait_until_element_located(driver, "alerts_table") is True ramdom_row_number = random.randint(1, rows_count) table_row = base.get_table_row(driver, "alerts_table", ramdom_row_number - 1) alerta_search_box.clear() alerta_search_box.send_keys(table_row[7].split()[2]) alerta_table_after_search = base.get_table_rows(driver, "alerts_table") for i in range(len(alerta_table_after_search)): assert table_row[7].split()[2] in base.get_table_row( driver, "alerts_table", i)[7]
def test07_filters_in_workers_page(filter_type, state): """ * test filters [Success, Failure, New, waiting, Halted ] in workers page.* - Get workers page. - Get filtered workers number from summary table. - Click filter , Check that it return right filtered workers only . """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url base.info("Get filtered workers number from summary table.") head_elements = base.get_table_head_data(driver, "summary_table") column = [i for i, element in enumerate(head_elements) if element == filter_type][0] summary_table = base.find_element(driver, "summary_table") table_body = summary_table.find_element_by_tag_name("tbody") filtered_workers = int(table_body.find_elements_by_tag_name("td")[column].text) base.info("Click filter , Check that it return right filtered workers only .") filter_element = base.find_element(driver, "{}_filter".format(filter_type)) filter_element.click() if filtered_workers == 0: assert "There is no Workers matching your criteria" == base.find_element(driver, "no_workers").text else: table_rows = base.get_table_rows(driver, "workers_table") for i in range(len(table_rows)): assert state == base.get_table_row(driver, "workers_table", i)[1] assert len(table_rows) == filtered_workers
def test_003_filters_in_jobs_page(filter_type, state): """ * test filters [Success, Failure, New, Running, Halted ] in jobs page.* - Get jobs page. - Get filter jobs number from summary table. - Click filter , Check that it return right filtered jobs only . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "summary_table") is True base.info("Get succfilter ess jobs number from summary table.") head_elements = base.get_table_head_data(driver, "summary_table") job_head = "{} Tasks".format(filter_type) column = [i for i, element in enumerate(head_elements) if element == job_head][0] summary_table = base.find_element(driver, "summary_table") table_body = summary_table.find_element_by_tag_name("tbody") filtered_jobs = int(table_body.find_elements_by_tag_name("td")[column].text) base.info("Click filter , Check that it return right filtered jobs only .") filter_element = base.find_element(driver, "{}_filter".format(filter_type)) filter_element.click() if filtered_jobs == 0: assert "There is no Jobs matching your criteria" == base.find_element(driver, "no_jobs").text else: table_rows = base.get_table_rows(driver, "jobs_table") for i in range(len(table_rows)): assert state == base.get_table_row(driver, "jobs_table", i)[3] assert len(table_rows) == filtered_jobs
def test_004_job_details(): """ - Get jobs page. - Pick up one of jobs[J] . - Check details of the job [J] . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.info("Pick up one of jobs[J].") base.wait_until_element_located(driver, "jobs_table") is True table_rows = base.get_table_rows(driver, "jobs_table") job_index = random.randint(1, len(table_rows)) job_data = base.get_table_row(driver, "jobs_table", job_index) base.info("check details of the job [J]") details_button = table_rows[job_index - 1].find_element_by_tag_name("button") details_button.click() time.sleep(10) items_list = driver.find_element_by_class_name("list-group") items = items_list.find_elements_by_tag_name("li") item_data = [item.get_attribute("textContent") for item in items] state = [item[item.find(":") + 2 :] for item in item_data if "State" in item][0] assert job_data[3] == state
def test05_check_summary_table_head_elements_in_workers_page(): """ * Check summary table head elements * - Get all head values and check it is as expected . """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url base.info("Get all head values and check it is as expected ") expected_head_elements = ["Total", "New", "Success", "Failure", "Waiting", "Halted"] head_elements = base.get_table_head_data(driver, "summary_table") assert set(expected_head_elements) == set(head_elements)
def test01_blogs_headers(): """ * Get blog bage. * - Check heads and exist of blogs description. """ base.info("Check heads and exist of blogs description..") header = blogs.find_element_by_tag_name("header") assert "Blogs" == header.text blog = get_random_blog() text = blog.find_element_by_class_name("post-details") assert text is True
def test_002_delete_alerts(): """ * test delete alerts. * - Get alerts page. - Use delete button, check that all alerts has been deleted. """ base.info("Use delete button, check that all alerts has been deleted.") delete_button = base.find_element(driver, "delete_alerts") delete_button.click() base.find_element(driver, "confirm_delete_alert").click() assert "All the alerts have been deleted." == base.find_element( driver, "no_alerts").text
def test04_blog_posts_navigation(): """ * Test navigation bar elements [about, contact, tags]. * - Get one of blogs posts . - Test [About, Contact, Tags] in navigation bar elements [about]. """ base.info("Get one of blogs posts") base.open_random_blog() assertIn("posts", driver.current_url) base.info("Test about in navigation bar elements") about_elem = base.find_element(driver, "blog_about_page") about_elem.click() assert "about" in driver.current_url base.info("Test contact in navigation bar elements") contact_elem = base.find_element(driver, "blog_contact_page") contact_elem.click() assert "contactus" in driver.current_url base.info("Test tags in navigation bar elements") tags_elem = base.find_element(driver, "blog_tags_page") tags_elem.click() assert "tags" in driver.current_url
def test03_search_page_close(): """ * test close icon in search page * - Get blog page . - Open search page. - Use close icon on search page, Check it redirect to home page again successfully. """ base.info(" Open search page.") base.find_element("blogs_home_search").click() base.info("Use close icon on search page, Check it redirect to home page again successfully.") close_icon = base.find_element(driver, "blogs_search_close") close_icon.click() assert base.wait_until_element_located(driver, "blogs_list") is True
def test06_ALL_filter_in_workers_page(): """ * test ALL filter * - Get workers page. - Click All filter , Check that it return all workers. - Check that it has same value as all workers value in summary table. """ base.find_element(driver, "workers_bage").click() assert "workers" in driver.current_url rows_count = len(base.get_table_rows(driver, "workers_table")) base.info("Click All filter , Check that it return all jobs.") All_element = base.find_element(driver, "ALL_filter") All_element.click() rows_count_after_all = len(base.get_table_rows(driver, "workers_table")) assert rows_count_after_all == rows_count
def test_002_ALL_filter_in_jobs_page(): """ * test ALL filter * - Get jobs page. - Click All filter , Check that it return all jobs. - Check that it has same value as all jobs value in summary table. """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "jobs_table") is True base.info("Click All filter , Check that it return all jobs.") rows_count = len(base.get_table_rows(driver, "jobs_table")) All_element = base.find_element(driver, "ALL_filter") All_element.click() rows_count_after_all = len(base.get_table_rows(driver, "jobs_table")) assert rows_count_after_all == rows_count
def test_06_categories_pages(icon): """ * Test categories pages [ facebook, instagram, github,twitter]. * - Get one of blogs posts . - Click on one of icons check it redirect to right page. """ base.info("oprn one of blogs posts") open_random_blog() assert "posts" in driver.current_url categories_pages = base.find_element(driver, "categories_pages") base.info("Click on {} icon check it redirect to right page.".format(icon)) if icon == "facebook": categories_pages.find_element_by_link_text(icon).click() else: categories_pages.find_element_by_class_name("fa-{}".format(icon)).click() assert icon in driver.current_url
def test02_blog_search_box(): """ * test search in home bage in blogs package. * - Get blog bage . - Use Search box in home bage. - Check search box works successfully. - Try to get one of results, should works successfully. """ base.info("Use Search box in home bage.") base.find_element(driver, "blogs_home_search").click() search_box = base.find_element(driver, "blogs_search_box") search_box.send_keys("test") search_icon = base.find_element(driver, "blogs_icon_search") search_icon.click() base.info("Check search box works successfully. ") search_results = base.find_element(driver, "blogs_search_result") results = search_results.find_elements_by_tag_name("li") results_text = base.find_element(driver, "blogs_result_text") assert str(len(results)) in results_text base.info("Try to get one of results, should works successfully.") if results: random_post = random.choice(results) tmp = random_post.text post_name = tmp[tmp.find(":") + 2 :] random_post.find_element_by_tag_name("a").click() assert post_name in driver.current_url
def test05_tags(tags_location): """ * Test Tags in tags page and blog page. * - Get one of blogs posts . - Get tags page, get one of tags[TAG]. - Check that posts have [TAG]. """ base.info("Open one of blogs posts") base.open_random_blog() assert "posts" in driver.current_url base.info("Get tags page, get one of tags[TAG].") if tags_location == "blogs_tags": base.find_element(driver, "blog_tags_page").click() base.info("Check that posts have [TAG].") tmp = base.find_element(tags_location) tags = tmp.find_element_by_tag_name("li") if tags: tag = random.choice(tags) tag_name = tag.text tag.click() assert tag_name in driver.current_url posts_with_tags = base.find_element(driver, "posts_with_tags") post = random.choice(posts_with_tags.find_elements_by_class_name("post")) post_name = post.text post.click() assert post_name in driver.current_url assert tag_name in driver.page_source
def test01_check_summary_table_head_elements(): """ * Check summary table head elements * - Get all head values and check it is as expected . """ base.wait_until_element_located(driver, "Jobs_bage") is True base.find_element(driver, "Jobs_bage").click() assert "tasks" in driver.current_url base.wait_until_element_located(driver, "summary_table") is True base.info("Get all head values and check it is as expected ") expected_head_elements = [ "Total Tasks", "Success Tasks", "Failure Tasks", "New Tasks", "Running Tasks", "Halted Tasks", ] head_elements = base.get_table_head_data(driver, "summary_table") assert set(expected_head_elements) == set(head_elements)
import base def check(number:int) -> bool: """ Проверка просто число или нет :param number: Число :return: True если просто, False если нет """ list = [] for num in range(2, number): if (number % num) == 0: list.append(num) return not bool(list) @base.timer def foo(number:int) -> int: """ :return: самый большой делитель number, являющийся простым числом """ response = None for num in range(2, math.ceil(math.sqrt(number))): if (number % num) == 0 and check(num): response = num return response if __name__ == '__main__': base.info(3) foo(600851475143) #6857
""" Каждый следующий элемент ряда Фибоначчи получается при сложении двух предыдущих. Начиная с 1 и 2, первые 10 элементов будут: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Найдите сумму всех четных элементов ряда Фибоначчи, которые не превышают четыре миллиона. """ import base @base.timer def foo(sum: int) -> int: """ :return: сумму четных элемнтов ряда Фибоначчи, которые не превышают sum """ number = 2 temp = 1 response = 2 while number + temp < sum: temp, number = number, number + temp if (number & 1) == 0: # Если число четное response += number return response if __name__ == '__main__': base.info(2) foo(4000000) # 4613732
Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел равна 23. Найдите сумму всех чисел меньше 1000, кратных 3 или 5. """ import base @base.timer def foo(number: int, multiple: list) -> int: """ Находит сумму всех чисел меньше number и кратные одному из multiple :param number: До какого числа считать :param multiple: Набор кратных чисел :return: Сумму всех чисел """ list = set() for num in range(1, number + 1): i = 0 for number_multiple in multiple: if (num % int(number_multiple)) == 0: i += 1 list.add(num) break return sum(list) if __name__ == '__main__': base.info(1) foo(1000, [3, 5]) # 234168
def check(number: int) -> bool: """ Проверка является ли число палиндромом :param number: Число :return: True если является, False если не является """ number = str(number) return bool(number == number[::-1]) @base.timer def foo(length: int) -> int: """ Выводит самое больше число-палиндром путем умножением двух n-значных чисел :param length: длинна числа (n) :return: Число-палиндром """ list = [0] for a in range(10**(length - 1), 10**length): for b in range(10**(length - 1), 10**length): c = a * b if check(c) and max(list) < c: list.append(c) return max(list) if __name__ == '__main__': base.info(4) foo(3) # 906609