fix printer batch vendor resolution + base url
This commit is contained in:
@@ -72,6 +72,33 @@ def test_install_batch_groups_universal_specific_and_manual(
|
||||
assert 'c350navi.zip' not in bat # never handed to the runner
|
||||
|
||||
|
||||
def test_install_batch_resolves_vendor_via_model(
|
||||
client, db, auth_headers, printer_assettype):
|
||||
"""A printer with no direct vendorid still groups as universal when its
|
||||
MODEL's vendor is HP/Xerox (the import sets the model, not the printer's
|
||||
vendorid) - the bug that dumped every prod printer into 'manual (unknown)'."""
|
||||
from shopdb.core.models import Vendor, Model
|
||||
|
||||
xerox = Vendor(vendor='Xerox')
|
||||
db.session.add(xerox)
|
||||
db.session.commit()
|
||||
model = Model(modelnumber='VersaLink C7125', vendorid=xerox.vendorid)
|
||||
db.session.add(model)
|
||||
db.session.commit()
|
||||
|
||||
# No vendorid on the printer - only the model ties it to Xerox.
|
||||
pid = _make_printer(client, auth_headers, assetnumber='SpoolsInspection-Xerox',
|
||||
hostname='wjprn07', modelnumberid=model.modelnumberid)
|
||||
|
||||
resp = client.get('/api/printers/install-batch?printerids=%d' % pid,
|
||||
headers=auth_headers)
|
||||
assert resp.status_code == 200
|
||||
bat = resp.get_data(as_text=True)
|
||||
assert 'PrinterInstaller.exe' in bat
|
||||
assert '/PRINTER="SpoolsInspection-Xerox"' in bat
|
||||
assert 'MANUAL' not in bat
|
||||
|
||||
|
||||
def test_install_batch_requires_ids(client, db, auth_headers, printer_assettype):
|
||||
resp = client.get('/api/printers/install-batch', headers=auth_headers)
|
||||
assert resp.status_code == 400
|
||||
|
||||
Reference in New Issue
Block a user