# -*- 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): self.pyramid_config.add_route('orders.view', '/orders/{uuid}') model = self.app.model user = model.User(username='barney') 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) self.assertIn(f'/orders/{order.uuid}', url) 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): self.pyramid_config.add_route('pending_customers.view', '/pending/customers/{uuid}') model = self.app.model enum = self.app.enum user = model.User(username='barney') self.session.add(user) customer = model.PendingCustomer(status=enum.PendingCustomerStatus.PENDING, created_by=user) self.session.add(customer) self.session.commit() typ = mod.PendingCustomerRef(self.request, session=self.session) url = typ.get_object_url(customer) self.assertIsNotNone(url) self.assertIn(f'/pending/customers/{customer.uuid}', url) 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): self.pyramid_config.add_route('pending_products.view', '/pending/products/{uuid}') model = self.app.model enum = self.app.enum user = model.User(username='barney') self.session.add(user) product = model.PendingProduct(status=enum.PendingProductStatus.PENDING, created_by=user) self.session.add(product) self.session.commit() typ = mod.PendingProductRef(self.request, session=self.session) url = typ.get_object_url(product) self.assertIsNotNone(url) self.assertIn(f'/pending/products/{product.uuid}', url)