Backend-разработчик на python (стажер) Тестовое задание

Задачи по программированию  

программирование

Тестовое задание  (найдено на pyshop.ru)

Backend-разработчик на python (стажер)

к содержанию задачника

  1. В примере кода продолжите функцию live_search() на Python таким образом, чтобы она возвращала список товаров (список объектов Product упакованные в JSON в произвольном формате) которые содержат строку q в полях sku, name или description в любом регистре символов.
    from django.db import models

    class Product(models.Model):
    categories = models.ManyToManyField(Category,
    related_name='products',
    blank=True, verbose_name=u"категории")
    related_products = models.ManyToManyField('Product',
    blank=True,
    verbose_name="связанные продукты")

    sku = models.CharField(u'артикул', max_length=128, validators=[validators.check_bad_symbols], unique=True)

    price = models.DecimalField(u'цена', max_digits=12, decimal_places=4)

    slug = models.SlugField(u'slug', max_length=80, db_index=True, unique=True)

    name = models.CharField(u'название', max_length=128)
    title = models.CharField(u'заголовок страницы (<title>)', max_length=256, blank=True)
    description = models.TextField(u'описание', blank=True)

    def live_search(request, template_name="shop/livesearch_results.html"):
    q = request.GET.get("q", "")
    # ...

  2. Разработайте юнит-тесты проверяющие корректность работы функции. Удалось ли найти какие-либо дефекты в этой функции, полагаясь на ее назначение исходя из описания? Учтите, что вопрос не на знание фреймворков тестирования и их применение, можете взять любой, или даже разработать ряд самостоятельных функций. def is_even(number):
    ''' Returns True if **number** is even or False if it is odd. '''
    return number % 2
  3. Разработайте скрипт на Python, который будет выводить в консоль (STDOUT) информацию о предстоящих событиях анонсированных на главной странице python.org (Upcoming Events). Вывод информации оформите по своему усмотрению. Выбор библиотек на ваше усмотрение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *