Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
Для начала прочтите и посмотрите видео.
С тестами вы выучите язык в 100 раз быстрее.Конечно же я дурак(что поздно понял роль тестов для новичка), когда-то я давал тесты немного на pro***.net(сайт удалён теперь все на одном сайте spb-tut.ru, но как то ими не интересовались, да и был там UnitTest.И я как то забыл, а сам всегда занимался тестированием, когда не понимал механизм, чего-либо.
И вот именно, когда в 2020 году переделывал школу, я рассказал это в этом коротком видео,
В 100 раз быстрее выучите Python с Pytest.
Теперь главное. Мы с вами уже понимаем Django 4 и здорово продвинулись, нам этого мало. Нужно профессиональное понимание.
Тесты нам дадут то что нам нужно:
Профессиональное понимание Джанго.
Что бы написать тест необходимо знать, что тестировать, как тестировать и как записать, так вот он алгоритм разбираться в тонкостях, получается тесты новичку нужны больше чем кому-либо, так как движение к профессионализму значительно ускорится в 100 раз.
И кроме этого, будем спокойны, что проект работает нормально. Погнали.
Теперь нам нужно прописать настройки, что бы pytest видел наш проект и другие мелочи учесть, что бы все работало. Давайте сделаем это.
Обратите внимание, я специально буду пропускать много, что бы вылазило, как можно больше исключений. Думаю с курса Джанго вы уже многие исключения изучили. Это прекрасная практика, продолжим её и далее.
Мы создадим первый тест и как вы увидите даже пару строк нам дадаут кучу размышлений.
В следующих уроках подробно разберём. что тестируется в Джанго, а что нет.
Сейчас я объясню относительно того, что мы будем делать.
Давайте создадим первый тест, а после будем писать проект и делать по ходу проекта тесты - это лучший вариант.
-
params = ['article1', None, '2021-12-28 10:42:45.568426', '2021-12-28 10:42:45.568607', None, '', ...] def execute(self, query, params=None): if params is None: return Database.Cursor.execute(self, query) query = self.convert_query(query) > return Database.Cursor.execute(self, query, params) E django.db.utils.IntegrityError: NOT NULL constraint failed: blog_post.author_id /home/agate/Env/practice_djangoEnv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py:416: IntegrityError --------- Captured stderr setup ---------- Creating test database for alias 'default'... -------- Captured stderr teardown -------- Destroying test database for alias 'default'... ======== short test summary info ========= FAILED test_models.py::test_title_create =========== 1 failed in 0.77s ============
Мы с вами создали первый тест, сейчас вам нужен мозговой штурм. Вам необходимо завершить тест и сбросить в группу. Что сделать рассказал в видео.
Запоминаем принцип. НЕ бегите с вопросом через пять минут, если что-то не получается. Нормально порыть 5 полных рабочих дней. если тогда не получается, тогда уже спрашивать.
Как правило 98% вопросов решается, в остатке вы имеете настоящий опыт и знание вопроса.
Я предварительно допустил ошибки логики в модели, сделал это специально, что бы вернуться к редактированию позже. Лучше один раз показать, чем много раз рассказывать.
# class Post(models.Model): .................... likes_post = models.ManyToManyField(User, related_name='post_likes', blank=True, verbose_name='Лайки') saves_posts = models.ManyToManyField(User, related_name="blog_posts_save", blank=True, verbose_name='Сохранённые посты пользователя') def total_likes_post(self): return self.likes.count() def total_saves_posts(self): return self.saves_posts.count() ...........
1 2 3 4 5 6 >