У меня неплохое знание основ Python, но хорошо бы более регулярно изучать и более продвинутые темы.

Правила:

  • Каждый день уделять изучению Python 1 час
  • Хотя бы половина времени должны тратиться на код (или час в день)
  • После каждой сессии коротко описать прогресс и что именно я делала в этот день
  • В репозитории каждый день должен быть хотя бы один коммит
  • Можно прогулять один день в неделю, но нельзя два дня подряд
  • Все прогулы не учитываются

Пока запланировала пройтись по двум книгам/темам:

Day 1: January 4, 2018

Сегодня начала читать “Python Testing with pytest”.

Время: 1 час чтение

Day 2: January 5, 2018

Продолжаю читать “Python Testing with pytest”. Как и вчера, пробую все примеры кода и тестов по ходу чтения.

Время: 1 час чтение

Day 3: January 6, 2018

Продолжаю читать “Python Testing with pytest”. Закончила 2 раздел “Writing test functions” и сделала задания после раздела.

Время: 25 мин чтение, 40 минут код

Code: Day 3 code

Day 4: January 7, 2018

Продолжаю читать “Python Testing with pytest”. Закончила 3 раздел “pytest Fixtures”. Завтра буду делать задания по разделу.

Время: 1 час чтение

Day 5: January 8, 2018

Сделала задания по 3 разделу “Python Testing with pytest” и начала читать 4 раздел.

Время: 20 мин чтение, 40 минут код

Day 6: January 9, 2018

Сегодня занималась сочинением заданий по ООП для курса.

Время: 2 часа код

Day 7: January 10, 2018

Продолжаю читать “Python Testing with pytest”. Читаю раздел по встроенным fixtures.

Время: 40 мин чтение

Day 8: January 11, 2018

Продолжаю читать “Python Testing with pytest”. Читаю раздел по встроенным fixtures.

Время: 1 час чтение

Day 9: January 16, 2018

После 4 дней перерыва, я вернулась. Перерыв конечно на самом деле не был перерывом.

В целом, в это время я каждый день занималась питоном, но не занималась pytest. Сегодня оторвалась за все пропущенные дни :)

Писала тесты для заданий по ООП и конечно самостоятельно писать это не то же самое, что читать книгу или даже задания в книге.

Code: Day 8 code

Время: 40 мин чтение, 3 часа код

Day 10: January 18, 2018

Сегодня писала тесты для заданий по ООП и первый раз их использовала для проверки заданий. Очень полезно и сразу показывает, что сделано не по заданию.

Добавила в тесты warnings для сообщений о не критичных несоответствиях с заданием, таких как отличия в сообщении.

Время: 1 час 10 минут код

Day 11: January 19, 2018

Сегодня было очень интересно. Писала тесты для заданий по ООП, в которых создается класс для подключения по SSH.

Надо было придумать как подключаться по SSH. С одной стороны, не хотелось выполнять подключение для каждого теста. С другой стороны, я не могла вынести подключение в fixture со scope module, так как мне надо было использовать один и тот же класс, но импортировать его из разных заданий, в разных файлах с тестами.

Я решила вопрос добавив в глобальном пространстве создание подключения. И все было ок, кроме “странно” долгого времени обнаружения тестов.

Долгое оно было из-за того, что при поиске тестов выполняется глобальный код модулей.

И как только я написала все тесты и решила в конце запустить все разом, все файлы тестов начали выполнять подключение к оборудованию одновременно. Так как оборудовании было разрешено только 5 одновременных подключений, остальные отпали.

Зато, за счет этого я узнала как fixture может работать с вызывающим тестом. Fixture может “видеть” запрашивающий модуль, класс или функцию и соответствующие параметры.

В моем случае, это позволило получить необходимый класс и для каждого модуля (который сответствует заданию) использовать класс из задания:

@pytest.fixture(scope='module')
def ssh_r1(request):
    ssh_class = getattr(request.module, "CiscoSSH")
    r1 = ssh_class('cisco', 'cisco', 'cisco', '192.168.100.1')
    yield r1
    r1.ssh.disconnect()

Теперь все работает отлично и нет повторяющегося кода.

Code: Day 11 code

Время: 2 часа код

Day 12: January 22, 2018

Сегодня только читала. Опять пропустила пару дней. Все же перерыв выбил из графика и опять надо влиться.

В выходные было все равно достаточно питона, так как была лекция по ООП и я готовилась к ней.

Время: 1 час чтение

Day 13: January 23, 2018

Сегодня почти дочитала книгу. Остались только дополнения

Время: 1 час 20 минут чтение

Day 14: January 24, 2018

Дочитала книгу “Python Testing with pytest”

Время: 40 минут чтение

Day 15: January 25, 2018

Пишу тесты для заданий по ООП.

Время: 1 час код

Day 16: January 26, 2018

Сегодня читала про @classmethod, @property, @staticmethod

Время: 1 час чтение

Day 17: January 27, 2018

Продолжаю разбираться с @classmethod, @property, @staticmethod

Время: 30 мин чтение

Day 18: January 28, 2018

Пишу тесты для заданий по ООП.

Время: 2 часа 30 минут код

Day 19: January 29, 2018

Начала читать Flask Mega Tutorial

Время: 1 час чтение