fix: format all code with black

and from now on should not deviate from that...
This commit is contained in:
Lance Edgar 2025-08-31 13:02:02 -05:00
parent bad6ded72d
commit a0b36a6384
12 changed files with 313 additions and 220 deletions

View file

@ -17,8 +17,8 @@ class TestNewOrderBatchHandler(DataTestCase):
def setUp(self):
super().setUp()
self.op_engine = sa.create_engine('sqlite://')
self.config.core_office_op_engines = {'default': self.op_engine}
self.op_engine = sa.create_engine("sqlite://")
self.config.core_office_op_engines = {"default": self.op_engine}
self.config.core_office_op_engine = self.op_engine
op_model.Base.metadata.create_all(bind=self.op_engine)
@ -31,7 +31,7 @@ class TestNewOrderBatchHandler(DataTestCase):
def make_config(self, **kwargs):
config = super().make_config(**kwargs)
config.setdefault('wutta.enum_spec', 'sideshow.enum')
config.setdefault("wutta.enum_spec", "sideshow.enum")
return config
def make_handler(self):
@ -41,33 +41,41 @@ class TestNewOrderBatchHandler(DataTestCase):
handler = self.make_handler()
# empty results by default
self.assertEqual(handler.autocomplete_customers_external(self.session, 'foo'), [])
self.assertEqual(
handler.autocomplete_customers_external(self.session, "foo"), []
)
# add a member
member = op_model.MemberInfo(card_number=42)
self.op_session.add(member)
customer = op_model.CustomerClassic(first_name="Chuck", last_name="Norris",
last_change=datetime.datetime.now())
customer = op_model.CustomerClassic(
first_name="Chuck", last_name="Norris", last_change=datetime.datetime.now()
)
member.customers.append(customer)
self.op_session.add(customer)
self.op_session.flush()
# search for chuck finds chuck
results = handler.autocomplete_customers_external(self.session, 'chuck')
results = handler.autocomplete_customers_external(self.session, "chuck")
self.assertEqual(len(results), 1)
self.assertEqual(results[0], {
'value': '42',
'label': "Chuck Norris",
})
self.assertEqual(
results[0],
{
"value": "42",
"label": "Chuck Norris",
},
)
# search for sally finds nothing
self.assertEqual(handler.autocomplete_customers_external(self.session, 'sally'), [])
self.assertEqual(
handler.autocomplete_customers_external(self.session, "sally"), []
)
def test_refresh_batch_from_external_customer(self):
model = self.app.model
handler = self.make_handler()
user = model.User(username='barney')
user = model.User(username="barney")
self.session.add(user)
self.session.flush()
@ -76,91 +84,114 @@ class TestNewOrderBatchHandler(DataTestCase):
self.session.flush()
# add a member
member = op_model.MemberInfo(card_number=42, phone='555-1234', email='chuck@example.com')
member = op_model.MemberInfo(
card_number=42, phone="555-1234", email="chuck@example.com"
)
self.op_session.add(member)
customer = op_model.CustomerClassic(first_name="Chuck", last_name="Norris",
last_change=datetime.datetime.now())
customer = op_model.CustomerClassic(
first_name="Chuck", last_name="Norris", last_change=datetime.datetime.now()
)
member.customers.append(customer)
self.op_session.add(customer)
self.op_session.flush()
# error if invalid customer_id
batch.customer_id = 'BreakThings!'
self.assertRaises(ValueError, handler.refresh_batch_from_external_customer, batch)
batch.customer_id = "BreakThings!"
self.assertRaises(
ValueError, handler.refresh_batch_from_external_customer, batch
)
# error if customer not found
batch.customer_id = '9999'
self.assertRaises(ValueError, handler.refresh_batch_from_external_customer, batch)
batch.customer_id = "9999"
self.assertRaises(
ValueError, handler.refresh_batch_from_external_customer, batch
)
# batch should reflect customer info
batch.customer_id = '42'
batch.customer_id = "42"
self.assertIsNone(batch.customer_name)
self.assertIsNone(batch.phone_number)
self.assertIsNone(batch.email_address)
handler.refresh_batch_from_external_customer(batch)
self.assertEqual(batch.customer_name, "Chuck Norris")
self.assertEqual(batch.phone_number, '555-1234')
self.assertEqual(batch.email_address, 'chuck@example.com')
self.assertEqual(batch.phone_number, "555-1234")
self.assertEqual(batch.email_address, "chuck@example.com")
def test_autocomplete_products_local(self):
handler = self.make_handler()
# empty results by default
self.assertEqual(handler.autocomplete_products_external(self.session, 'foo'), [])
self.assertEqual(
handler.autocomplete_products_external(self.session, "foo"), []
)
# add a product
product = op_model.Product(upc='07430500132', brand="Bragg's",
description="Vinegar", size='32oz')
product = op_model.Product(
upc="07430500132", brand="Bragg's", description="Vinegar", size="32oz"
)
self.op_session.add(product)
self.op_session.commit()
# search for vinegar finds product
results = handler.autocomplete_products_external(self.session, 'vinegar')
results = handler.autocomplete_products_external(self.session, "vinegar")
self.assertEqual(len(results), 1)
self.assertEqual(results[0], {
'value': '07430500132',
'label': "Bragg's Vinegar 32oz",
})
self.assertEqual(
results[0],
{
"value": "07430500132",
"label": "Bragg's Vinegar 32oz",
},
)
# search for brag finds product
results = handler.autocomplete_products_external(self.session, 'brag')
results = handler.autocomplete_products_external(self.session, "brag")
self.assertEqual(len(results), 1)
self.assertEqual(results[0], {
'value': '07430500132',
'label': "Bragg's Vinegar 32oz",
})
self.assertEqual(
results[0],
{
"value": "07430500132",
"label": "Bragg's Vinegar 32oz",
},
)
# search for juice finds nothing
self.assertEqual(handler.autocomplete_products_external(self.session, 'juice'), [])
self.assertEqual(
handler.autocomplete_products_external(self.session, "juice"), []
)
def test_get_case_size_for_external_product(self):
handler = self.make_handler()
# null
product = op_model.Product(upc='07430500132', brand="Bragg's",
description="Vinegar", size='32oz')
product = op_model.Product(
upc="07430500132", brand="Bragg's", description="Vinegar", size="32oz"
)
self.op_session.add(product)
self.op_session.commit()
self.op_session.refresh(product)
self.assertIsNone(handler.get_case_size_for_external_product(product))
# typical
vendor = op_model.Vendor(id=42, name='Acme Distributors')
vendor = op_model.Vendor(id=42, name="Acme Distributors")
self.op_session.add(vendor)
item = op_model.VendorItem(vendor=vendor, sku='1234', units=12.34,
vendor_item_id=1)
item = op_model.VendorItem(
vendor=vendor, sku="1234", units=12.34, vendor_item_id=1
)
product.vendor_items.append(item)
self.op_session.commit()
self.op_session.refresh(product)
self.assertEqual(handler.get_case_size_for_external_product(product),
decimal.Decimal('12.3400'))
self.assertEqual(
handler.get_case_size_for_external_product(product),
decimal.Decimal("12.3400"),
)
def test_get_unit_price_reg_for_external_product(self):
handler = self.make_handler()
# null
product = op_model.Product(upc='07430500132', brand="Bragg's",
description="Vinegar", size='32oz')
product = op_model.Product(
upc="07430500132", brand="Bragg's", description="Vinegar", size="32oz"
)
self.op_session.add(product)
self.op_session.commit()
self.op_session.refresh(product)
@ -170,53 +201,64 @@ class TestNewOrderBatchHandler(DataTestCase):
product.normal_price = 4.19
self.op_session.commit()
self.op_session.refresh(product)
self.assertEqual(handler.get_unit_price_reg_for_external_product(product),
decimal.Decimal('4.19'))
self.assertEqual(
handler.get_unit_price_reg_for_external_product(product),
decimal.Decimal("4.19"),
)
def test_get_product_info_external(self):
model = self.app.model
handler = self.make_handler()
user = model.User(username='barney')
user = model.User(username="barney")
self.session.add(user)
batch = handler.make_batch(self.session, created_by=user)
self.session.add(batch)
self.session.flush()
vendor = op_model.Vendor(id=42, name='Acme Distributors')
vendor = op_model.Vendor(id=42, name="Acme Distributors")
self.op_session.add(vendor)
product = op_model.Product(upc='07430500132', brand="Bragg",
description="Vinegar", size='32oz',
normal_price=4.19)
item = op_model.VendorItem(vendor=vendor, sku='1234', units=12.34,
vendor_item_id=1)
product = op_model.Product(
upc="07430500132",
brand="Bragg",
description="Vinegar",
size="32oz",
normal_price=4.19,
)
item = op_model.VendorItem(
vendor=vendor, sku="1234", units=12.34, vendor_item_id=1
)
product.vendor_items.append(item)
self.op_session.add(product)
self.op_session.commit()
# typical
info = handler.get_product_info_external(self.session, '07430500132')
self.assertEqual(info['product_id'], '07430500132')
self.assertEqual(info['scancode'], '07430500132')
self.assertEqual(info['brand_name'], 'Bragg')
self.assertEqual(info['description'], 'Vinegar')
self.assertEqual(info['size'], '32oz')
self.assertEqual(info['full_description'], 'Bragg Vinegar 32oz')
self.assertEqual(info['case_size'], decimal.Decimal('12.3400'))
self.assertEqual(info['unit_price_reg'], decimal.Decimal('4.19'))
info = handler.get_product_info_external(self.session, "07430500132")
self.assertEqual(info["product_id"], "07430500132")
self.assertEqual(info["scancode"], "07430500132")
self.assertEqual(info["brand_name"], "Bragg")
self.assertEqual(info["description"], "Vinegar")
self.assertEqual(info["size"], "32oz")
self.assertEqual(info["full_description"], "Bragg Vinegar 32oz")
self.assertEqual(info["case_size"], decimal.Decimal("12.3400"))
self.assertEqual(info["unit_price_reg"], decimal.Decimal("4.19"))
# error if no product_id
self.assertRaises(ValueError, handler.get_product_info_external, self.session, None)
self.assertRaises(
ValueError, handler.get_product_info_external, self.session, None
)
# error if product not found
self.assertRaises(ValueError, handler.get_product_info_external, self.session, 'BADUPC')
self.assertRaises(
ValueError, handler.get_product_info_external, self.session, "BADUPC"
)
def test_refresh_row_from_external_product(self):
model = self.app.model
enum = self.app.enum
handler = self.make_handler()
user = model.User(username='barney')
user = model.User(username="barney")
self.session.add(user)
batch = handler.make_batch(self.session, created_by=user)
self.session.add(batch)
@ -225,27 +267,32 @@ class TestNewOrderBatchHandler(DataTestCase):
self.session.add(row)
self.session.flush()
vendor = op_model.Vendor(id=42, name='Acme Distributors')
vendor = op_model.Vendor(id=42, name="Acme Distributors")
self.op_session.add(vendor)
product = op_model.Product(upc='07430500132', brand="Bragg",
description="Vinegar", size='32oz',
normal_price=4.19)
item = op_model.VendorItem(vendor=vendor, sku='1234', units=12.34,
vendor_item_id=1)
product = op_model.Product(
upc="07430500132",
brand="Bragg",
description="Vinegar",
size="32oz",
normal_price=4.19,
)
item = op_model.VendorItem(
vendor=vendor, sku="1234", units=12.34, vendor_item_id=1
)
product.vendor_items.append(item)
self.op_session.add(product)
self.op_session.commit()
# error if invalid product_id
row.product_id = 'BreakThings!'
row.product_id = "BreakThings!"
self.assertRaises(ValueError, handler.refresh_row_from_external_product, row)
# error if product not found
row.product_id = '9999'
row.product_id = "9999"
self.assertRaises(ValueError, handler.refresh_row_from_external_product, row)
# row should reflect product info
row.product_id = '07430500132'
row.product_id = "07430500132"
self.assertIsNone(row.product_scancode)
self.assertIsNone(row.product_brand)
self.assertIsNone(row.product_description)
@ -253,11 +300,11 @@ class TestNewOrderBatchHandler(DataTestCase):
self.assertIsNone(row.case_size)
self.assertIsNone(row.unit_price_reg)
handler.refresh_row_from_external_product(row)
self.assertEqual(row.product_scancode, '07430500132')
self.assertEqual(row.product_scancode, "07430500132")
self.assertEqual(row.product_brand, "Bragg")
self.assertEqual(row.product_description, "Vinegar")
self.assertEqual(row.product_size, "32oz")
self.assertEqual(row.case_size, decimal.Decimal('12.3400'))
self.assertEqual(row.unit_price_reg, decimal.Decimal('4.19'))
self.assertEqual(row.vendor_name, 'Acme Distributors')
self.assertEqual(row.vendor_item_code, '1234')
self.assertEqual(row.case_size, decimal.Decimal("12.3400"))
self.assertEqual(row.unit_price_reg, decimal.Decimal("4.19"))
self.assertEqual(row.vendor_name, "Acme Distributors")
self.assertEqual(row.vendor_item_code, "1234")

View file

@ -9,10 +9,12 @@ class TestSideshowCoreposConfig(ConfigTestCase):
def test_basic(self):
self.assertIsNone(self.config.get('wutta.batch.neworder.handler.spec'))
self.assertIsNone(self.config.get("wutta.batch.neworder.handler.spec"))
ext = mod.SideshowCoreposConfig()
ext.configure(self.config)
self.assertEqual(self.config.get('wutta.batch.neworder.handler.spec'),
'sideshow_corepos.batch.neworder:NewOrderBatchHandler')
self.assertEqual(
self.config.get("wutta.batch.neworder.handler.spec"),
"sideshow_corepos.batch.neworder:NewOrderBatchHandler",
)

View file

@ -16,18 +16,18 @@ class TestMain(DataTestCase):
def test_basic(self):
global_config = None
settings = {'wutta_config': self.config}
settings = {"wutta_config": self.config}
app = mod.main(global_config, **settings)
self.assertIsInstance(app, Router)
self.assertIsNone(CoreOpSession.session_factory.kw['bind'])
self.assertIsNone(CoreOpSession.session_factory.kw["bind"])
def test_corepos_engine(self):
engine = sa.create_engine('sqlite://')
engine = sa.create_engine("sqlite://")
self.config.core_office_op_engine = engine
settings = {'wutta_config': self.config}
settings = {"wutta_config": self.config}
app = mod.main(None, **settings)
self.assertIsInstance(app, Router)
self.assertIs(CoreOpSession.session_factory.kw['bind'], engine)
self.assertIs(CoreOpSession.session_factory.kw["bind"], engine)
class TestMakeWsgiApp(DataTestCase):

View file

@ -13,39 +13,48 @@ class TestSideshowMenuHandler(WebTestCase):
def test_make_customers_menu(self):
handler = self.make_handler()
menu = handler.make_customers_menu(self.request)
item = menu['items'][-1]
self.assertEqual(item, {
'title': "CORE-POS Members",
'route': 'corepos_members',
'perm': 'corepos_members.list',
})
item = menu["items"][-1]
self.assertEqual(
item,
{
"title": "CORE-POS Members",
"route": "corepos_members",
"perm": "corepos_members.list",
},
)
def test_make_products_menu(self):
handler = self.make_handler()
menu = handler.make_products_menu(self.request)
item = menu['items'][-1]
self.assertEqual(item, {
'title': "CORE-POS Products",
'route': 'corepos_products',
'perm': 'corepos_products.list',
})
item = menu["items"][-1]
self.assertEqual(
item,
{
"title": "CORE-POS Products",
"route": "corepos_products",
"perm": "corepos_products.list",
},
)
def test_make_other_menu(self):
handler = self.make_handler()
# no url configured by default
menu = handler.make_other_menu(self.request)
if menu['items']:
item = menu['items'][-1]
self.assertNotEqual(item['title'], "CORE Office")
if menu["items"]:
item = menu["items"][-1]
self.assertNotEqual(item["title"], "CORE Office")
# entry added if url configured
self.config.setdefault('corepos.office.url', 'http://localhost/fannie/')
self.config.setdefault("corepos.office.url", "http://localhost/fannie/")
menu = handler.make_other_menu(self.request)
item = menu['items'][-1]
self.assertEqual(item, {
'title': "CORE Office",
# nb. trailing slash gets stripped
'url': 'http://localhost/fannie',
'target': '_blank',
})
item = menu["items"][-1]
self.assertEqual(
item,
{
"title": "CORE Office",
# nb. trailing slash gets stripped
"url": "http://localhost/fannie",
"target": "_blank",
},
)