
5 changed files with 200 additions and 11 deletions
@ -0,0 +1,159 @@ |
|||||||
|
import pytest |
||||||
|
|
||||||
|
|
||||||
|
@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(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
assert "My Orders" in response |
||||||
|
|
||||||
|
response = testapp.post("/orders/vendor", {"vendor": vendor}, xhr=True) |
||||||
|
assert response.json == {"name": returned, "found": found} |
||||||
|
|
||||||
|
|
||||||
|
def test_vendor_list(testapp, login_as): |
||||||
|
response = testapp.get("/", status=302).follow(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
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 |
||||||
|
|
||||||
|
|
||||||
|
def test_vendor_edit_ok(testapp, login_as): |
||||||
|
response = testapp.get("/", status=302).follow(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
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} |
||||||
|
|
||||||
|
|
||||||
|
def test_vendor_edit_cancel(testapp, login_as): |
||||||
|
response = testapp.get("/", status=302).follow(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
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"} |
||||||
|
|
||||||
|
|
||||||
|
def test_vendor_edit_form_error(testapp, login_as): |
||||||
|
response = testapp.get("/", status=302).follow(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
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 |
||||||
|
|
||||||
|
|
||||||
|
def test_vendor_edit_unknonw_vendor(testapp, login_as): |
||||||
|
response = testapp.get("/", status=302).follow(status=200) |
||||||
|
assert "Please Log In" in response |
||||||
|
|
||||||
|
response = login_as("TestAdmin", "jane").follow(status=200) |
||||||
|
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 |
Loading…
Reference in new issue