PW-567 add the old canvas formula

This commit is contained in:
Martin
2016-10-31 17:57:11 +01:00
parent cbee61b564
commit bf9fc3ae5a
10 changed files with 352 additions and 35 deletions
+22
View File
@@ -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))
+49
View File
@@ -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'])