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
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
|
|
|