PW-567 add the old canvas formula
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# coding=UTF-8
|
||||
|
||||
import unittest2
|
||||
from api.lib.limits import calculate_canvas_limits, calculate_canvas_frame_limits
|
||||
|
||||
|
||||
class TestCalculate(unittest2.TestCase):
|
||||
|
||||
def test_calculate_canvas_limits(self):
|
||||
self.assertEqual((100, 100), calculate_canvas_limits(100, 100))
|
||||
self.assertEqual((500, 100), calculate_canvas_limits(800, 100))
|
||||
self.assertEqual((100, 500), calculate_canvas_limits(100, 800))
|
||||
self.assertEqual((20, 20), calculate_canvas_limits(10, 10))
|
||||
self.assertEqual((150, 50), calculate_canvas_limits(
|
||||
400, 50, True), "Framed canvas")
|
||||
|
||||
def test_calculate_canvas_frame_limits(self):
|
||||
self.assertEqual((100, 100), calculate_canvas_frame_limits(100, 100))
|
||||
self.assertEqual((40, 40), calculate_canvas_frame_limits(1, 1))
|
||||
self.assertEqual((150, 150), calculate_canvas_frame_limits(200, 200))
|
||||
self.assertEqual((150, 40), calculate_canvas_frame_limits(200, 10))
|
||||
self.assertEqual((110, 120), calculate_canvas_frame_limits(112, 117), "round to nearest 10")
|
||||
@@ -1,7 +1,7 @@
|
||||
# coding=UTF-8
|
||||
|
||||
import unittest2
|
||||
from api.lib.prices import wallpaper_price, canvas_price, canvas_cm2_price
|
||||
from api.lib.prices import *
|
||||
from tests.factories import DesignerFactory, ContractCustomerFactory, InquiryFactory
|
||||
from api.models import market
|
||||
|
||||
@@ -80,3 +80,46 @@ class TestPrice(unittest2.TestCase):
|
||||
|
||||
self.assertEqual(436, canvas_price(width=50, height=50,
|
||||
market=denmark, framed=True, inc_vat=False))
|
||||
|
||||
def test_canvas_frame_price(self):
|
||||
self.assertAlmostEqual(208.46, canvas_frame_price(
|
||||
50, 50, stock_price=1.04230824, additional_price=94.750000), places=2)
|
||||
self.assertAlmostEqual(177.19, canvas_frame_price(
|
||||
1, 1, stock_price=1.04230824, additional_price=94.750000), places=2)
|
||||
self.assertAlmostEqual(625.38, canvas_frame_price(
|
||||
500, 500, stock_price=1.04230824, additional_price=None), places=2)
|
||||
|
||||
def test_old_canvas_diy_frame_price(self):
|
||||
self.assertEqual(
|
||||
403, old_canvas_diy_frame_price(50, 50, market=sweden))
|
||||
self.assertEqual(801, old_canvas_diy_frame_price(
|
||||
100, 110, market=denmark))
|
||||
self.assertEqual(463, old_canvas_diy_frame_price(
|
||||
50, 50, market=sweden, reseller=reseller))
|
||||
self.assertEqual(1327, old_canvas_diy_frame_price(
|
||||
500, 500, market=sweden))
|
||||
|
||||
def test_old_canvas_price(self):
|
||||
self.assertEqual(250, old_canvas_price(
|
||||
width=50, height=50, material_price=799.2, market=sweden, framed=False))
|
||||
|
||||
self.assertEqual(200, old_canvas_price(
|
||||
width=1, height=1, material_price=799.2, market=sweden, framed=False))
|
||||
|
||||
self.assertEqual(7493, old_canvas_price(
|
||||
width=500, height=500, material_price=799.2, market=sweden, framed=False))
|
||||
|
||||
self.assertEqual(5994, old_canvas_price(width=500, height=500,
|
||||
material_price=799.2, market=sweden, framed=False, inc_vat=False))
|
||||
self.assertEqual(7493, old_canvas_price(
|
||||
width=500, height=500, material_price=799.2, market=sweden, framed=False))
|
||||
self.assertEqual(236, old_canvas_price(
|
||||
width=50, height=50, material_price=799.2, market=denmark, framed=False))
|
||||
self.assertEqual(294, old_canvas_price(
|
||||
width=50, height=50, material_price=799.2, market=sweden, designer=designer, framed=False))
|
||||
self.assertEqual(510, old_canvas_price(
|
||||
width=50, height=50, material_price=799.2, market=sweden, framed=True))
|
||||
self.assertEqual(2972, old_canvas_price(
|
||||
width=150, height=140, material_price=799.2, market=sweden, framed=True))
|
||||
self.assertEqual(287, old_canvas_price(
|
||||
width=50, height=50, material_price=799.2, market=sweden, framed=False, reseller=reseller))
|
||||
@@ -0,0 +1,49 @@
|
||||
import json
|
||||
import flask_testing
|
||||
from api import create_app, db
|
||||
from api.models.product import Material, MaterialPrice
|
||||
|
||||
|
||||
class TestEndpoints(flask_testing.TestCase):
|
||||
|
||||
def create_app(self):
|
||||
return create_app('tests.config')
|
||||
|
||||
def setUp(self):
|
||||
db.create_all()
|
||||
|
||||
def tearDown(self):
|
||||
db.session.remove()
|
||||
db.drop_all()
|
||||
|
||||
def _add_material(self, name, groupid, price):
|
||||
material = Material(name=name)
|
||||
material.material_price = MaterialPrice(price=price, groupid=groupid)
|
||||
db.session.add(material)
|
||||
db.session.commit()
|
||||
return material
|
||||
|
||||
def test_canvas(self):
|
||||
self._add_material('standard-canvas', 2, 799.9)
|
||||
response = self.client.get(
|
||||
'/prices/canvas?width=200&height=10&territory=SE')
|
||||
self.assert200(response)
|
||||
products = response.json['data']
|
||||
for product in products:
|
||||
if product['framed']:
|
||||
self.assertEqual(150, product['width'])
|
||||
self.assertEqual(40, product['height'])
|
||||
self.assertEqual(1213, product['price'])
|
||||
else:
|
||||
self.assertEqual(200, product['width'])
|
||||
self.assertEqual(20, product['height'])
|
||||
self.assertEqual(400, product['price'])
|
||||
|
||||
def test_diy_frame(self):
|
||||
response = self.client.get(
|
||||
'/prices/diy-frame?width=200&height=50&territory=SE')
|
||||
self.assert200(response)
|
||||
product = response.json['data'][0]
|
||||
self.assertEqual(150, product['width'], "it adjusts measurements")
|
||||
self.assertEqual(50, product['height'])
|
||||
self.assertEqual(924, product['price'])
|
||||
Reference in New Issue
Block a user