Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
/.idea
/environments
/selenium_course
/selenium_course
/oop_python/1oop.py
/oop_python/2.py
2 changes: 2 additions & 0 deletions oop_python/.gitignore.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1oop.py
2.py
23 changes: 23 additions & 0 deletions oop_python/boolean.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
a, b = map(int, input().split())
print(a % 7 == 0 and b % 7 == 0)


x = int(input())
print(5 < x and x <= 19)

a, b = input(), input()
print(a == "awesome" or b == "awesome")

x = int(input())
print(x // 10 > 0 and x // 100 < 1)

print(9 < int(input()) < 100)

def square(number):
return number ** 2

a, b, c = map(square, (map(int, input().split())))
print(a+b==c or a+c==b or b+c==a)

f = sorted(map(int,input().split()))
print(f[0]**2 + f[1]**2 == f[2]**2)
15 changes: 15 additions & 0 deletions oop_python/class_in_python.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# получить атрибуты класса - имя класса.__dict__
# dic = range.__dict__
# for i in dic:
# print(f"{i}:{dic[i]}")

class Person:
age = 44
sex = 'female'
profession = 'teacher'


ira = Person
print(ira.__dict__)
Person.profession
print(getattr(Person, 'sexa'))
19 changes: 19 additions & 0 deletions oop_python/constructor.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
class Point3D:

def __init__(self, x = 0, y = 0, z = 0):
self.x = x
self.y = y
self.z = z
print(self.__dict__)


point = Point3D()
point = Point3D(3)
print("Please, input three int: ")
x, y, z = input(), input(), input()
point2 = Point3D(x, y, z)

dict = point2.__dict__

for i in dict:
print(dict.get(i), end=" ")
7 changes: 7 additions & 0 deletions oop_python/factorial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

print(factorial(2))
12 changes: 12 additions & 0 deletions oop_python/map_function.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# x, y, z = map(int, input().split())
# print(x,y,z)

# n, a, b = map(int, input().split())
# print(n * a * b * 2)
#
# input() возвращает строку (например: "1 2 3")
# split() преобразует строку в list по разделителю - по умолчанию это пробел (результат: ["1", "2" ,"3"])
# map преобразует список в соответствие с функцией - в данном случае int(elem) (результат: [1, 2 , 3]
y = ' ********* '
print('Гвидо%sВан%sРоссум%sTrening' %(5555555,'ttttttt', y), end='-')
print('Основатель', 'Питона', sep='_', end='!')
1 change: 1 addition & 0 deletions selenium_course_from_c_volga/.gitignore.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../
15 changes: 15 additions & 0 deletions selenium_course_from_c_volga/1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
class ToyClass:
def instancemethod(self):
return 'instance method called', self

@classmethod
def classmethod(cls):
return 'class method called', cls

@staticmethod
def staticmethod():
return 'static method called'


new = ToyClass()
print(new.instancemethod(), new.classmethod(), new.staticmethod() )
5 changes: 5 additions & 0 deletions selenium_course_from_c_volga/pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[pytest]
markers =
smoke: marker for smoke tests
regression: marker for regression tests
xfail_strict=true
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ def test_number_2(self):
if __name__ == "__main__":
unittest.main()

# проверка работы команды git diff
# проверка работы команды git diff
43 changes: 43 additions & 0 deletions selenium_course_from_c_volga/test_fixture1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from selenium import webdriver

link = "http://selenium1py.pythonanywhere.com/"


class TestMainPage1():

@classmethod
def setup_class(self):
print("\nstart browser for test suite 1..")
self.browser = webdriver.Chrome()

@classmethod
def teardown_class(self):
print("quit browser for test suite 1..")
self.browser.quit()

def test_guest_should_see_login_link(self):
self.browser.get(link)
self.browser.find_element_by_css_selector("#login_link")

def test_guest_should_see_basket_link_on_the_main_page(self):
self.browser.get(link)
self.browser.find_element_by_css_selector(".basket-mini .btn-group > a")


class TestMainPage2():

def setup_method(self):
print("start browser for test 2..")
self.browser = webdriver.Chrome()

def teardown_method(self):
print("quit browser for test 2..")
self.browser.quit()

def test_guest_should_see_login_link(self):
self.browser.get(link)
self.browser.find_element_by_css_selector("#login_link")

def test_guest_should_see_basket_link_on_the_main_page(self):
self.browser.get(link)
self.browser.find_element_by_css_selector(".basket-mini .btn-group > a")
29 changes: 29 additions & 0 deletions selenium_course_from_c_volga/test_fixture10_XFail.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import pytest
from selenium import webdriver

link = "http://selenium1py.pythonanywhere.com/"


@pytest.fixture(scope="function")
def browser():
print("\nstart browser for test..")
browser = webdriver.Chrome()
yield browser
print("\nquit browser..")
browser.quit()


class TestMainPage1():

def test_guest_should_see_login_link(self, browser):
browser.get(link)
browser.find_element_by_css_selector("#login_link")

def test_guest_should_see_basket_link_on_the_main_page(self, browser):
browser.get(link)
browser.find_element_by_css_selector(".basket-mini .btn-group > a")

@pytest.mark.xfail
def test_guest_should_see_search_button_on_the_main_page(self, browser):
browser.get(link)
browser.find_element_by_css_selector("button.favorite")
64 changes: 64 additions & 0 deletions selenium_course_from_c_volga/test_fixture1_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# file basic_fixtures.py
import pytest


def setup():
print("\t\t\t3 basic setup into module")


def teardown():
print("\t\t\t3 basic teardown into module")


def setup_module(module):
print("\n\t1 module setup")


def teardown_module(module):
print("\t1 module teardown")


def setup_function(function):
print("\t\t2 function setup")


def teardown_function(function):
print("\t\t2 function teardown")


def test_numbers_3_4():
print("\t\t\ttest 3*4")
assert 3 * 4 == 12


def test_strings_a_3():
print("\t\t\ttest a*3")
assert 'a' * 3 == 'aaa'


class TestUM:
def setup(self):
print("\t\t\t\t2.2 basic setup into class")

def teardown(self):
print("\t\t\t\t2.2 basic teardown into class")

def setup_class(cls):
print("\t\t2.0 class setup")

def teardown_class(cls):
print("\t\t2.0 class teardown")

def setup_method(self, method):
print("\t\t\t2.1 method setup")

def teardown_method(self, method):
print("\t\t\t2.1 method teardown")

def test_numbers_5_6(self):
print("\t\t\t\ttest 5*6")
assert 5 * 6 == 30

def test_strings_b_2(self):
print("\t\t\t\ttest b*2")
assert 'b' * 2 == 'bb'
27 changes: 27 additions & 0 deletions selenium_course_from_c_volga/test_fixture2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import pytest
from selenium import webdriver

link = "http://selenium1py.pythonanywhere.com/"

# Мы создадим фикстуру browser, которая будет создавать объект WebDriver.
# Этот объект мы сможем использовать в тестах для взаимодействия с браузером.
# Для этого мы напишем метод browser и укажем, что он является фикстурой с помощью декоратора @pytest.fixture.
# После этого мы можем вызывать фикстуру в тестах, передав ее как параметр.
# По умолчанию фикстура будет создаваться для каждого тестового метода,
# то есть для каждого теста запустится свой экземпляр браузера.
@pytest.fixture
def browser():
print("\nstart browser for test..")
browser = webdriver.Chrome()
return browser


class TestMainPage1():
# вызываем фикстуру в тесте, передав ее как параметр
def test_guest_should_see_login_link(self, browser):
browser.get(link)
browser.find_element_by_css_selector("#login_link")

def test_guest_should_see_basket_link_on_the_main_page(self, browser):
browser.get(link)
browser.find_element_by_css_selector(".basket-mini .btn-group > a")
29 changes: 29 additions & 0 deletions selenium_course_from_c_volga/test_fixture3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import pytest
from selenium import webdriver

link = "http://selenium1py.pythonanywhere.com/"
# надо явно закрывать браузеры после каждого теста.
# Для этого мы можем воспользоваться финализаторами.
# Один из вариантов финализатора — использование ключевого слова Python: yield.
# После завершения теста, который вызывал фикстуру,
# выполнение фикстуры продолжится со строки, следующей за строкой со словом yield:

@pytest.fixture
def browser():
print("\nstart browser for test..")
browser = webdriver.Chrome()
yield browser
# этот код выполнится после завершения теста
print("\nquit browser..")
browser.quit()


class TestMainPage1():
# вызываем фикстуру в тесте, передав ее как параметр
def test_guest_should_see_login_link(self, browser):
browser.get(link)
browser.find_element_by_css_selector("#login_link")

def test_guest_should_see_basket_link_on_the_main_page(self, browser):
browser.get(link)
browser.find_element_by_css_selector(".basket-mini .btn-group > a")
39 changes: 39 additions & 0 deletions selenium_course_from_c_volga/test_fixture5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import pytest
from selenium import webdriver

link = "http://selenium1py.pythonanywhere.com/"

# Для фикстур можно задавать область покрытия фикстур.
# Допустимые значения: “function”, “class”, “module”, “session”.
# Соответственно, фикстура будет вызываться один раз для тестового метода, один раз для класса,
# один раз для модуля или один раз для всех тестов, запущенных в данной сессии.
@pytest.fixture(scope="class")
def browser():
print("\nstart browser for test..")
browser = webdriver.Chrome()
yield browser
print("\nquit browser..")
browser.quit()


# При описании фикстуры можно указать дополнительный параметр autouse=True,
# который укажет, что фикстуру нужно запустить для каждого теста даже без явного вызова:
@pytest.fixture(autouse=True)
def prepare_data():
print()
print("preparing some critical data for every test")

class TestMainPage1():

# вызываем фикстуру в тесте, передав ее как параметр
def test_guest_should_see_login_link(self, browser):
print("start test1")
browser.get(link)
browser.find_element_by_css_selector("#login_link")
print("finish test1")

def test_guest_should_see_basket_link_on_the_main_page(self, browser):
print("start test2")
browser.get(link)
browser.find_element_by_css_selector(".basket-mini .btn-group > a")
print("finish test2")
Loading