示例#1
0
def seed_data():
    try:
        articles = Articles(title='Test Post',
                            description='This is a description')
        db.session.add(articles)
        db.session.commit()
        print("success seed data")
    except Exception as err:
        exit(err)
示例#2
0
def stores():
    try:
        data = request.get_json()
        title = data['title']
        description = data['description']
        article = Articles(title=title, description=description)
        db.session.add(article)
        db.session.commit()
        article_data = get_articles()
        return response(data=article_data, code=200, message="success")
    except Exception as err:
        return response(code=202, message=str(err))
示例#3
0
    def generate_output(self):
        articles = Articles(data=self.input_data.get('articles', []))
        delivery = DeliveryFee(data=self.input_data.get('delivery_fees', []))
        discount = Discount(data=self.input_data.get('discounts', []))

        checkout_list = []

        for cart_data in self.input_data.get('carts', []):
            cart = Cart(cart_id=cart_data.get('id'),
                        items=cart_data.get('items'),
                        articles=articles,
                        delivery=delivery,
                        discount=discount)

            checkout_list.append({'id': cart.id, 'total': cart.total})

        return {'carts': checkout_list}
示例#4
0
def test_get_article_by_id_with_nonexistent_id():
    articles_data = [{
        'id': 1,
        'name': 'water',
        'price': 100
    }, {
        'id': 2,
        'name': 'honey',
        'price': 200
    }, {
        'id': 3,
        'name': 'mango',
        'price': 400
    }]
    articles = Articles(data=articles_data)

    assert articles.get_article_by_id(article_id=4) == {}
示例#5
0
 def create_article(self):
     if web.ctx.method == "GET":
         category_list = Categories.select().where(Categories.status == 0)
         self.private_data["category_list"] = category_list
         return self.display("admin/create_article")
     else:
         inputs = self.get_input()
         title = inputs.get('name')
         content = inputs.get('content')
         summary = inputs.get("summary")
         category_id = inputs.get("category_id")
         source_url = inputs.get("source_url", "")
         keywords = str(inputs.get("keywords", "")).strip()
         image = Images.get_or_none()
         category = Categories.get_or_none(Categories.id == category_id)
         try:
             tags_list = keywords.split(",") if keywords else []
             if tags_list:
                 got_tags = Tags.select().where(Tags.name.in_(tags_list))
                 tmp_list = []
                 for tag in got_tags:
                     tmp_list.append(tag.name)
                 for tag_str in tags_list:
                     if tag_str not in tmp_list:
                         t = Tags(name=tag_str)
                         t.save()
                 db = TinyDB('settings/db.json')
                 db.truncate()
                 db.close()
             article = Articles(name=title,
                                content=content,
                                summary=summary,
                                category=category,
                                original_address=source_url,
                                keywords=keywords,
                                thumbnail=image)
             article.save()
             self.private_data["create_success"] = True
             return web.seeother(self.make_url('articles'))
         except Exception as e:
             log.error('create article failed %s' % traceback.format_exc())
             log.error('input params %s' % inputs)
             self.private_data["create_success"] = False
             return self.display("admin/create_article")
示例#6
0
def process_articles(article_list):
    '''
    Function that processes the article results and transform them to a list of objects
    Args:
        article_list: A list of dictionaries that contain article details
    Returns :
        article_results: A list of article objects
    '''
    article_results = []
    for article_item in article_list:
        source = article_item.get('source')
        title = article_item.get('title')
        urlToImage = article_item.get('urlToImage')
        description = article_item.get('description')
        urlToArticle = article_item.get('url')
        publishedAt = article_item.get('publishedAt')
        article_object = Articles(source, title, description, urlToImage,
                                  urlToArticle, publishedAt)
        article_results.append(article_object)
    return article_results
示例#7
0
def test_total_with_delivery_fee():
    articles = Articles(data=ARTICLES_DATA)
    delivery = DeliveryFee(data=DELIVERY_DATA)
    discount = Discount(data=[])

    items = [
        {
            'article_id': 1,
            'quantity': 6
        },
        {
            'article_id': 2,
            'quantity': 2
        },
    ]

    cart = Cart(cart_id=1,
                items=items,
                articles=articles,
                delivery=delivery,
                discount=discount)

    assert cart.total == (100 * 6 + 200 * 2) + 400
示例#8
0
def test__calculate_items_total():
    articles = Articles(data=ARTICLES_DATA)
    delivery = DeliveryFee(data=DELIVERY_DATA)
    discount = Discount(data=[])

    items = [
        {
            'article_id': 1,
            'quantity': 6
        },
        {
            'article_id': 2,
            'quantity': 2
        },
    ]

    cart = Cart(cart_id=1,
                items=items,
                articles=articles,
                delivery=delivery,
                discount=discount)

    assert cart._calculate_items_total() == 100 * 6 + 200 * 2
示例#9
0
def test__apply_delivery_fee():
    articles = Articles(data=ARTICLES_DATA)
    delivery = DeliveryFee(data=DELIVERY_DATA)
    discount = Discount(data=[])

    items = [
        {
            'article_id': 1,
            'quantity': 6
        },
        {
            'article_id': 2,
            'quantity': 2
        },
    ]

    cart = Cart(cart_id=1,
                items=items,
                articles=articles,
                delivery=delivery,
                discount=discount)

    cart_price = 1000
    assert cart._apply_delivery_fee(price=cart_price) == cart_price + 400
示例#10
0
def test_get_article_by_id_with_empty_data():
    articles_data = []
    articles = Articles(data=articles_data)

    assert articles.get_article_by_id(article_id=4) == {}