Improve formatting of long lines
All checks were successful
Test / pytest (push) Successful in 18s

This commit is contained in:
polyfloyd 2025-04-21 13:02:45 +02:00
parent 650aef9794
commit ef850140e0
2 changed files with 14 additions and 1 deletions

View file

@ -47,7 +47,16 @@ class Product:
price = f'{self.price:.2f}' price = f'{self.price:.2f}'
description = f'"{self.description}"' description = f'"{self.description}"'
metadata = ' '.join(sorted(f'#{k}' if v is None else f'#{k}={v}' for (k, v) in self.metadata.items())) metadata = ' '.join(sorted(f'#{k}' if v is None else f'#{k}={v}' for (k, v) in self.metadata.items()))
return f'{aliases:<30} {price:<6} {description:<60} {metadata}'
accum = ''
for col, txt in [
(30, aliases),
(37, price),
(98, description),
(0, metadata),
]:
accum += txt + ' ' + ' '*max(0, col-len(accum)-len(txt))
return accum.rstrip()
class NoAutoUpdate(Exception): class NoAutoUpdate(Exception):

View file

@ -14,3 +14,7 @@ def test_format_product_lines():
'8711327538481,liuk 0.80 "Ola Liuk" #ah=wi162664 #qty=8' '8711327538481,liuk 0.80 "Ola Liuk" #ah=wi162664 #qty=8'
assert Product(['5000112659184','colazero'], Decimal(1), 'Cola Zero', {'sligro': None}).format_line() == \ assert Product(['5000112659184','colazero'], Decimal(1), 'Cola Zero', {'sligro': None}).format_line() == \
'5000112659184,colazero 1.00 "Cola Zero" #sligro' '5000112659184,colazero 1.00 "Cola Zero" #sligro'
assert Product(['8711327607569','8712566340309','magnumwhite'], Decimal(1.50), 'Magnum White chocolate', {'ah': None}).format_line() == \
'8711327607569,8712566340309,magnumwhite 1.50 "Magnum White chocolate" #ah'
assert Product(['8717677337712','8717677336036','8717677337729'], Decimal(1.95), 'Tony\'s Chocolonely Chocoladereep melk met karamel en zeezout, FT (47 gram)', {'sligro': None}).format_line() == \
'8717677337712,8717677336036,8717677337729 1.95 "Tony\'s Chocolonely Chocoladereep melk met karamel en zeezout, FT (47 gram)" #sligro'