Size: a a a

testing_in_python

2020 November 05

IS

Idi Suda in testing_in_python
бля чувак
@dataclass
class Url:
   my_url : str= bla
   by_second_url: str = blabla

conftest.py
def config(env):
   if env == 'bla':
       yield Url()


def test_something(config):
   ya_tebe_shas_suka = rasskaju(pro=dataclassy, url=config.my_second_url)
источник

BK

Boris Krutskih in testing_in_python
😂😂😂
источник

T

Tishka17 in testing_in_python
Idi Suda
бля чувак
@dataclass
class Url:
   my_url : str= bla
   by_second_url: str = blabla

conftest.py
def config(env):
   if env == 'bla':
       yield Url()


def test_something(config):
   ya_tebe_shas_suka = rasskaju(pro=dataclassy, url=config.my_second_url)
Датакласс без тайпхинтов не работает же
источник

BK

Boris Krutskih in testing_in_python
ну там можно вроде my_url: str = test
источник

IS

Idi Suda in testing_in_python
поправил
источник

SV

Sergei Vasilchenko in testing_in_python
Idi Suda
бля чувак
@dataclass
class Url:
   my_url : str= bla
   by_second_url: str = blabla

conftest.py
def config(env):
   if env == 'bla':
       yield Url()


def test_something(config):
   ya_tebe_shas_suka = rasskaju(pro=dataclassy, url=config.my_second_url)
зачет ахахах
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
@pytest.fixture
def sign_in_as_super_admin(set_config):
   from pages.amd_dashboard.sign_in import LoginPage as AmdUser
   url = {'beta': ADM_URL, 'alpha': AMD_URL_ALPHA}
        navigate_to(url[set_config.env])
   AmdUser().login_action(login=AMD_USER, password=AMD_PASSWORD)
а каким образом мне тогда делать проверку на navigate_to?

@dataclass
class Url:
   # Beta
   AMD_URL: str = AMD_URL

   # Alpha
   AMD_URL_ALPHA: str = AMD_URL_ALPHA


@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield Url()
   if set_config.env == 'beta':
       yield Url()


@pytest.fixture
def sign_in_as_super_admin(config):
   from pages.amd_dashboard.sign_in import LoginPage as AmdUser

   # url = {'beta': Urls.AMD_URL, 'alpha': Urls.AMD_URL_ALPHA}
   navigate_to(config.AMD_URL)
   AmdUser().login_action(login=AMD_USER, password=AMD_PASSWORD)
источник

IS

Idi Suda in testing_in_python
Boris Krutskih
а каким образом мне тогда делать проверку на navigate_to?

@dataclass
class Url:
   # Beta
   AMD_URL: str = AMD_URL

   # Alpha
   AMD_URL_ALPHA: str = AMD_URL_ALPHA


@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield Url()
   if set_config.env == 'beta':
       yield Url()


@pytest.fixture
def sign_in_as_super_admin(config):
   from pages.amd_dashboard.sign_in import LoginPage as AmdUser

   # url = {'beta': Urls.AMD_URL, 'alpha': Urls.AMD_URL_ALPHA}
   navigate_to(config.AMD_URL)
   AmdUser().login_action(login=AMD_USER, password=AMD_PASSWORD)
Возвращай в конфиге не Url(), а в зависимости от энва Url.AMD_URL_ALPHA. Я чуть неправильно написал)
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
Возвращай в конфиге не Url(), а в зависимости от энва Url.AMD_URL_ALPHA. Я чуть неправильно написал)
ну получается такая шляпа)))
@dataclass
class Url:
   # Beta
   AMD_URL: str = AMD_URL

   # Alpha
   AMD_URL_ALPHA: str = AMD_URL_ALPHA


@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield Url.AMD_URL_ALPHA
   if set_config.env == 'beta':
       yield Url.AMD_URL


@pytest.fixture
def sign_in_as_super_admin(config):
   from pages.amd_dashboard.sign_in import LoginPage as AmdUser

 
   navigate_to(config)

   AmdUser().login_action(login=AMD_USER, password=AMD_PASSWORD)

ну немогу допетрать как теперь дохера урлов так организовать?)
источник

IS

Idi Suda in testing_in_python
у тебя они одинаковые? в смысле пути. Различаются только по бэйз урлу? Типа http://blabla.com/api/some/method
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
у тебя они одинаковые? в смысле пути. Различаются только по бэйз урлу? Типа http://blabla.com/api/some/method
да
источник

BK

Boris Krutskih in testing_in_python
ща целую картину покажу
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
у тебя они одинаковые? в смысле пути. Различаются только по бэйз урлу? Типа http://blabla.com/api/some/method
как-то так  у меня
@dataclass
class Url:
   # Beta
   AMD_URL: str = AMD_URL
   REMASTERED_URL: str = REMASTERED_URL
   CUSTOMER_DASHBOARD_URL: str = CUSTOMER_DASHBOARD_URL
   PM_URL: str = PM_URL

   # Alpha
   AMD_URL_ALPHA: str = AMD_URL_ALPHA


@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield Url.AMD_URL_ALPHA
   if set_config.env == 'beta':
       yield Url.AMD_URL, Url.REMASTERED_URL, Url.CUSTOMER_DASHBOARD_URL, Url.PM_URL
источник

BK

Boris Krutskih in testing_in_python
ну и собсно у каждого своя фикстура на логин
источник

BK

Boris Krutskih in testing_in_python
вот здесь как быть то)) как урлы правильно дёргать допустим из конфига beta когда уролов дохера
источник

IS

Idi Suda in testing_in_python
Ну ебани вот типа такого

@dataclass
class Url:
   AMD_URL: str = AMD_URL
   REMASTERED_URL: str = REMASTERED_URL
   CUSTOMER_DASHBOARD_URL: str = CUSTOMER_DASHBOARD_URL
   PM_URL: str = PM_URL

class Base:
   def __init__(self, url: str=None):
       self.base_url = url

   @classmethod
   def alfa(cls):
       return cls('alfa')

   @classmethod
   def beta(cls):
       return cls('beta')

class UrlContainer:
   def __init__(self, url_storage: Url, builder: Base):
       for a, b in url_storage.__dict__.items():
           setattr(self, a, '/'.join([builder.base_url, b]))


storage = Url()
all_paths = UrlContainer(storage, Base.alfa())



и в фикстуре

@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield
Base.alfa()
   if set_config.env == 'beta':
       yield
Base.beta()
источник

BK

Boris Krutskih in testing_in_python
Idi Suda
Ну ебани вот типа такого

@dataclass
class Url:
   AMD_URL: str = AMD_URL
   REMASTERED_URL: str = REMASTERED_URL
   CUSTOMER_DASHBOARD_URL: str = CUSTOMER_DASHBOARD_URL
   PM_URL: str = PM_URL

class Base:
   def __init__(self, url: str=None):
       self.base_url = url

   @classmethod
   def alfa(cls):
       return cls('alfa')

   @classmethod
   def beta(cls):
       return cls('beta')

class UrlContainer:
   def __init__(self, url_storage: Url, builder: Base):
       for a, b in url_storage.__dict__.items():
           setattr(self, a, '/'.join([builder.base_url, b]))


storage = Url()
all_paths = UrlContainer(storage, Base.alfa())



и в фикстуре

@pytest.fixture
def config(set_config):
   if set_config.env == 'alpha':
       yield
Base.alfa()
   if set_config.env == 'beta':
       yield
Base.beta()
ну это я проделал) а каким образом он то передается в navigate_to? https://dpaste.org/tLKi
источник

BK

Boris Krutskih in testing_in_python
я потом типа беру в фикстуру логина, подставляю фикстуру config и в navigate передаю config
источник

IS

Idi Suda in testing_in_python
config.url
источник

BK

Boris Krutskih in testing_in_python
аааа
источник