Тестовое задание (с учтенными замечаниями)

Постарался поправить все замечания, но не  успел разобраться с тестами для моделей (сейчас занимаюсь этим). Здесь опять все одним коммитом,  каюсь, мое упущение, но в целом вроде ок:)