Our custom ordering system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

165 lines
5.0 KiB

import pytest
@pytest.mark.functional
@pytest.mark.parametrize(
"vendor,returned,found",
[
("vwr", "VWR", True),
("vr", "VWR", True),
("https://www.vwr.de/foo?q=x", "VWR", True),
("carl roth", "Carl Roth", True),
("roth", "Carl Roth", True),
("cr", "Carl Roth", True),
("merck", "Merck", True),
("merk", "Merck", True),
("Neue Firma", "Neue Firma", False),
],
)
def test_check_vendor_name(testapp, login_as, vendor, returned, found):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.post("/orders/vendor", {"vendor": vendor}, xhr=True)
assert response.json == {"name": returned, "found": found}
@pytest.mark.functional
def test_vendor_list(testapp, login_as):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
@pytest.mark.functional
def test_vendor_edit_ok(testapp, login_as):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/VWR")
form = response.forms[1]
form["vendor"] = "Merck"
form["terms"] = "\n".join(["vwr", "de.vwr.com"])
form.submit("change")
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "The autocorrect for" in response
assert "VWR" not in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/Merck")
form = response.forms[1]
assert form["vendor"].value == "Merck"
terms = form["terms"].value.strip().split()
assert set(terms) == {"vwr", "de.vwr.com", "merck", "merk"}
response = testapp.post("/orders/vendor", {"vendor": "vwr"}, xhr=True)
assert response.json == {"name": "Merck", "found": True}
response = testapp.post("/orders/vendor", {"vendor": "vr"}, xhr=True)
assert response.json == {"name": "vr", "found": False}
@pytest.mark.functional
def test_vendor_edit_cancel(testapp, login_as):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/VWR")
form = response.forms[1]
form["vendor"] = "Merck"
form["terms"] = "\n".join(["vwr", "de.vwr.com"])
form.submit("cancel")
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "The autocorrect for" not in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/Merck")
form = response.forms[1]
assert form["vendor"].value == "Merck"
terms = form["terms"].value.strip().split()
assert set(terms) == {"merck", "merk"}
@pytest.mark.functional
def test_vendor_edit_form_error(testapp, login_as):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/VWR")
assert "is-invalid" not in response
form = response.forms[1]
form["vendor"] = ""
form["terms"] = ""
response = form.submit("change")
assert "is-invalid" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "The autocorrect for" not in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
@pytest.mark.functional
def test_vendor_edit_unknonw_vendor(testapp, login_as):
response = testapp.get("/", status=302).follow()
assert "Please Log In" in response
response = login_as("TestAdmin", "jane").follow()
assert "My Orders" in response
response = testapp.get("/vendors")
assert "Vendor Autocorrect List" in response
assert "VWR" in response
assert "Carl Roth" in response
assert "Merck" in response
response = testapp.get("/vendors/unknown").follow()
assert "My Orders" in response