diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..568b6e1
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..494d9bf
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/python_selenium_1.iml b/.idea/python_selenium_1.iml
new file mode 100644
index 0000000..7c9d48f
--- /dev/null
+++ b/.idea/python_selenium_1.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Homework/chromedriver b/Homework/chromedriver
new file mode 100755
index 0000000..df7565d
Binary files /dev/null and b/Homework/chromedriver differ
diff --git a/Homework/cup.py b/Homework/cup.py
new file mode 100644
index 0000000..2084c78
--- /dev/null
+++ b/Homework/cup.py
@@ -0,0 +1,15 @@
+class Cup:
+ def __init__(self, cups):
+ self.cups = cups
+
+
+ def cup_oz_convert(self):
+ return 8 * self.cups
+
+
+ def cup_tablespoon_convert(self):
+ return 16 * self.cups
+
+
+ def cup_gallon_convert(self):
+ return 0.25 * self.cups
diff --git a/Homework/cups_converter.py b/Homework/cups_converter.py
new file mode 100644
index 0000000..6e75095
--- /dev/null
+++ b/Homework/cups_converter.py
@@ -0,0 +1,25 @@
+from cup import Cup
+
+# def test_cup_oz_convert():
+# # Arrange
+# cup = Cup(2)
+# # Act
+# result = cup.cup_oz_convert()
+# # Assert
+# assert result == 16
+#
+# def test_cup_tablespoon_convert():
+# # Arrange
+# cup = Cup(3)
+# # Act
+# result = cup.cup_tablespoon_convert()
+# # Assert
+# assert result == 48
+#
+# def test_cup_gallon_convert():
+# # Arrange
+# cup = Cup(5)
+# # Act
+# result = cup.cup_gallon_convert()
+# # Assert
+# assert result == 1.25
\ No newline at end of file
diff --git a/Homework/offers_menu.py b/Homework/offers_menu.py
new file mode 100644
index 0000000..6afbfda
--- /dev/null
+++ b/Homework/offers_menu.py
@@ -0,0 +1,90 @@
+import pytest
+from selenium import webdriver
+from selenium.webdriver.support.ui import WebDriverWait
+import time
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.common.by import By
+
+class TestOffersMenu:
+
+ @pytest.fixture()
+ def setup(self):
+ global driver
+ global wait
+ driver = webdriver.Chrome(executable_path="./chromedriver")
+ wait = WebDriverWait(driver,5)
+ driver.get("https://testkwidos.tk/")
+ yield
+ time.sleep(5)
+ driver.quit()
+
+ @pytest.mark.usefixtures("setup")
+ def test_offers(self):
+ offers = wait.until(EC.presence_of_element_located((By.XPATH,"//*[text()='OFFERS']")))
+ offers.click()
+
+ first_caret = wait.until(EC.presence_of_element_located((By.XPATH,"//span[contains(@class, 'caret')][position() = 1]")))
+ first_caret.click()
+
+ air_check = wait.until(EC.presence_of_element_located((By.XPATH, "//*[text()='Air conditioning']/preceding-sibling::div")))
+ air_check.click()
+
+ exit = driver.find_element_by_xpath("//span[@class='pi pi-times']")
+ exit.click()
+
+ second_caret = driver.find_element_by_xpath("//span[@class = 'ui-dropdown-trigger-icon ui-clickable pi pi-caret-down']")
+ second_caret.click()
+
+ state = driver.find_element_by_xpath('//li/span[text() = "California"]')
+ state.click()
+
+ house_text = wait.until(EC.presence_of_element_located((By.XPATH,"//*[contains(text(),'house')]")))
+ assert house_text.text == "house", "Text should be 'house'"
+
+ air_text = wait.until(EC.presence_of_element_located((By.XPATH,"//*[contains(text(),'Air conditioning')]")))
+ assert air_text.text == "Air conditioning", "Text should be 'Air conditioning'"
+
+ card = driver.find_element_by_xpath("//div[@class='card card-shape__green']")
+ background = card.value_of_css_property("background-color")
+
+ assert background == "rgba(224, 241, 222, 1)", "Color should be 'rgba(224, 241, 222, 1)'"
+
+
+
+ @pytest.mark.usefixtures("setup")
+ def test_drop_select(self):
+ offers = wait.until(EC.presence_of_element_located((By.XPATH, "//*[text()='OFFERS']")))
+ offers.click()
+
+ second_caret = wait.until(EC.presence_of_element_located((By.XPATH, "//span[@class = 'ui-dropdown-trigger-icon ui-clickable pi pi-caret-down']")))
+ second_caret.click()
+
+ states = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//div[@class='ui-dropdown-items-wrapper']/ul/li/span")))
+
+ for state in states:
+ if state.text == 'Wyoming':
+ state.click()
+ selected_option = state.text
+ break
+
+ assert selected_option == 'Wyoming', "Selected option should be Wyoming"
+
+
+
+ @pytest.mark.usefixtures("setup")
+ def test_blog_scroll_down(self):
+ blog = wait.until(EC.presence_of_element_located((By.XPATH, "//*[text()='BLOG']")))
+ blog.click()
+
+ driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
+
+ bottom_text = wait.until(EC.presence_of_element_located((By.XPATH, "//*[text()='Kwidos is the place for new businesses']")))
+
+ assert bottom_text.text == 'KWIDOS IS THE PLACE FOR NEW BUSINESSES', 'Text should be "KWIDOS IS THE PLACE FOR NEW BUSINESSES"'
+
+
+
+
+
+
+
diff --git a/Homework/page_objects/base_page.py b/Homework/page_objects/base_page.py
new file mode 100644
index 0000000..477e913
--- /dev/null
+++ b/Homework/page_objects/base_page.py
@@ -0,0 +1,6 @@
+from selenium.webdriver.support.ui import WebDriverWait
+
+class BasePage:
+ def __init__(self,driver):
+ self.driver = driver
+ self.wait = WebDriverWait(driver, 5)
\ No newline at end of file
diff --git a/Homework/page_objects/blog_page.py b/Homework/page_objects/blog_page.py
new file mode 100644
index 0000000..a86e2a6
--- /dev/null
+++ b/Homework/page_objects/blog_page.py
@@ -0,0 +1,20 @@
+from page_objects.base_page import BasePage
+from selenium.webdriver.support import expected_conditions as ec
+from selenium.webdriver.common.by import By
+
+
+class BlogPage(BasePage):
+ def __init__(self, driver):
+ super().__init__(driver)
+
+ def blogs_count(self):
+ blogs = self.wait.until(ec.visibility_of_all_elements_located((By.XPATH, "//span[@class='label label-danger']")))
+ for blog in blogs:
+ print(blog.text)
+ return len(blogs)
+
+
+
+
+
+
diff --git a/Homework/page_objects/consumer.py b/Homework/page_objects/consumer.py
new file mode 100644
index 0000000..d9e77b7
--- /dev/null
+++ b/Homework/page_objects/consumer.py
@@ -0,0 +1,7 @@
+class Consumer():
+ def __init__(self, first_name, last_name, phone, email, password):
+ self.first_name = first_name
+ self.last_name = last_name
+ self.phone = phone
+ self.email = email
+ self.password = password
\ No newline at end of file
diff --git a/Homework/page_objects/how_it_works_page.py b/Homework/page_objects/how_it_works_page.py
new file mode 100644
index 0000000..8e21332
--- /dev/null
+++ b/Homework/page_objects/how_it_works_page.py
@@ -0,0 +1,33 @@
+from page_objects.base_page import BasePage
+from selenium.webdriver.support import expected_conditions as ec
+from selenium.webdriver.common.by import By
+import time
+
+
+class HowItWorksPage(BasePage):
+ def __init__(self, driver):
+ super().__init__(driver)
+
+ @property
+ def first_title(self):
+ return self.wait.until(ec.presence_of_element_located((By.XPATH, "//*[contains(text(),'Here’s what you can do as a Guest User')]")))
+
+ @property
+ def first_screenshot(self):
+ return self.wait.until(ec.element_to_be_clickable((By.XPATH, "(//img[@style='cursor: pointer'])[1]")))
+
+ @property
+ def close_image(self):
+ return self.wait.until(ec.presence_of_element_located((By.XPATH, "//div[@class='inside close-image']")))
+
+ @property
+ def image_on_screen(self):
+ return self.wait.until(ec.visibility_of_all_elements_located((By.XPATH,"//img[@id = 'current-image']")))
+
+ def open_screenshot(self):
+ self.first_title.click()
+ self.first_screenshot.click()
+
+ def close_screenshot(self):
+ self.close_image.click()
+
diff --git a/Homework/page_objects/landing_page.py b/Homework/page_objects/landing_page.py
new file mode 100644
index 0000000..b6de327
--- /dev/null
+++ b/Homework/page_objects/landing_page.py
@@ -0,0 +1,63 @@
+from Homework.page_objects.offers_page import OffersPage
+from Homework.page_objects.sign_in_page import SignInPage
+from Homework.page_objects.blog_page import BlogPage
+from Homework.page_objects.how_it_works_page import HowItWorksPage
+from selenium.webdriver.common.action_chains import ActionChains
+from selenium.webdriver.support import expected_conditions as ec
+from selenium.webdriver.common.by import By
+from page_objects.base_page import BasePage
+import time
+
+class LandingPage(BasePage):
+ def __init__(self, driver):
+ super().__init__(driver)
+
+ @property
+ def offers(self):
+ return self.wait.until(ec.element_to_be_clickable((By.XPATH,"//*[text()='OFFERS']")))
+
+ @property
+ def sign_in(self):
+ return self.wait.until(ec.element_to_be_clickable((By.XPATH,"//*[text()='SIGN IN']")))
+
+ @property
+ def blog(self):
+ return self.wait.until(ec.element_to_be_clickable((By.XPATH, "//*[text()='BLOG']")))
+
+ @property
+ def how_it_works(self):
+ return self.wait.until(ec.element_to_be_clickable((By.XPATH, "//*[text()='HOW IT WORKS']")))
+
+ def open(self):
+ self.driver.get("https://testkwidos.tk/")
+
+ def open_offers(self):
+ self.offers.click()
+ return OffersPage(self.driver)
+
+ def open_sign_in(self):
+ self.sign_in.click()
+ return SignInPage(self.driver)
+
+ def open_blog(self):
+ self.blog.click()
+ return BlogPage(self.driver)
+
+ def open_how_it_works(self):
+ self.how_it_works.click()
+ return HowItWorksPage(self.driver)
+
+ @property
+ def menu_items_list(self):
+ return self.wait.until(ec.visibility_of_all_elements_located((By.XPATH,"//a//p")))
+
+ def hover(self):
+ for item in self.menu_items_list:
+ print('\nItem:', item.text,'\nColor before',item.value_of_css_property('color'))
+ ActionChains(self.driver).move_to_element(item).perform()
+ print('Color after', item.value_of_css_property('color'))
+
+
+
+
+
diff --git a/Homework/page_objects/offers_page.py b/Homework/page_objects/offers_page.py
new file mode 100644
index 0000000..d7120bd
--- /dev/null
+++ b/Homework/page_objects/offers_page.py
@@ -0,0 +1,89 @@
+
+from page_objects.base_page import BasePage
+from selenium.webdriver.support import expected_conditions as ec
+from selenium.webdriver.common.by import By
+import time
+
+class OffersPage(BasePage):
+ def __init__(self, driver):
+ super().__init__(driver)
+
+ @property
+ def dropdown_service_type(self):
+ return self.wait.until(ec.visibility_of_element_located(
+ (By.CSS_SELECTOR, ".ui-multiselect-trigger-icon.ui-clickable.pi.pi-caret-down")))
+
+ @property
+ def dropdown_service_close(self):
+ return self.driver.find_element_by_css_selector(".ui-multiselect-close.ui-corner-all")
+
+ @property
+ def dropdown_state(self):
+ return self.driver.find_element_by_css_selector(".ui-dropdown-trigger-icon.ui-clickable.pi.pi-caret-down")
+
+ @property
+ def dropdown_county(self):
+ return self.driver.find_element_by_xpath("(//*[@class='ui-multiselect-trigger-icon ui-clickable pi pi-caret-down'])[2]")
+
+ @property
+ def dropdown_county_close(self):
+ return self.driver.find_element_by_css_selector(".pi.pi-times")
+
+ @property
+ def title(self):
+ return self.wait.until(ec.visibility_of_any_elements_located((By.CSS_SELECTOR,"h3")))
+
+ @property
+ def status(self):
+ return self.wait.until(ec.visibility_of_any_elements_located((By.XPATH, "//p[text()='Accepting bids']")))
+
+ @property
+ def service(self):
+ return self.wait.until(ec.visibility_of_any_elements_located((By.XPATH, "//p[contains(text(),'Air conditioning')]")))
+
+ @property
+ def originated_by(self):
+ return self.wait.until(ec.visibility_of_any_elements_located((By.CSS_SELECTOR, "//p[text()='Home Owner']")))
+
+ @property
+ def r_letter(self):
+ return self.wait.until(ec.visibility_of_any_elements_located((By.XPATH, "//*[@class='job-site-code job-site-code__color--green'][text()='R']")))
+
+ @property
+ def all_counties(self):
+ return self.wait.until(ec.visibility_of_element_located((By.XPATH,"(//*[@class='ui-chkbox-box ui-widget ui-corner-all ui-state-default'])[1]")))
+
+ def choose_service_type(self, service):
+ self.dropdown_service_type.click()
+ service_type = self.wait.until(ec.visibility_of_element_located((By.XPATH,f"//*[text()='{service}']/preceding-sibling::div")))
+ service_type.click()
+ self.dropdown_service_close.click()
+
+ def choose_state(self,state):
+ self.dropdown_state.click()
+ state = self.driver.find_element_by_xpath(f"//span[text()='{state}']")
+ state.click()
+
+ def choose_all_counties(self):
+ self.dropdown_county.click()
+ time.sleep(2)
+ self.all_counties.click()
+ self.dropdown_county_close.click()
+
+ def is_title_exist(self):
+ return len(self.title) == 1
+
+ def is_status_exist(self):
+ return len(self.status) == 1
+
+ def is_service_exist(self):
+ return len(self.title) == 1
+
+ def is_originated_by_exist(self):
+ return len(self.title) == 1
+
+ def is_r_letter_exist(self):
+ return len(self.title) == 1
+
+
+
diff --git a/Homework/page_objects/sign_in_page.py b/Homework/page_objects/sign_in_page.py
new file mode 100644
index 0000000..9aaec4b
--- /dev/null
+++ b/Homework/page_objects/sign_in_page.py
@@ -0,0 +1,42 @@
+from page_objects.base_page import BasePage
+from selenium.webdriver.support import expected_conditions as ec
+from selenium.webdriver.common.by import By
+
+
+class SignInPage(BasePage):
+ def __init__(self, driver):
+ super().__init__(driver)
+
+ @property
+ def email(self):
+ return self.wait.until(ec.presence_of_element_located((By.ID, "email")))
+
+ @property
+ def password(self):
+ return self.driver.find_element_by_id("password")
+
+ @property
+ def submit_button(self):
+ return self.driver.find_element_by_xpath("//button[@type='submit']")
+
+ @property
+ def show_psswd(self):
+ return self.driver.find_element_by_xpath("//i[@class='fa fa-eye']")
+
+ def get_consumer(self):
+ return self.wait.until(ec.presence_of_element_located((By.XPATH, "//span[@class='user-name-individual']")))
+
+ def login(self, email, password, first_name, last_name):
+ self.email.send_keys(email)
+ self.password.send_keys(password)
+ self.show_psswd.click()
+ self.submit_button.click()
+ # consumer_name = self.get_consumer().text
+ # consumer_name.strip()
+ # print(consumer_name)
+ #
+ # assert consumer_name == f"{first_name} {last_name}"
+
+
+
+
diff --git a/Homework/pet.json b/Homework/pet.json
new file mode 100644
index 0000000..f026885
--- /dev/null
+++ b/Homework/pet.json
@@ -0,0 +1,18 @@
+{
+ "id": 100200300,
+ "category": {
+ "id": 0,
+ "name": "rabbits"
+ },
+ "name": "Cowboy",
+ "photoUrls": [
+ "https://kidszoo.org/wp-content/uploads/2015/11/bunny-rabbit.jpg"
+ ],
+ "tags": [
+ {
+ "id": 1,
+ "name": "rabbit"
+ }
+ ],
+ "status": "available"
+}
\ No newline at end of file
diff --git a/Homework/tests/order.json b/Homework/tests/order.json
new file mode 100644
index 0000000..10aab05
--- /dev/null
+++ b/Homework/tests/order.json
@@ -0,0 +1,8 @@
+{
+ "id": 111222333444555,
+ "petId": 555333,
+ "quantity": 5,
+ "shipDate": "2020-03-03T04:15:28.811Z",
+ "status": "placed",
+ "complete": true
+}
diff --git a/Homework/tests/pet.json b/Homework/tests/pet.json
new file mode 100644
index 0000000..3edcee6
--- /dev/null
+++ b/Homework/tests/pet.json
@@ -0,0 +1,18 @@
+{
+ "id":99332222555,
+ "category":{
+ "id":0,
+ "name":"cats"
+ },
+ "name":"Anfisa new new",
+ "photoUrls":[
+ "https://icatcare.org/app/uploads/2018/07/Thinking-of-getting-a-cat.png"
+ ],
+ "tags":[
+ {
+ "id":1,
+ "name":"kittens"
+ }
+ ],
+ "status":"available"
+}
\ No newline at end of file
diff --git a/Homework/tests/test_blog.py b/Homework/tests/test_blog.py
new file mode 100644
index 0000000..8c34aeb
--- /dev/null
+++ b/Homework/tests/test_blog.py
@@ -0,0 +1,20 @@
+import pytest
+from selenium import webdriver
+from Homework.page_objects.landing_page import LandingPage
+
+
+class TestBlog:
+ @pytest.fixture()
+ def test_setup(self):
+ global driver
+ driver = webdriver.Chrome(executable_path="/Users/lanapaulikava/PycharmProjects/python_selenium_1/Homework/chromedriver")
+ yield
+ driver.quit()
+
+ @pytest.mark.skip
+ def test_count_blogs(self, test_setup):
+ landing_page = LandingPage(driver)
+ landing_page.open()
+ blog_page = landing_page.open_blog()
+ count = blog_page.blogs_count()
+ assert count == 12, "Number of blogs should be 12!"
diff --git a/Homework/tests/test_consumer_login.py b/Homework/tests/test_consumer_login.py
new file mode 100644
index 0000000..e377ced
--- /dev/null
+++ b/Homework/tests/test_consumer_login.py
@@ -0,0 +1,24 @@
+import pytest
+from selenium import webdriver
+from Homework.page_objects.landing_page import LandingPage
+from Homework.page_objects.consumer import Consumer
+
+import time
+
+class TestLogin:
+ @pytest.fixture()
+ def test_setup(self):
+ global driver
+ driver = webdriver.Chrome(executable_path="/Users/lanapaulikava/PycharmProjects/python_selenium_1/Homework/chromedriver")
+
+ yield
+ driver.quit()
+
+ @pytest.mark.skip
+ def test_consumer_login(self, test_setup):
+ landing_page = LandingPage(driver)
+ consumer = Consumer('Test', 'Testlp', '9999999999', 'lana.test1@yahoo.com', 'new@20passworD')
+ landing_page.open()
+ sign_in = landing_page.open_sign_in()
+ sign_in.login(consumer.email, consumer.password, consumer.first_name, consumer.last_name)
+ time.sleep(5)
\ No newline at end of file
diff --git a/Homework/tests/test_how_it_works.py b/Homework/tests/test_how_it_works.py
new file mode 100644
index 0000000..b73a369
--- /dev/null
+++ b/Homework/tests/test_how_it_works.py
@@ -0,0 +1,22 @@
+import pytest
+from selenium import webdriver
+from Homework.page_objects.landing_page import LandingPage
+
+
+class TestHowItWorks:
+ @pytest.fixture()
+ def test_setup(self):
+ global driver
+ driver = webdriver.Chrome(executable_path="/Users/lanapaulikava/PycharmProjects/python_selenium_1/Homework/chromedriver")
+ yield
+ driver.quit()
+
+ @pytest.mark.skip
+ def test_open_close_screenshot(self, test_setup):
+ landing_page = LandingPage(driver)
+ landing_page.open()
+ how_it_works = landing_page.open_how_it_works()
+ how_it_works.open_screenshot()
+ how_it_works.close_screenshot()
+
+
\ No newline at end of file
diff --git a/Homework/tests/test_landing_menu.py b/Homework/tests/test_landing_menu.py
new file mode 100644
index 0000000..f06b597
--- /dev/null
+++ b/Homework/tests/test_landing_menu.py
@@ -0,0 +1,19 @@
+import pytest
+from selenium import webdriver
+from Homework.page_objects.landing_page import LandingPage
+
+
+class TestLandingMenu:
+ @pytest.fixture()
+ def test_setup(self):
+ global driver
+ driver = webdriver.Chrome(executable_path="/Users/lanapaulikava/PycharmProjects/python_selenium_1/Homework/chromedriver")
+ yield
+ driver.quit()
+
+ def test_hover_over_menu(self, test_setup):
+ landing_page = LandingPage(driver)
+ landing_page.open()
+ landing_page.hover()
+
+
diff --git a/Homework/tests/test_offers.py b/Homework/tests/test_offers.py
new file mode 100644
index 0000000..44e08bd
--- /dev/null
+++ b/Homework/tests/test_offers.py
@@ -0,0 +1,28 @@
+import pytest
+from selenium import webdriver
+from Homework.page_objects.landing_page import LandingPage
+
+
+class TestLandingPage:
+ @pytest.fixture()
+ def test_setup(self):
+ global driver
+ driver = webdriver.Chrome(executable_path="/Users/lanapaulikava/PycharmProjects/python_selenium_1/Homework/chromedriver")
+ yield
+ driver.quit()
+
+ @pytest.mark.skip
+ def test_offers(self, test_setup):
+ landing_page = LandingPage(driver)
+ landing_page.open()
+ offers = landing_page.open_offers()
+ offers.choose_service_type("Air conditioning")
+ offers.choose_service_type("Appliance installation")
+ offers.choose_state("California")
+ offers.choose_all_counties()
+ assert offers.is_title_exist()
+ assert offers.is_status_exist()
+ assert offers.is_service_exist()
+ assert offers.is_originated_by_exist()
+ assert offers.is_r_letter_exist()
+
diff --git a/Homework/tests/test_orders_api.py b/Homework/tests/test_orders_api.py
new file mode 100644
index 0000000..8595fda
--- /dev/null
+++ b/Homework/tests/test_orders_api.py
@@ -0,0 +1,48 @@
+import requests
+import pytest
+import json
+
+class TestApiOrders:
+
+ base_url = "http://petstore.swagger.io/v2/"
+
+ def get_order_url(self, id):
+ url = f"{self.base_url}store/order/{id}"
+ return url
+
+ def json_data(self):
+ filename = "order.json"
+ with open(filename) as file:
+ return json.load(file)
+
+
+ def test_post_pet(self):
+ payload = json.dumps(self.json_data(), indent=4)
+ headers = {'Content-type': 'application/json'}
+ response = requests.post(self.base_url + "store/order", headers=headers, data=payload)
+ res_dict = json.loads(response.text)
+
+ assert response.status_code == 200
+ assert res_dict["id"] == 111222333444555
+ assert res_dict["quantity"] == 5
+ assert res_dict["status"] == "placed"
+
+
+ def test_get_order(self):
+ response = requests.get(self.get_order_url(111222333444555))
+ res_json = response.json()
+
+ assert response.status_code == 200
+ assert res_json["id"] == 111222333444555
+ assert res_json["petId"] == 555333
+ assert res_json["quantity"] == 5
+ assert res_json["status"] == "placed"
+
+
+
+ def test_del_order(self):
+ response = requests.delete(self.get_order_url(111222333444555))
+ assert response.status_code == 200
+
+ response = requests.get(self.get_order_url(111222333444555))
+ assert response.status_code == 404
diff --git a/Homework/tests/test_pets_api.py b/Homework/tests/test_pets_api.py
new file mode 100644
index 0000000..1cc7442
--- /dev/null
+++ b/Homework/tests/test_pets_api.py
@@ -0,0 +1,59 @@
+import requests
+import pytest
+import json
+
+class TestApiPets:
+
+ base_url = "http://petstore.swagger.io/v2/"
+
+ def get_pet_url(self, id):
+ url = f"{self.base_url}pet/{id}"
+ return url
+
+ def json_data(self):
+ filename = "pet.json"
+ with open(filename) as file:
+ return json.load(file)
+
+
+ def test_post_pet(self):
+ payload = json.dumps(self.json_data(), indent=4)
+ headers = {'Content-type': 'application/json'}
+ response = requests.post(self.base_url + "pet", headers=headers, data=payload)
+ res_dict = json.loads(response.text)
+
+ assert response.status_code == 200
+ assert res_dict["id"] == 99332222555
+ assert res_dict["name"] == "Anfisa new new"
+
+
+ def test_get_pet(self):
+ response = requests.get(self.get_pet_url(99332222555))
+ res_json = response.json()
+
+ assert response.status_code == 200
+ assert res_json["id"] == 99332222555
+ assert res_json["category"]["name"] == "cats"
+ assert res_json["name"] == "Anfisa new new"
+
+
+
+ def test_del_pet(self):
+ response = requests.delete(self.get_pet_url(99332222555))
+ assert response.status_code == 200
+
+ response = requests.get(self.get_pet_url(99332222555))
+ assert response.status_code == 404
+
+ json_response = json.loads(response.text)
+ assert json_response["code"] == 1
+ assert json_response["type"] == "error"
+ assert json_response["message"] == "Pet not found"
+
+
+
+
+
+
+
+
diff --git a/chromedriver b/chromedriver
new file mode 100755
index 0000000..df7565d
Binary files /dev/null and b/chromedriver differ