Implement issue 1 search, order reuse and tracking
This commit is contained in:
@@ -123,6 +123,13 @@ def run(executable=None):
|
||||
response = admin.request.get(base + path)
|
||||
assert response.status == 200 and marker in response.body(), path
|
||||
maker=accounts['maker']
|
||||
maker.goto(base + '/suppliers?kw=测试供应商简称')
|
||||
assert maker.locator('table.grid tbody tr').count() >= 1
|
||||
maker.goto(base + '/orders/new')
|
||||
maker.locator('#supplierSearch').fill('测试供应商简称')
|
||||
assert maker.locator('#supplierPickNew option').count() == 2
|
||||
maker.locator('#supplierPickNew').select_option(index=1)
|
||||
assert maker.locator('[name=supplier_id]').input_value() != ''
|
||||
for kind,count in [('purchase',2),('outsourcing',30)]:
|
||||
maker.goto(base + '/orders/new')
|
||||
maker.locator('[name=doc_type]').select_option(kind)
|
||||
@@ -203,6 +210,8 @@ def run(executable=None):
|
||||
approver.screenshot(path=str(RUN / (kind+'-mobile-tracking.png')))
|
||||
assert hashlib.sha256(approver.request.get(view_url.replace('/view','/pdf')).body()).hexdigest() == archives[-1][1]
|
||||
admin.goto(base + '/')
|
||||
assert admin.locator('[data-stage="work_undelivered"] span').inner_text() == '2 单 →'
|
||||
assert admin.locator('[data-stage="work_completed"] span').inner_text() == '0 单 →'
|
||||
for key in ('prepayment', 'invoice_due', 'paid_undelivered'):
|
||||
assert admin.locator('[data-tracking="'+key+'"] .v').inner_text() == '1', key
|
||||
assert admin.locator('#board-filter option[value="partial_delivery"]').inner_text() == '部分交货(1)'
|
||||
@@ -212,6 +221,13 @@ def run(executable=None):
|
||||
assert admin.locator('.tracking-table tbody tr').count() == 1
|
||||
assert 'WO' in admin.locator('.tracking-table tbody tr').first.inner_text()
|
||||
admin.screenshot(path=str(RUN / 'tracking-filter.png'), full_page=True)
|
||||
maker.goto(base + '/orders?material_kw=BROWSER-2')
|
||||
assert maker.locator('.orders-table tbody tr').count() == 2
|
||||
assert all('BROWSER-2' in text for text in maker.locator('.matched-materials').all_inner_texts())
|
||||
maker.screenshot(path=str(RUN/'material-order-search.png'), full_page=True)
|
||||
maker.goto(base + '/materials?kw=BROWSER-2')
|
||||
assert 'BROWSER-2' in maker.locator('table.grid').inner_text()
|
||||
assert '0.3340' in maker.locator('table.grid').inner_text()
|
||||
for width in (320, 390, 768):
|
||||
approver.set_viewport_size({'width':width, 'height':844})
|
||||
for path in (base + '/', view_url + '#order-tracking'):
|
||||
@@ -230,6 +246,15 @@ def run(executable=None):
|
||||
maker.get_by_role('button',name='导入',exact=True).click()
|
||||
maker.wait_for_load_state('networkidle')
|
||||
assert maker.locator('[name=item_date]').input_value()=='2026-10-01'
|
||||
first_row = maker.locator('#itemTable tr').nth(1)
|
||||
original_options = first_row.locator('.matpick option').count()
|
||||
first_row.locator('.matsearch').fill('BROWSER-1')
|
||||
assert 1 < first_row.locator('.matpick option').count() < original_options
|
||||
target = first_row.locator('.matpick option[data-code="BROWSER-1"]').get_attribute('value')
|
||||
first_row.locator('.matpick').select_option(target)
|
||||
from decimal import Decimal
|
||||
assert Decimal(first_row.locator('.price').input_value()) == Decimal('0.3340')
|
||||
maker.screenshot(path=str(RUN/'material-picker-search.png'), full_page=True)
|
||||
response = admin.request.get(base + '/export/ledger')
|
||||
assert response.status == 200
|
||||
ledger = openpyxl.load_workbook(io.BytesIO(response.body()))
|
||||
|
||||
Reference in New Issue
Block a user