Size: a a a

2021 May 16

E

Eugene in PiterPy Meetup
там and по именам модулей/классов/функций тестов работает, а тут поиск по коду внутри теста
источник

DB

Dima Boger in PiterPy Meetup
Да, search уникальная фишка (хоть я и не понимаю зачем она нужна 🌝)
источник

E

Eugene in PiterPy Meetup
Я тоже так считаю, что фикстуры, которые где-то как-то там магически находятся и подставляются в тесты - это перебор. Пайчарм пытается их искать и автодополнять по ним, но получается плохо.
источник

Б

Боброний in PiterPy Meetup
А как вот это тайпчекать?

@fixture
def user():
   return User(name="darren")
   
@test("the user is called darren")
def _(u=user):
   assert u.name == "darren"
источник

Б

Боброний in PiterPy Meetup
И даже в примерах вместо понятных имён используются сокращения типа u
источник

AK

Alex 🌼 Karantinsky... in PiterPy Meetup
Что конечно классно
источник

AK

Alex 🌼 Karantinsky... in PiterPy Meetup
@test("the user is called darren")
def _(u
ser=user_without_permissions):
   assert u
ser.name == "darren"
источник

AK

Alex 🌼 Karantinsky... in PiterPy Meetup
Ну вы поняли )
источник

Б

Боброний in PiterPy Meetup
Function 'user_without_permissions' does not have an attribute 'name'
источник

DB

Dima Boger in PiterPy Meetup
даёшь DI как в fastapi (или даже лучше)
источник

E

Eugene in PiterPy Meetup
кстати у них в доке параметризацию предлагают делать через функцию each, странно, что в readme через цикл
@test("eval returns expected output")
def _(
 test_input=each("3+5", "2+4", "6*9"),
 expected=each(8, 6, 42),
):
 assert eval(test_input) == expected
источник

E

Eugene in PiterPy Meetup
источник

DB

Dima Boger in PiterPy Meetup
фикстуры в параметрайзе интересненько кстати
источник

E

Eugene in PiterPy Meetup
Да, пайтест так не умеет.
источник

Б

Боброний in PiterPy Meetup
+
источник

Б

Боброний in PiterPy Meetup
Но можно научить, кстати
источник

Б

Боброний in PiterPy Meetup
Даже интересно стало, как удобнее
источник
2021 May 17

Б

Боброний in PiterPy Meetup
Как бы вы писали (в pytest)?


@pytest.mark.parametrize('foo', (1, 2, 3))
@pytest.mark.parametrize('bar', (9, 8, 7))
def test_something(foo, bar):
   pass



@each
def test_something(foo=each(1, 2, 3), bar=each(9, 8, 7)):
   pass
источник

AN

Aleksey Nakoryakov in PiterPy Meetup
Первый вариант. Понятней взаимосвязь параметров друг с другом, вот честно
источник

Б

Боброний in PiterPy Meetup
Соглашусь
источник