
5 changed files with 200 additions and 11 deletions
@ -0,0 +1,159 @@
@@ -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