Посты с тэгом блог компании otus. онлайн-образование


Тестирование скриншотами

Здравствуйте! Сегодня хочу рассказать о нашем опыте тестирования скриншотами с использованием python, selenium, и Pillow.

Зачем? У нас был довольно большой (~1000) набор тестов на стеке python, pytest, selenium, которые отлично проверяли, что кнопки кликаются, а статистика отправляется (с использованием browserup proxy), но пропускали баги типа таких:  

Читать далее


[Перевод] Новое тестирование фичей в Django 3.2

Пару недель назад Django 3.2 выпустил свой первый альфа-релиз, а финальный релиз выйдет в апреле. Он содержит микс новых возможностей, о которых вы можете прочитать в примечаниях к релизу. Эта статья посвящена изменениям в тестировании, некоторые из которых можно получить на более ранних версиях Django с пакетами backport.

Читать далее


[Перевод] Ускоряем код на Python с помощью Nim

Python — один из самых популярных и доступных языков программирования, но далеко не самый быстрый. Многие создатели библиотек и фреймворков прибегали к использованию расширения на С, чтобы их код работал быстрее, чем код на нативном Python. Этот способ вполне рабочий, но если вы не знакомы с С, сборка мусора и управление памятью станут вашим адом на Земле. И тут на сцену выходит Nim.

Читать далее


[Перевод] Распознаем речь с помощью IBM Speech-to-Text API

Извлекаем разговоры из аудиозаписи с легкостью, используя Python.

В этой статье вы узнаете, как использовать IBM Speech to Text API для распознавания речи из файла аудиозаписи. Мы будем использовать бесплатную версию API, которая имеет некоторые ограничения, такие как, например, длина звукового файла. Подробнее об API я расскажу в этой статье чуть позже. Позвольте мне начать с предоставления вам некоторой справочной информации о применении распознавания речи в нашей повседневной жизни.

Читать далее


[Перевод] Разбираемся с not в Python

В этой статье из серии про синтаксический сахар в Python я займусь на первый взгляд очень простым синтаксисом, но на самом деле, чтобы разобраться в механике его работы, нужно погрузиться вглубь на несколько слоев. Мы будем говорить о not.

Определение звучит на первый взгляд очень просто:

Оператор not выдает True, если его аргумент False, и False в противоположном случае.

Достаточно просто, не так ли? Но когда вы начинаете разбираться в том, что считать «истинным» или «ложным», вы быстро понимаете, что есть приличное количество вещей, подходящих под эти определения.

(Как и в других статьях этой серии, код на С предназначен для тех, кто хочет пройти путь «по хлебным крошкам», но вы можете пропустить его, если хотите)



[Перевод] Самая лучшая практика: работа с path в Python

В последней статье мы использовали рекурсивную функцию размером менее 10 строк для решения проблемы сканирования папок и ранжирования файлов по дате изменения и размеру.

Теперь я подниму планку и покажу, как можно было сделать лучше.

Читать далее


Modern Reverse Engineering: TTD

Обратная разработка сегодня это достаточно трудоемкий процесс в первую очередь потому, что в период с 2000х по 2020 годы вышло в свет много языков программирования, которые ставили перед собой задачу стать интуитивными и простыми для изучения, безопасными и в то же время эффективными для решения поставленных задач. Что значит интуитивными и простыми? Это когда не нужно тратить время на синтаксически сложные для запоминания конструкции языка и писать чистый код, который не нужно разбирать часами, чтобы понять что он делает.

Статья расскажет о способах анализа современных языков программирования на примере Crackmes. Среди исследуемых языков: 

•   Go

•   Python

•   Rust

Опишем некоторые проблемы обратной разработки связанных с каждым из перечисленных языков программирования.

Читать далее


[Перевод] Настройка GitHub Actions для автоматизированного тестирования средствами Python в конвейере CI/CD

В этой статье описываются операции по тестированию клиентской части приложения с помощью TestProject и pytest, а также способы выполнения тестов через GitHub Actions. Если у вас общедоступный репозиторий GitHub, все это будет совершенно бесплатно. Эта возможность хорошо подходит для изучения TestProject и выполнения интеграционного тестирования в ваших проектах. Если вы хотите выполнять эти операции из закрытого репозитория, то GitHub предлагает очень большое количество бесплатных минут, см. https://github.com/features/actions#pricing-details.

Читать далее


[Перевод] Как сделать ваш код на Python быстрым и асинхронным с Sanic

Всем привет, в этой статье я расскажу о создании простых асинхронных проектов на фреймворке Sanic.

Читать далее


[Перевод] Itertools в Python

Модуль itertools стандартизирует основной набор быстрых эффективных по памяти инструментов, которые полезны сами по себе или в связке с другими инструментами. Вместе они формируют «алгебру итераторов», которая позволяет лаконично и эффективно создавать специализированные инструменты на чистом Python.

Модуль itertools находится в стандартной библиотеке Python.

Модуль представляет следующие типы итераторов: 

- Бесконечные итераторы;

- Конечные итераторы;

- Комбинаторные генераторы.

Читать далее