2025-01-06 17:03:41 -06:00
|
|
|
# -*- coding: utf-8; -*-
|
|
|
|
|
|
|
|
from sqlalchemy import orm
|
|
|
|
|
|
|
|
from sideshow.testing import WebTestCase
|
|
|
|
from sideshow.web.forms import schema as mod
|
|
|
|
|
|
|
|
|
|
|
|
class TestOrderRef(WebTestCase):
|
|
|
|
|
|
|
|
def test_sort_query(self):
|
|
|
|
typ = mod.OrderRef(self.request, session=self.session)
|
|
|
|
query = typ.get_query()
|
|
|
|
self.assertIsInstance(query, orm.Query)
|
|
|
|
sorted_query = typ.sort_query(query)
|
|
|
|
self.assertIsInstance(sorted_query, orm.Query)
|
|
|
|
self.assertIsNot(sorted_query, query)
|
|
|
|
|
|
|
|
def test_get_object_url(self):
|
2025-08-31 12:59:28 -05:00
|
|
|
self.pyramid_config.add_route("orders.view", "/orders/{uuid}")
|
2025-01-06 17:03:41 -06:00
|
|
|
model = self.app.model
|
|
|
|
|
2025-08-31 12:59:28 -05:00
|
|
|
user = model.User(username="barney")
|
2025-01-06 17:03:41 -06:00
|
|
|
self.session.add(user)
|
|
|
|
order = model.Order(order_id=42, created_by=user)
|
|
|
|
self.session.add(order)
|
|
|
|
self.session.commit()
|
|
|
|
|
|
|
|
typ = mod.OrderRef(self.request, session=self.session)
|
|
|
|
url = typ.get_object_url(order)
|
|
|
|
self.assertIsNotNone(url)
|
2025-08-31 12:59:28 -05:00
|
|
|
self.assertIn(f"/orders/{order.uuid}", url)
|
2025-01-06 17:03:41 -06:00
|
|
|
|
|
|
|
|
2025-01-09 12:13:58 -06:00
|
|
|
class TestLocalCustomerRef(WebTestCase):
|
|
|
|
|
|
|
|
def test_sort_query(self):
|
|
|
|
typ = mod.LocalCustomerRef(self.request, session=self.session)
|
|
|
|
query = typ.get_query()
|
|
|
|
self.assertIsInstance(query, orm.Query)
|
|
|
|
sorted_query = typ.sort_query(query)
|
|
|
|
self.assertIsInstance(sorted_query, orm.Query)
|
|
|
|
self.assertIsNot(sorted_query, query)
|
|
|
|
|
|
|
|
def test_get_object_url(self):
|
2025-08-31 12:59:28 -05:00
|
|
|
self.pyramid_config.add_route("local_customers.view", "/local/customers/{uuid}")
|
2025-01-09 12:13:58 -06:00
|
|
|
model = self.app.model
|
|
|
|
enum = self.app.enum
|
|
|
|
|
|
|
|
customer = model.LocalCustomer()
|
|
|
|
self.session.add(customer)
|
|
|
|
self.session.commit()
|
|
|
|
|
|
|
|
typ = mod.LocalCustomerRef(self.request, session=self.session)
|
|
|
|
url = typ.get_object_url(customer)
|
|
|
|
self.assertIsNotNone(url)
|
2025-08-31 12:59:28 -05:00
|
|
|
self.assertIn(f"/local/customers/{customer.uuid}", url)
|
2025-01-09 12:13:58 -06:00
|
|
|
|
|
|
|
|
2025-01-06 17:03:41 -06:00
|
|
|
class TestPendingCustomerRef(WebTestCase):
|
|
|
|
|
|
|
|
def test_sort_query(self):
|
|
|
|
typ = mod.PendingCustomerRef(self.request, session=self.session)
|
|
|
|
query = typ.get_query()
|
|
|
|
self.assertIsInstance(query, orm.Query)
|
|
|
|
sorted_query = typ.sort_query(query)
|
|
|
|
self.assertIsInstance(sorted_query, orm.Query)
|
|
|
|
self.assertIsNot(sorted_query, query)
|
|
|
|
|
|
|
|
def test_get_object_url(self):
|
2025-08-31 12:59:28 -05:00
|
|
|
self.pyramid_config.add_route(
|
|
|
|
"pending_customers.view", "/pending/customers/{uuid}"
|
|
|
|
)
|
2025-01-06 17:03:41 -06:00
|
|
|
model = self.app.model
|
|
|
|
enum = self.app.enum
|
|
|
|
|
2025-08-31 12:59:28 -05:00
|
|
|
user = model.User(username="barney")
|
2025-01-06 17:03:41 -06:00
|
|
|
self.session.add(user)
|
2025-08-31 12:59:28 -05:00
|
|
|
customer = model.PendingCustomer(
|
|
|
|
status=enum.PendingCustomerStatus.PENDING, created_by=user
|
|
|
|
)
|
2025-01-06 17:03:41 -06:00
|
|
|
self.session.add(customer)
|
|
|
|
self.session.commit()
|
|
|
|
|
|
|
|
typ = mod.PendingCustomerRef(self.request, session=self.session)
|
|
|
|
url = typ.get_object_url(customer)
|
|
|
|
self.assertIsNotNone(url)
|
2025-08-31 12:59:28 -05:00
|
|
|
self.assertIn(f"/pending/customers/{customer.uuid}", url)
|
2025-01-06 17:03:41 -06:00
|
|
|
|
|
|
|
|
2025-01-09 12:13:58 -06:00
|
|
|
class TestLocalProductRef(WebTestCase):
|
|
|
|
|
|
|
|
def test_sort_query(self):
|
|
|
|
typ = mod.LocalProductRef(self.request, session=self.session)
|
|
|
|
query = typ.get_query()
|
|
|
|
self.assertIsInstance(query, orm.Query)
|
|
|
|
sorted_query = typ.sort_query(query)
|
|
|
|
self.assertIsInstance(sorted_query, orm.Query)
|
|
|
|
self.assertIsNot(sorted_query, query)
|
|
|
|
|
|
|
|
def test_get_object_url(self):
|
2025-08-31 12:59:28 -05:00
|
|
|
self.pyramid_config.add_route("local_products.view", "/local/products/{uuid}")
|
2025-01-09 12:13:58 -06:00
|
|
|
model = self.app.model
|
|
|
|
enum = self.app.enum
|
|
|
|
|
|
|
|
product = model.LocalProduct()
|
|
|
|
self.session.add(product)
|
|
|
|
self.session.commit()
|
|
|
|
|
|
|
|
typ = mod.LocalProductRef(self.request, session=self.session)
|
|
|
|
url = typ.get_object_url(product)
|
|
|
|
self.assertIsNotNone(url)
|
2025-08-31 12:59:28 -05:00
|
|
|
self.assertIn(f"/local/products/{product.uuid}", url)
|
2025-01-09 12:13:58 -06:00
|
|
|
|
|
|
|
|
2025-01-06 17:03:41 -06:00
|
|
|
class TestPendingProductRef(WebTestCase):
|
|
|
|
|
|
|
|
def test_sort_query(self):
|
|
|
|
typ = mod.PendingProductRef(self.request, session=self.session)
|
|
|
|
query = typ.get_query()
|
|
|
|
self.assertIsInstance(query, orm.Query)
|
|
|
|
sorted_query = typ.sort_query(query)
|
|
|
|
self.assertIsInstance(sorted_query, orm.Query)
|
|
|
|
self.assertIsNot(sorted_query, query)
|
|
|
|
|
|
|
|
def test_get_object_url(self):
|
2025-08-31 12:59:28 -05:00
|
|
|
self.pyramid_config.add_route(
|
|
|
|
"pending_products.view", "/pending/products/{uuid}"
|
|
|
|
)
|
2025-01-06 17:03:41 -06:00
|
|
|
model = self.app.model
|
|
|
|
enum = self.app.enum
|
|
|
|
|
2025-08-31 12:59:28 -05:00
|
|
|
user = model.User(username="barney")
|
2025-01-06 17:03:41 -06:00
|
|
|
self.session.add(user)
|
2025-08-31 12:59:28 -05:00
|
|
|
product = model.PendingProduct(
|
|
|
|
status=enum.PendingProductStatus.PENDING, created_by=user
|
|
|
|
)
|
2025-01-06 17:03:41 -06:00
|
|
|
self.session.add(product)
|
|
|
|
self.session.commit()
|
|
|
|
|
|
|
|
typ = mod.PendingProductRef(self.request, session=self.session)
|
|
|
|
url = typ.get_object_url(product)
|
|
|
|
self.assertIsNotNone(url)
|
2025-08-31 12:59:28 -05:00
|
|
|
self.assertIn(f"/pending/products/{product.uuid}", url)
|