P5-6491 use market instead of territory for price calculations (#37)

This commit is contained in:
Martin Carlsson
2021-01-25 09:24:26 +01:00
committed by GitHub
parent dee7344ba5
commit 464e2f1fa6
11 changed files with 127 additions and 256 deletions
+33 -18
View File
@@ -17,16 +17,21 @@ class TestEndpoints(flask_testing.TestCase):
db.session.remove()
db.drop_all()
def _add_market(self):
currency = Currencies(iso3char="SEK", exchange_rate=1)
db.session.add(currency)
market = Market(name="SE", vat=1.25, currency="SEK", price_adjustments=1)
db.session.add(market)
db.session.commit()
return market
def _add_material(self, name, groupid, price):
material = Material(name=name, price=price)
db.session.add(material)
db.session.commit()
return material
def _add_inquiry(self, product_group, price_retouch=100):
currency = Currencies(iso3char="SEK", exchange_rate=1)
db.session.add(currency)
market = Market(name="SE", vat=1.25, currency='SEK', price_adjustments=1)
def _add_inquiry(self, market, product_group, price_retouch=100):
inquiry = Inquiry(
market=market,
product_group=product_group,
@@ -56,9 +61,10 @@ class TestEndpoints(flask_testing.TestCase):
return product
def test_wallpaper(self):
self._add_market()
self._add_material("standard-wallpaper", 1, 23600)
self._add_material("premium-wallpaper", 1, 26000)
response = self.client.get("/prices/wallpaper?width=200&height=10&territory=SE")
response = self.client.get("/prices/wallpaper?width=200&height=10&market=1")
self.assert200(response)
expected = [
{
@@ -81,12 +87,13 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(expected, response.json["data"])
def test_wallpaper_with_product(self):
self._add_market()
self._add_material("standard-wallpaper", 1, 23600)
self._add_material("premium-wallpaper", 1, 26000)
designer = self._add_designer(pricepremium_wallpaper=4)
product = self._add_product(designer)
response = self.client.get(
"/prices/wallpaper?width=200&height=200&territory=SE&product=1"
"/prices/wallpaper?width=200&height=200&market=1&product=1"
)
expected = [
{
@@ -109,7 +116,8 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(expected, response.json["data"])
def test_canvas(self):
response = self.client.get("/prices/canvas?width=200&height=10&territory=SE")
self._add_market()
response = self.client.get("/prices/canvas?width=200&height=10&market=1")
self.assert200(response)
expected = [
{
@@ -130,10 +138,11 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(expected, response.json["data"])
def test_canvas_with_product(self):
self._add_market()
designer = self._add_designer(pricepremium_canvas=2)
product = self._add_product(designer)
response = self.client.get(
"/prices/canvas?width=200&height=10&territory=SE&product=1"
"/prices/canvas?width=200&height=10&market=1&product=1"
)
self.assert200(response)
expected = [
@@ -155,7 +164,8 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(expected, response.json["data"])
def test_diy_frame(self):
response = self.client.get("/prices/diy-frame?width=200&height=50&territory=SE")
self._add_market()
response = self.client.get("/prices/diy-frame?width=200&height=50&market=1")
self.assert200(response)
product = response.json["data"][0]
self.assertEqual(150, product["width"], "it adjusts measurements")
@@ -163,7 +173,8 @@ class TestEndpoints(flask_testing.TestCase):
self.assertAlmostEqual(731.25, product["price"], places=2)
def test_poster(self):
response = self.client.get("/prices/poster?width=50&height=30&territory=SE")
self._add_market()
response = self.client.get("/prices/poster?width=50&height=30&market=1")
self.assert200(response)
expected = [
{
@@ -184,7 +195,8 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(expected, response.json["data"])
def test_poster_hanger(self):
response = self.client.get("/prices/poster-hanger?width=50&territory=SE")
self._add_market()
response = self.client.get("/prices/poster-hanger?width=50&market=1")
self.assert200(response)
product = response.json["data"][0]
self.assertEqual(210.0, product["price"])
@@ -192,36 +204,39 @@ class TestEndpoints(flask_testing.TestCase):
self.assertEqual(50, product["width"])
def test_inquiry_wallpaper(self):
market = self._add_market()
self._add_material("standard-wallpaper", 1, 236)
self._add_material("premium-wallpaper", 1, 260)
self._add_inquiry(product_group="photo-wallpaper")
self._add_inquiry(market=market, product_group="photo-wallpaper")
response = self.client.get("/prices/inquiry/1?width=100&height=100")
self.assert200(response)
self.assertEqual("wallpaper", response.json["group"])
def test_inquiry_canvas(self):
market = self._add_market()
self._add_material("standard-canvas", 2, 799.2)
self._add_inquiry(product_group="canvas")
self._add_inquiry(market=market, product_group="canvas")
response = self.client.get("/prices/inquiry/1?width=100&height=100")
self.assert200(response)
self.assertEqual("canvas", response.json["group"])
def test_inquiry_poster(self):
self._add_inquiry(product_group="poster")
market = self._add_market()
self._add_inquiry(market=market, product_group="poster")
response = self.client.get("/prices/inquiry/1?width=100&height=100")
self.assert200(response)
self.assertEqual("poster", response.json["group"])
def test_framed_print(self):
response = self.client.get(
"/prices/framed-print?sku=GLOBAL-CFP-12x12&territory=SE"
)
self._add_market()
response = self.client.get("/prices/framed-print?sku=GLOBAL-CFP-12x12&market=1")
self.assert200(response)
expected = [{"price": 597.5, "price_excl_vat": 478, "sku": "GLOBAL-CFP-12x12"}]
self.assertEqual(expected, response.json["data"])
def test_framed_print_invalid_sku(self):
response = self.client.get("/prices/framed-print?sku=invalid&territory=SE")
self._add_market()
response = self.client.get("/prices/framed-print?sku=invalid&market=1")
self.assert400(response)
self.assertEqual(
"sku contains an invalid value, must be one of: {}".format(