IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     11.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Колонка автора

Python уроки: тестирование с помощью unittest

unittest - инструмент для тестирования в Python. Это стандартный модуль для написания юнит-тестов на Python. Unittest это порт JUnit с Java. Иными словами, и в коде модуля, и при написании тестов легко прослеживается ООП стиль, что весьма удобно для тестирования процедур и классов.

Документация доступна по следующим ссылкам: python3python2

В данном инструменте много возможностей: проверки (assert*), декораторы, позволяющие пропустить отдельный тест (@skip, @skipIf) или обозначить сломанные тесты (@expectedFailure) и этим не заканчивается список. Использование assert'ов с лихвой покрывает нужды при написании тестов.

Полезная черта unittest - автоматизированное тестирование. Есть и другие:

  • можно собирать тесты в группы
  • собирать результаты выполнения тестов (например, для отчета)
  • ООП стиль позволяет уменьшить дублирование кода при схожих объектах тестирования

     10.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Статьи

Celery: начинаем правильно

Заметка с советами по работе с Celery в production.

     10.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Колонка автора

Python уроки: Введение в тестирование на Python

Этот урок имеет вводный характер и знакомит с общей информацией о тестировании и простой конструкцией, которая позволяет значительно улучшить Python-код.

Тестирование программного обеспечения (Software Testing) - проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая при конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004]

     09.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Статьи

Сравниваем цены в книжных интернет магазинах c помощью python, pandas и matplotlib

Сегодня мы попробуем найти самый дешевый и самый дорогой интернет магазин книг.
Сравнивать будем бумажные книги, которые есть в наличии. В разных магазинах очень разное количество книг. Где-то менее 1000, а где-то более 200 000 книг. 

     09.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Интересные проекты, инструменты, библиотеки

gmusicapi - неофициальный API для Google Play Music

from gmusicapi import Mobileclient

api = Mobileclient()
api.login('user@gmail.com', 'my-password', Mobileclient.FROM_MAC_ADDRESS)
# => True

library = api.get_all_songs()
sweet_track_ids = [track['id'] for track in library
                   if track['artist'] == 'The Cat Empire']

playlist_id = api.create_playlist('Rad muzak')
api.add_songs_to_playlist(playlist_id, sweet_track_ids)

     08.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Интересные проекты, инструменты, библиотеки

arduinoserial - интерфейс для работы с serial портами на Arduino

import arduinoserial

arduino = arduinoserial.SerialPort('/dev/ttyUSB0', 19200)
print arduino.read_until('\n')
arduino.write('a5050')

     08.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Статьи

Определяем фигуры с помощью OpenCV

Это вторая часть о поиске объектов. Сегодня мы будем использовать контуры чтобы идентифицировать фигуры в изображение.

shape_detection_results

     08.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Статьи

asyncio — Asynchronous I/O, event loop, and concurrency tools — PyMOTW 3

Модуль предоставляет средства для создания параллельных приложений с использованием сопрограмм. 

     08.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Интересные проекты, инструменты, библиотеки

pyqtool - утилита поиска Python кода с помощью jQuery-подобных селекторов

❯ pyq3 'class:extends(IntegerField)' django/forms
django/forms/fields.py:278 class FloatField(IntegerField):
django/forms/fields.py:315 class DecimalField(IntegerField):