Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 582новые вакансии за сутки·92 562вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 220
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 105
  • Облачные технологии14 068
  • QA вакансии3 460
  • Backend вакансии2 098
  • Инженер данных1 796
  • Продакт-менеджер1 248

Разработка

  • Android1 866
  • iOS1 699
  • Fullstack вакансии979
  • AI вакансии951
  • Frontend вакансии742
  • Mobile вакансии44

По стеку

  • Go8 651
  • Java6 544
  • Node.js2 018
  • .NET1 719
  • Kotlin1 623
  • Rust1 453
  • C#709
  • PHP683
  • C++571

DevOps и инфраструктура

  • Kubernetes7 761
  • DevOps вакансии6 057
  • Linux-инфраструктура5 492
  • Terraform / IaC4 259
  • CI/CD3 240
  • Мониторинг и Observability1 782
  • SRE565
  • Кибербезопасность450

Аналитика и данные

  • Data Scientist1 127
  • Бизнес-аналитик925
  • Аналитик данных845
  • Системный аналитик154

Другие направления

  • Проджект-менеджер611
  • UI/UX дизайн145
  • Ручное тестирование14

По регионам

  • Вакансии в США43 686
  • Вакансии в Европе23 684
  • Вакансии в Канаде4 413
  • Работа в России3 909

По формату

  • Удалённые вакансии73 889
  • Релокация в США43 686
  • Гибридная работа12 392
  • Офисная работа7 088

По уровню

  • Senior вакансии42 236
  • Middle вакансии20 545
  • Junior вакансии6 653

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab138 вакансий
  • Celonis39 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме PythonВсе вопросы
PythonJuniorLive-кодинг

Что такое parametrize в pytest?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

@pytest.mark.parametrize создаёт N тестов из одного — для каждого набора входных данных. Аргументы: имена параметров (строка или tuple) и список значений. Поддерживает ids для читаемых имён, pytest.param с marks, stacking для cartesian product, indirect через fixtures.

Базовый синтаксис

import pytest

@pytest.mark.parametrize(
    ("raw", "expected"),
    [
        ("  Ada  ", "ada"),
        ("Guido", "guido"),
        ("", ""),
    ],
)
def test_normalize(raw, expected):
    assert raw.strip().lower() == expected

pytest развернёт это в три отдельных тест-кейса. В отчёте:

test_normalize[  Ada  -ada] PASSED
test_normalize[Guido-guido] PASSED
test_normalize[-]           PASSED

Кастомные ids

@pytest.mark.parametrize(
    ("payload", "status"),
    [
        ({"email": "a@x"}, 200),
        ({}, 422),
        ({"email": "bad"}, 422),
    ],
    ids=["valid", "missing_email", "invalid_email"],
)
def test_create(payload, status, client):
    response = client.post("/users", json=payload)
    assert response.status_code == status

В выводе: test_create[valid], test_create[missing_email] — сразу ясно, что упало.

pytest.param с marks и id

@pytest.mark.parametrize("value", [
    1,
    pytest.param(2, marks=pytest.mark.slow),
    pytest.param(3, marks=pytest.mark.xfail(reason="bug #123")),
    pytest.param(4, id="big-number"),
])
def test_thing(value):
    assert value > 0

Так можно пропускать конкретный случай, помечать ожидаемо падающий, давать кастомный id.

Stacking — cartesian product

@pytest.mark.parametrize("locale", ["en", "ru"])
@pytest.mark.parametrize("currency", ["USD", "EUR"])
def test_format(locale, currency):
    ...
# 4 теста: (en,USD), (en,EUR), (ru,USD), (ru,EUR)

Indirect parametrization

Значения проходят через fixture перед попаданием в тест:

@pytest.fixture
def engine(request):
    return create_engine(request.param)

@pytest.mark.parametrize("engine", ["sqlite:///:memory:", "postgresql://..."], indirect=True)
def test_with_db(engine):
    assert engine is not None

Когда parametrize, когда несколько тестов

  • parametrize — одна и та же логика, разные данные: парсинг, валидация, граничные случаи.
  • Отдельные тесты — если каждый случай требует разной setup-логики или ассертов разной природы.
  • property-based testing (hypothesis) — когда нужно покрыть огромное пространство значений.

Подводные камни

  • Несоответствие числа имён параметров и элементов tuple — CollectError.
  • Сложные объекты в качестве значений — pytest сгенерирует id вида obj0, obj1. Дайте свои ids.
  • Слишком много случаев в одном тесте — лог становится нечитаемым; разбейте по логически разным аспектам.
  • Mutable объект в списке — изменение в одном тесте просочится в другие; копируйте.
  • Параметризация над сетевыми/БД-fixtures без indirect=True — pytest не сможет получить значение.
  • Уникальность ids: если генерируемые ids одинаковы, pytest добавит индексы — потеряете читаемость.
  • Stacking над slow-фикстурой умножает время — иногда лучше один тест с loop внутри.

Частые вопросы на собеседовании

  • Что такое truthy и falsy значения в Python?
  • Когда использовать threading?
  • Что такое type hints и зачем они нужны?
  • Как работает yield?

Типичные ошибки

  • Дублировать одинаковые тесты вместо parametrize.
  • Путать порядок параметров и значений.
  • Не знать, что каждый набор — отдельный case.

Что проверяет интервьюер

  • Пишет parametrize синтаксически правильно.
  • Объясняет отдельные cases.
  • Знает ids для читаемости.

Как вы знаете этот вопрос?

Проверить себя по теме Python →

Источники

  • https://docs.pytest.org/en/stable/

Связанные темы

Pythonedge-casestest-design